플러시 (Flush) 플러시는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것을 말하고 아래의 경우에 발생된다. Transaction Commit 발생 EntityManager의 flush 메서드 호출 JPQL 쿼리 실행 동작 과정 플러시가 발생되면 변경감지를 통해 영속성 컨텍스트 내에 관리되는 엔티티들을 스냅샷과 비교하여 수...
영속성 컨텍스트의 특징
영속성 컨텍스트의 이점 영속성 컨텍스트가 엔티티를 관리하는 것은 다음과 같은 이점이 있다. 1차 캐시 동일성 보장 트랜잭션을 지원하는 쓰기 지연 변경 감지 지연 로딩 1차 캐시 영속성 컨텍스트는 내부에 캐시를 가지고 있는데 이를 1차 캐시라 하고 영속성 컨텍스트가 관리하는 엔티티들은 모두 이곳에 저장된다. em.pers...
엔티티 생명주기(Entity LifeCycle)
엔티티 생명주기(Entity LifeCycle) 비영속 (new/transient) 영속 (managed) 준영속 (detached) 삭제 (removed) 비영속 (new/transient) 순수한 객체 상태이며, 영속성 컨텍스트와 관련이 없는 상태 Member member = new Member(); 영속 (managed)...
JPA 영속성 컨텍스트
영속성(Persistence) JPA의 영속성 컨텍스트에 대해 알아보기 전 우선 영속성이라는 단어부터 알아보자. 컴퓨터 공학에서 지속성(Persistence)은 프로세스가 생성했지만 별개로 유지되는 상태의 특징 중 한 가지이며, 별도의 기억 장치에 데이터를 보존하는 것을 목적으로 한다. [위키백과] 한마디로 DB와 같은 별도의 저장소에 데이터를 영...
HTTP 요청 파라미터
HTTP 요청 데이터 HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 다양한 방법이 있다. 그 중 아래의 3가지 방식이 주로 사용된다. GET - 쿼리 파라미터 POST - HTML Form HTTP message Body GET - 쿼리 파라미터 클라이언트에서 서버로 데이터를 전달하는 방법중의 하나는 Url 주소...
뷰 리졸버
뷰(View) 뷰(View)는 MVC 아키텍처에서 모델이 가진 정보를 어떻게 표현해야 하는지에 대한 로직을 갖고 있는 컴포넌트다. 웹 환경에서 뷰가 생성하는 결과물은 일반적으로 브라우저에 나타낼 수 있는 HTML이다. 스프링은 컨트롤러(핸들러)의 작업을 마친 후 뷰 정보를 ModelAndView 타입 오브젝트에 담아서 DispatcherServlet...
스프링 핸들러 매핑과 핸들러 어댑터
핸들러 매핑(Handler Mapping) 핸들러 매핑(Handler Mapping)은 HTTP 요청정보를 이용하여 이를 처리할 핸들러 오브젝트, 즉 컨트롤러를 찾아주는 기능을 가진 DispatcherServlet의 전략이다. 스프링은 기본적으로 다섯 가지 핸들러 매핑을 제공한다. BeanNameUrlHandlerMapping: HTTP 요...
Spring MVC 구조
Spring MVC 구조 DispatcherServlet DispatcherServlet은 지난 포스팅에서 다룬 Front Controller 패턴의 Front Controller에 해당한다. DispatcherServlet은 스프링 MVC의 핵심으로 부모 클래스에서 HttpServlet을 상속 받아 사용하고, 서블릿으로 동작한다. 요청 흐림 ...
Front Controller 패턴
Front Controller 패턴 이전 포스팅에서 다루었던 MVC 패턴을 적용하면 컨트롤러의 역할과 뷰를 렌더링 하는 역할을 명확하게 구분할 수 있었다. 하지만 컨트롤러에서 뷰를 호출하기 위한 중복코드들과 공통 로직을 처리하기 어려운 문제점이 있었다. Front Controller 패턴은 개별 컨트롤러가 요청을 받는 MVC 패턴과 달리 하나의 ...
MVC 패턴
MVC 패턴(Model View Controller) MVC는 Model, View, Controller의 약자로 하나의 애플리케이션을 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다. MVC 패턴 이전에는 비즈니스 로직과 뷰 로직 등 애플리케이션 구성요소들이 하나로 구성된 경우가 많았다. 이 경우 장점도 있겠지만 많은 단점들이 생겨난다...