스프링 순환참조, 이벤트 리스너로 끊어낸 극복기
스프링 순환참조의 원인과 @Lazy 같은 임시 해결책의 한계, 그리고 이벤트 리스너 기반 설계로 의존성을 끊어낸 실전 과정을 확인해 보세요.
스프링 순환참조의 원인과 @Lazy 같은 임시 해결책의 한계, 그리고 이벤트 리스너 기반 설계로 의존성을 끊어낸 실전 과정을 확인해 보세요.
결제 수수료 로직이 네 군데 복사돼 있다가 한 곳을 놓쳐 새벽 장애가 났다. 상속으로 묶었다가 다시 깨진 과정과, 인터페이스와 조합으로 정리한 일주일의 기록이다.
MyBatis WHERE·SELECT 공통화로 row count 동시 조회와 XML 감소를 실현하는 실전 패턴을 코드 예시로 확인해 보세요.
JWT Refresh Token의 저장 위치, 재발급 흐름, 탈취 대응(RTR)까지 실전 기준으로 정리합니다. 안전한 토큰 설계를 확인해 보세요.
선착순 이벤트 재고가 -37이 된 사고를 수습한 8일. synchronized 실패, DB FOR UPDATE의 커넥션 고갈, 직접 짠 SET NX의 해제 버그, Redisson 도입 후 트랜잭션 순서 문제까지 순서대로 기록하고 부하 테스트 결과를 표로 정리했다.
운영에서 3초 걸리던 게시글 목록 API를 N+1에서 구해 낸 일주일. EAGER 실패, 컬렉션 Fetch Join의 메모리 페이징 경고, @EntityGraph, QueryDSL 2단계 페이징까지 순서대로 기록했다.