[개요] JPA를 공부하는데 가장 난해한 부분인 '영속성 컨텍스트'에 대해서 알아보겠습니다. 영속성 컨텍스트에 대한 지식이 수반되어야 JPA의 동작방식을 온전히 이해할 수 있습니다. [영속성 컨텍스트 (Persistence Context)] 영속성 컨텍스트란 인스턴스로 존재하는 엔티티를 관리하고 영속화시키는 논리적 영역 입니다. 영속화의 사전적 의미는 '사라지지 않고 지속되게 한다' 입니다. 쉽게 말하자면 DB에 저장된다는 의미입니다. 하지만 '영속'이라는 말에 현혹되어서는 안됩니다. 영속성 컨텍스트에서 관리하는 엔티티라고 해도 반드시 '영속화'되어 DB에 저장된 것은 아닙니다. 다만 영속화 될 수 있는 가능성이 있을 뿐입니다. 영속성 컨텍스트에서 엔티티를 관리하고 필요에 따라 DB의 데이터를 저장, 조..
JPA란? JPA는 Java Persistence API의 약자입니다. Persistence라는 단어는 Java DTO(Data Transfer Object)에게 '없어지지 않고 오랫동안 지속'되는 '영속성(persistence)'을 부여해준다는 의미입니다. 즉, 데이터를 DB상에 영구적으로 저장해주는 API라고 생각하면 됩니다. 기존 JDBC만을 이용하는 경우 반복적이며 비슷한 SQL문을 많이 만들어야하고, 데이터베이스의 테이블과 자바 객체간의 매핑하는 소모적인 작업을 지속해야 합니다. JPA를 사용하게 되면 SQL문을 개발자가 만들지 않기 때문에 객체 중심적인 개발로 생산성과 유지보수의 능률이 크게 오르고, 특정 DBMS 문법에 종속적이지 않은 개발이 가능합니다. 또한 JPA의 영속성 컨텍스트는 효율..