@GeneratedValueJPA에서 Entity의 ID 값을 자동 생성하고자 할 때 @GeneratedValue 어노테이션을 사용한다.이 어노테이션은 DB 특성에 따라 다양한 전략을 지원하며, ID 생성을 구현체(Hibernate 등)에 맡기거나 직접 제어할 수 있다. @Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id; 하지만 전략을 명확히 이해하지 않으면 의도하지 않은 쿼리 실행이나 배포 환경에서의 충돌이 발생할 수 있으므로따라서 각 전략을 정확히 이해하고 프로젝트에 맞게 선택하는 것이 중요하다. 전략특징AUTO구현체가 자동으로 전략 선택IDENTITYDB의 Auto-Increment 기능 사용SEQUENCEDB 시퀀스 객체를..
Spring

계기개발을 하다 보면 공통된 로직을 분리하기 위한 다양한 도구들이 있다.Spring개발을 하면서는 Filter, Interceptor, AOP 들을 알게 되었는데, 실제롤 사용한 적은 많이 없다 보니 (Spring Security 필터 정도?) Filter와 Interceptor 는 매우 유사한 거 같은데 차이점이 궁금해서 이번 기회에 정리한다.Filter먼저 Filter의 풀네임은 Servlet Filter이다. 이렇게 이름이 붙은 이유는 J2EE에 Servlet API에 포함된 개념이기 때문이다.공식문서에서 설명해주는 그림은 다음과 같다. 왼쪽이 필터가 없을때, 오른쪽이 필터가 있을 때 클라이언트 요청이 Servlet까지 도달하는 흐름이다.그림을 봤을때 알 수 있는 점은 필터는 여러개 등록 가능하..

글을 쓰게 된 계기최근 채용 면접을 진행하면서 DispatcherServlet 이 뭔가요?라는 질문을 받았다.Spring을 공부하면서 많이 들어봤고, 공부도 했었지만 막상 말로 설명하려고 하니 Front-Controller, 요청 응답 처리.. 와 같은 단편적인 지식은 떠올랐지만 결국 모르겠습니다..라는 대답을 하고 말았다.그래서 이번 기회에 다시 개념 정리를 해보려고 한다. DispatcherServlet먼저 Spring reference 에서 찾아보면 다음과 같다. 설명을 읽어보면 Spring MVC 는 다른 프레임워크와 마찬가지로 Front Controller 패턴을 기반으로 설계되었고, Front Controller 역할을 하는 Servlet이 바로 DispatcherServlet이라고 나와있..