본문 바로가기

분류 전체보기184

[Spring Security 6] 메뉴 기반 권한 모델에서 AuthorizationManager를 직접 구현한 이유 1. 인가를 다시 고민하게 된 이유그동안 인가 처리는 자연스럽게 AOP로 구현하는 영역이라고 생각해 왔다. 컨트롤러 메소드에 어노테이션을 붙이고, AOP에서 이를 가로채 권한을 검증하는 방식은 구현도 간단하고 이해하기도 쉬웠다. 그래서 인가를 굳이 Spring Security 레이어에서 처리해야겠다는 생각을 깊게 해보지 않았던 것 같다. 또 하나의 이유는, 이전까지 참여했던 프로젝트들에서는 메뉴 기반 권한을 본격적으로 고민할 일이 많지 않았기 때문이다. 대부분은 역할 단위로 충분했고, 복잡한 권한 모델이 필요하지 않았다. 그러다 보니 Spring Security는 주로 인증을 담당하는 도구로만 사용하고 있었고, 인가는 보안 필터를 통과한 이후의 문제로 인식하고 있었다. 자연스럽게 인가 로직은 컨트롤러와 .. 2026. 2. 8.
[DDIA] 07장. 트랜잭션 0. 들어가기 전에[개념 사전]단어설명선형성(linearizability)모든 연산이 하나의 순서대로 즉시 적용된 것처럼 보이도록 보장하는 특성트랜잭션 시맨틱(transaction semantics)트랜잭션이 어떻게 동작해야 하는지에 대한 규칙과 의미를 정의하는 개념 (트랜잭션이 실행될 때 보장해야 할 동작, 일관성 규칙, 격리 수준 등을 의미)다중 버전 동시성 제어(multi-version concurrency control, MVCC)데이터베이스가 객체의 여러 버전을 함께 유지하는 기법갱신 손실(lost update)두 트랜잭션이 변경 작업을 동시에 하면 두 번째 쓰기 작업이 첫 번째 변경을 포함하지 않으므로 변경 중 하나가 손실되는 현상커서 안정성(cursor stability)갱신이 적용될 때까지.. 2026. 1. 28.
2025 회고 0. 들어가며2025년의 마지막 페이지를 조금 늦게 넘긴다. 한 해를 돌아보는 일은 생각보다 쉽지 않았다.그래도 지나온 시간을 정리하지 않으면 앞으로 나아가기 어렵다는 걸 알기에, 다섯 가지 키워드로 2025년의 나를 정리해 본다.1. 회사잦은 조직 이동 속에서 고민도 많았지만, 새로운 환경에서 일하며 나만의 경험을 차곡차곡 쌓아간 시간 1-1. 첫 번째 조직 이동2024년 11월, 조직 이동을 했다.개발자는 사용하는 언어나 기술에 관계없이 문제 해결력을 길러야 하는 직업이라는 것, 나도 알고 있다. 하지만 뭐 하나 깊게 경험해 보기도 전인 2년 차 자바 개발자였던 내가 갑자기 PHP 팀으로 이동하게 되었을 때 그 말은 쉽게 와닿지 않았다. 솔직히 말하면 당시의 나는 걱정이 앞섰다. 그래서 조직 이동 이.. 2026. 1. 18.
[DDIA] 06장. 파티셔닝 들어가기 전에데이터셋이 매우 크거나 질의 처리량이 매우 높다면 복제만으로는 부족하고 데이터를 파티션으로 쪼갤 필요가 있다. 이 작업을 샤딩이라고 한다. 각 DB에서 파티션을 지칭하는 용어용어DB 종류샤드(shard) 몽고DB, 엘라스틱서치, 솔라클라우드리전(region)HBase태블릿(tablet)빅테이블브이노드(vnode)카산드라, 리악브이버켓(vBucket)카우치베이스 [개념 사전]단어 설명파티셔닝대용량 데이터베이스를 의도적으로 작은 단위로 쪼개는 방법사전 분할(pre-splitting)빈 데이터베이스에 초기 파티션 집합을 설정하는 것 (HBase, 몽고DB 제공)서비스 찾기(service discovery)분산 시스템에서 특정 서비스의 위치(IP 및 포트 등)를 동적으로 찾는 방법파티션 인지(pa.. 2025. 8. 30.
[DDIA] 05장. 복제 들어가기 전에복제란 네트워크로 연결된 여러 장비에 동일한 데이터의 복사본을 유지한다는 의미다. 복제에서 모든 어려움은 복제된 데이터의 변경 처리에 있으며 이것이 이번 장의 내용이다. 데이터 복제가 필요한 여러 이유가 있다.지리적으로 사용자와 가깝게 데이터를 유지해 지연 시간을 줄인다.시스템의 일부에 장애가 발생해도 지속적으로 동작할 수 있게 해 가용성을 높인다.읽기 질의를 제공하는 장비의 수를 확장해 읽기 처리량을 늘린다. [개념 사전]단어의미최종적 일관성분산 시스템에서 즉각적인 일관성을 보장하지 않지만, 일정 시간이 지나면 결국 일관된 상태에 도달하는 특성복제 서버(replica)데이터베이스의 복사본을 저장하는 각 노드리더 기반 복제(leader-based replication)(=능동(active)/.. 2025. 8. 10.
[내 프로젝트 성능 진단기] #1. 처리량과 지연 시간, 응답 시간으로 병목 찾기 들어가기 전에사용자 A가 SNS을 둘러보다 흥미로운 광고를 발견한다. "잠깐 볼까?" 하며 클릭했지만, 광고 페이지가 로딩에만 10초가 넘게 걸린다면 어떨까? 대부분의 사용자는 기다려주지 않고 페이지를 닫고 다시 SNS로 돌아갈 것이다. 단 몇 초의 지연이 사용자의 이탈로 이어지는 이유는 바로 성능 때문이다. 그렇다면 광고주는 왜 홍보 효과를 얻지 못했을까? 그 이면에는 네트워크 성능을 좌우하는 두 가지 핵심 지표가 있다. 처리량(Throughput)과 지연 시간(Latency)이다. 처리량(Throughput)처리량은 단위 시간 동안 네트워크가 실제로 처리하는 작업량을 의미한다. 보통 TPS 또는 RPS로 표현된다. TPS(Transaction Per Second): 초당 트랜잭션 수RPS(Reque.. 2025. 6. 1.