Spring 40
- Claude Code를 개인 워크벤치처럼 쓰는 방법
- spring-internals-lab로 다시 읽는 Spring 1 - 이 프로젝트는 무엇을 검증하려는가
- spring-internals-lab로 다시 읽는 Spring 7 - @Transactional의 실체
- spring-internals-lab로 다시 읽는 Spring 3 - refresh()와 Bean 생성 파이프라인
- spring-internals-lab로 다시 읽는 Spring 6 - 프록시와 AOP
- spring-internals-lab로 다시 읽는 Spring 4 - 의존성 주입과 후보 선택
- spring-internals-lab로 다시 읽는 Spring 5 - Bean lifecycle과 후처리기
- spring-internals-lab로 다시 읽는 Spring 2 - BeanDefinition과 등록 단계
- 네이버 D2 「@RequestCache: HTTP 요청 범위 캐싱을 위한 커스텀 애너테이션 개발기」 리뷰 — 캐시의 수명을 '요청 하나'로 맞추면 TTL 고민이 사라진다, 그리고 @RequestScope가 안 되는 이유
- 카카오 「잃어버린 리포트를 찾아서: 카카오 메시징 시스템의 경쟁 조건 문제와 안티 패턴 제거 과정」 리뷰 — 벤더가 8ms 만에 리포트를 보냈고, 우리는 101ms짜리 트랜잭션 안에 있었다
- 리액티브와 백프레셔 - WebFlux가 해결하는 것과 옮기는 것
- spring-lite로 이해하는 Spring 구현 4 - DispatcherServlet과 MVC 요청 처리 파이프라인
- spring-lite로 이해하는 Spring 구현 3 - ProxyFactory, @Transactional, JdbcTemplate 연결
- spring-lite로 이해하는 Spring 구현 2 - AnnotationConfigApplicationContext로 보는 IoC와 생명주기
- spring-lite로 이해하는 Spring 구현 1 - 프로젝트 구조와 설계 범위
- Security 필터 체인 - 인증과 인가는 실제로 어디에 꽂히는가
- Spring Batch의 구조 - 청크, 파티셔닝, 재시작과 메타데이터
- 프록시의 한계 - self-invocation, final, JDK와 CGLIB의 선택
- 트랜잭션 전파 7종 - 각 옵션이 커넥션과 롤백에 남기는 결과
- 위반 480건 위에 아키텍처 규칙을 도입하기: 신규 코드는 100% 강제, 레거시는 점진 정리
- 모든 도메인이 100% 정합성을 요구하지는 않는다: Post-Commit 이벤트와 재시도 3회 정책을 정한 기준
- 정산이 진행되는 동안 기준 데이터 수정을 막는 방법: 상태 플래그와 AOP로 만든 경량 락
- 카카오 「추가배포 없이 API의 case 통일시키기」 리뷰 — 받는 쪽이 자기 케이스에 맞춰 알아서 읽게 하면 배포 순서가 사라진다
- @RestController는 무엇을 의미하는가
- @SpringBootApplication은 실제로 무엇을 하는가
- Spring Bean Lifecycle 정리
- @TransactionalEventListener 빠른 체크 노트
- Spring에서 이해해야 할 JPA 아키텍처
- 왜 이벤트가 안 먹히지? @TransactionalEventListener가 무시되는 이유와 해결법
- Spring에서 Java 21을 도입할 때 체크할 것
- Querydsl을 사용하는 이유와 기본 패턴
- Spring 애플리케이션에서 페이지네이션을 설계하는 방법
- Spring의 IoC와 DI를 어떻게 이해할 것인가
- Spring과 JPA에서 Race Condition을 다루는 방법
- Filter, Interceptor, AOP의 차이와 선택 기준
- Spring 애플리케이션에서 예외를 설계하는 방법
- Spring 예외 처리 전략 정리
- Spring Data JPA에서 동적 쿼리를 다루는 방법
- @ControllerAdvice와 @RestControllerAdvice 정리
- Spring AOP 핵심 정리