EntityManagerFactory JPA를 동작시키기 위한 기반 객체를 만들고 DB 커넥션 풀 생성 META-INF/persistence.xml 에 있는 정보를 바탕으로 생성 생성 비용이 크기 때문에 한번만 생성하고 공유해서 사용 여러 스레드가 동시에 접근해도 안전. 공유 가능 EntityManager 엔티티를 저장, 수정, 삭제, 조회 등 모든 일을 처리. 가상의 데이터베이스 엔티티 매니저 팩토리에서 엔티티 매니저를 생성. 비용은 거의 들지 않음 여러 스레드가 동시에 접근하면 문제 발생. 공유 금지 DB 연결이 꼭 필요한 시점까지 커넥션을 얻지 않음. 트랜잭션을 시작할 때 커넥션을 획득 영속성 컨텍스트 (Persistence Context) 엔티티를 영구 저장하는 환경 엔티티 매니저는 영속성 컨텍스..
SQL을 직접 다룰 때 발생하는 문제점 진정한 의미의 계층 분할이 어렵다 엔티티르르 신뢰할 수 없다 SQL에 의존적인 개발을 피하기 어렵다 JPA Java ORM(Object-Relation Mapping) 기술 표준 API 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결 정교한 객체 모델링을 할 수 있고 객체지향 개발에 집중할 수 있다 생산성 : SQL을 작성하고, JDBC API를 사용하는 반복적인 일을 JPA가 대신 처리 유지보수 : JPA가 대신 처리해주므로 수정해야할 코드가 줄어듦 패러다임의 불일치 해결 : 상속, 연관관계, 객체 그래프 탐색, 비교하기 해결 성능 : 애플리케이션과 DB 사이에서 다양한 성능 최적화 기회 제공 데이터 접근 추상화와 벤더 독립성 : 특정 DB 기..