JPQL의 문자열 한계를 QueryDSL이 어떻게 해결하는지, BooleanExpression 동적 쿼리 패턴, @QueryProjection DTO 조회, 페이징 최적화까지 실전 코드로 정리한다.
JPA 면접 단골 주제 두 가지 — 영속성 컨텍스트(Dirty Checking, 1차 캐시, 지연 쓰기)와 N+1 문제(원인과 해결책 3가지)를 코드와 함께 정리한다.
순수 JDBC의 문제점부터 JdbcTemplate, MyBatis, JPA까지 각 기술이 무엇을 해결하고 무엇을 포기했는지 코드로 비교한다. 'JPA vs MyBatis' 논쟁에 명확한 답을 제시한다.
@Transactional이 AOP 프록시로 동작하는 원리부터, REQUIRED vs REQUIRES_NEW 차이, 격리수준 4단계, 자기 호출 함정까지 실전 코드로 정리한다.
Spring Boot가 설정 파일 없이 동작하는 원리 — @SpringBootApplication 분해, @Conditional 자동설정, 스타터와 BOM, 프로파일과 설정 우선순위를 코드와 함께 정리한다.
HTTP 요청이 DispatcherServlet에서 Controller까지 처리되는 12단계 흐름을 분석하고, Filter/Interceptor/AOP를 언제 써야 하는지 레이어 구조로 정리한다.
Spring이 어노테이션 하나로 동작하는 원리, IoC/DI가 왜 필요한지, AOP 프록시가 @Transactional을 어떻게 처리하는지, 그리고 Singleton Bean이 수백 개의 동시 요청을 받을 때 무슨 일이 벌어지는지를 코드로 풀어낸다.
Spring MVC의 Filter, Interceptor, AOP 차이를 진짜로 이해하려면 Servlet 구조를 알아야 한다. HTTP 요청이 Controller에 닿기까지 거치는 5개 레이어를 코드와 함께 정리한다.
개인정보처리방침