[WIL] GDG Spring 세션 7주차

Nakyeong Lee·2024년 12월 21일
0

Index

ORM이란?
JPA란?
Hibernate란?
2차 캐싱, 지연 로딩, 배치 페칭 전략
🔗resources

ORM이란?

Object Relational Mapping
객체와 관계형 데이터베이스 사이의 데이터를 자동으로 매핑해주는 기술
즉, SQL을 직접 작성하지 않고도 객체 지향 프로그래밍 언어의 객체를 사용해 데이터베이스를 조작할 수 있다. ORM을 사용하면 생산성과 유지보수성이 높아지고, 코드와 데이터베이스 간의 의존성이 줄어드는 장점이 있다.

JPA란?

Java Persistence API
자바에서 ORM을 위한 표준 명세
데이터베이스와 객체 간의 매핑을 간단히 할 수 있도록 도와주며, 주로 엔티티 관리, 트랜잭션 관리, JPQL 지원 등의 제공한다. JPA는 인터페이스로 정의되어 있으며, 이를 구현한 여러 프레임워크(ex. Hibernate)가 존재한다.

Hibernate란?

JPA의 대표적인 구현체로, 자바 환경에서 가장 널리 사용되는 ORM 프레임워크 중 하나
Hibernate는 JPA의 표준 기능을 지원하면서, 아래와 같은 추가적인 기능을 제공한다.

  • 1차 캐싱: 동일한 트랜잭션 내에서 반복적인 데이터베이스 호출 방지
  • 2차 캐싱: 애플리케이션 전역에서 데이터베이스 조회 결과를 캐싱하여 성능 개선
  • 다양한 데이터베이스와의 호환성: Hibernate Dialect를 사용해 여러 데이터베이스를 쉽게 지원

2차 캐싱, 지연 로딩, 배치 페칭 전략

2차 캐싱

2차 캐싱은 애플리케이션 범위에서 데이터를 캐싱하여 데이터베이스 요청을 줄이고 성능을 향상시키는 기술이다. 예를 들어, EHCache와 같은 외부 캐시 라이브러리를 Hibernate와 함께 사용할 수 있다.

지연 로딩 (Lazy Loading)

지연 로딩은 실제로 데이터가 필요할 때까지 데이터베이스 조회를 지연시키는 방법이다. 이 방식은 데이터베이스 요청을 최소화하고 성능을 최적화하는 데 유용하지만, N+1 문제와 같은 주의해야 할 점도 있다.

배치 페칭 전략 (Batch Fetching)

배치 페칭은 여러 연관 데이터를 한 번에 가져오는 전략이다. 예를 들어, 10개의 엔티티를 조회해야 할 경우, 각 엔티티에 대해 개별적인 쿼리를 실행하는 대신, 한 번의 쿼리로 데이터를 가져와 성능을 향상시킨다.

profile
Web Backend Developer

0개의 댓글