Spring 28
- Spring Boot 도전 기능 구현 과정에서 고민한 설계 포인트
- Spring Boot Todo 과제 필수 기능 구현 중 고민한 부분
- WebSocket, STOMP, 그리고 인증: 실시간 서비스의 복잡성을 해결하는 여정
- Spring Cache: 캐시 Key 설계부터 동기화, RedisTemplate 동작 원리까지
- JPA와 QueryDSL: Q타입, Repository 역할, 동적 쿼리, 연관관계 설계까지 정리하기
- Flyway를 활용한 DB 스키마 관리: ddl-auto=validate와 defer-datasource-initialization의 함정
- Spring AI 실전: Tool Calling 설계와 멀티 모델 활용 전략
- Spring AI로 AI 앱 개발 시작하기: ChatClient와 Structured Output
- 실전 클라우드 배포와 운영: 내가 마주한 기술적 고민과 해결책
- AOP 기반 로깅 전략 — 이력 파이프라인으로 확장 가능한 시스템 설계
- AOP를 이해하면서 정리한 생각 — 공통 로직은 어디에 있어야 할까
- Interceptor를 이해하면서 정리한 생각 — 요청 흐름은 어디서 제어되는가
- Filter를 이해하면서 정리한 생각 — 인증은 어디서 시작되는가
- Filter vs Interceptor vs AOP — 어디서 무엇을 처리해야 할까
- Spring Security 요청 처리 흐름과 DispatcherServlet
- Spring Boot: 빈 관리부터 전역 예외 처리까지의 핵심 정리
- Spring: 개발자의 자신감, 테스트
- Spring: 오브젝트와 의존관계
- Spring Proxy: 핵심 로직을 투명하게 감싸는 '기술적 안경'
- 실무적 선택의 기로: ID 전략부터 서비스 레이어 설계까지
- Redis 캐시에 객체를 저장할 때 직렬화가 필요한 이유
- Testcontainers Docker 연결 오류를 해결하지 못하고 다시 yml 방식으로 돌아간 이유
- Spring 테스트 구조에서 sourceSet 분리와 Testcontainers를 써보며 느낀 점
- 람다에서 JPA 엔티티를 쓰다 컴파일 에러가 난 진짜 이유
- Gradle Kotlin DSL에서 create import를 하면 안 되는 이유
- JPA 동시성 테스트에서 TransactionRequiredException을 만난 이유
- 낙관적 락 테스트가 실패하던 이유
- Spring Data JPA 테스트에서 JpaRepository 메서드가 사라진 이유