들어가기 네트워크를 통해 DB에 접근(Ex. 실제 운영하는 서비스)하는 시간 비용은 애플리케이션 서버 내부 메모리에 접근하는 시간보다 훨씬 비싸다. 이러한 부담을 줄이고 성능을 높이기 위해 Hibernate와 같은 JPA 구현체들은 캐시(Cache)를 지원한다. 캐시를 사용하면 매번 필요한 데이터를 DB에서 조회하지 않고, 캐싱해둔 데이터를 통해 DB 접근 횟수를 줄여 애플리케이션의 성능을 향상 시킬 수 있다. 💡 1차 캐시 (First Level Cache) 1차 캐시란? : JPA 영속성 컨텍스트 내부에 존재하는 캐시(Chache)로, EntityManager로 조회/변경하는 모든 엔티티가 1차 캐시에 저장된다. ✔️ 1차 캐시 특징 1차 캐시는 트랜잭션 범위 내에서만 동작하여 트랜잭션이 시작하고 종..
💡 영속성 컨텍스트란? 영속성 컨텍스트(Persistence Context)는 Entity를 영구 저장하는 환경으로, 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. JPA는 EntityManager, 영속성 컨텍스트를 통해 데이터의 상태 변화를 감지하고 상황에 맞는 쿼리를 수행한다. EntityManager에 Entity를 저장하거나 조회하면 EntityManager는 영속성 컨텍스트에 Entity를 보관하고 관리한다. * EntityManager - EntityManager는 JPA에서 제공하는 인터페이스로, 영속성 컨텍스트 내에서 Entity를 관리한다. 💡 Entity 생명주기 Entity의 생명주기에는 4가지 상태가 있다. ✔️ 비영속 상태 (new /..
💡 ORM이란? ORM(Object-Relational-Mapping), 객체-관계 매핑 : 객체와 관계형 데이터베이스를 자동으로 매핑(연결)해주는 것을 의미한다. 객체 지향 프로그래밍의 클래스와 관계형 데이터베이스의 테이블을 자동으로 매핑한다. 객체 모델과 관계형 모델 사이에는 패러다임 불일치가 존재하는데, ORM을 통해 객체간 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 패러다임 불일치 - 객체 지향에는 상속, 추상화, 다형성 등의 고유한 특성이 존재하지만, 데이터베이스는 이러한 특성이 존재하지 않는다. 각각의 기능과 표현 방법이 다르다는 것을 의미한다. ORM은 대부분의 프로그래밍 언어에 존재한다. ✔️ ORM의 장점과 단점 장점 객체 지향적인 코드 ORM을 사용하여 SQL 문이 ..