최근 기록

모든 글
DevOps

사내 설정 서버에 묶여 있던 테스트 떼어내기

설정 서버가 응답하지 않으면 테스트도 부팅되지 않았고, 리포지토리 테스트는 데이터베이스에 이미 들어 있는 값을 쓰고 있었다. 설정을 걷어내고 테스트를 떼어낸 과정을 적었다.

Spring Boot설정테스트
Architecture

227줄이 된 전역 예외 처리를 갈래별로 가르기

세션 작업으로 예외가 늘면서 전역 예외 처리 클래스가 227줄이 됐다. 인증 실패와 파일 업로드 실패가 한 파일에 나란히 있던 것을 갈래별로 가른 과정을 적었다.

Spring Boot예외 처리API
Security

목록 대신 Redis 만료로 동시 접속 세기

동시 접속을 셋으로 제한하고 나서야 목록에 든 개수와 실제로 살아 있는 세션이 다르다는 것을 알았다. 목록을 들고 세는 대신 저장소의 만료가 세게 바꾼 과정을 적었다.

RedisJWT세션
분산시스템

최종적 일관성을 검증하는 결제·정산 대사

결제 원장과 정산 대상을 같은 기준으로 집계해 차이를 지연·누락·중복·계약 불일치로 나누고, 자동으로 넘길 것과 사람이 봐야 할 것을 가른 기록이다.

SettlementReconciliationEventual Consistency
Kafka

실패한 메시지 하나가 파티션을 계속 막았다

Kafka Consumer 실패를 무조건 재시도하지 않고 Retry·DLQ·멱등성으로 나눠 처리한 기준과, 기다리는 재시도에 걸린 시간 상한, 발행 쪽에서 순서가 뒤집히는 경로까지 적었다.

KafkaRetryDLQ