ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring, Spring Boot] JAVA ORM (Object Relational Mapping) 객체 관계 매핑
    Spring 2024. 11. 26. 15:01

    JAVA ORM (Object Relational Mapping) 객체 관계 매핑

     

    출처: https://miro.medium.com/v2/resize:fit:1100/format:webp/1*1-6F9MXj6-nIi4VYAQ3B3Q.png

     

     

    객체지향 언어데이터베이스 간의 상호작용을 쉽게 하기 위한 기술인 ORM(Object Relational Mapping)에 대해 설명합니다. ORM을 사용하면 SQL 쿼리를 직접 작성하지 않아도 데이터베이스와 통신할 수 있으며, 데이터베이스 테이블을 자바 클래스와 매핑하여 코드의 가독성유지보수성을 크게 향상시킵니다.

    ORM 기본 개념

    1. 객체와 테이블 간의 매핑
      • 데이터베이스의 테이블을 자바 클래스와 1:1로 매핑합니다. 이를 통해 객체지향적인 코드를 유지하면서도 관계형 데이터베이스에 쉽게 접근할 수 있습니다.
    2. 자동 쿼리 생성
      • ORM은 데이터 조작에 필요한 SQL 쿼리를 자동으로 생성해 줍니다. 복잡한 SQL을 직접 작성할 필요 없이 객체의 메소드 호출로 데이터를 조작할 수 있습니다.
    3. 객체지향 프로그래밍의 장점 유지
      • 데이터베이스와의 상호작용 시에도 객체지향적인 코드 스타일을 유지함으로써 높은 생산성과 유지보수성을 유지할 수 있습니다.

    주요 JAVA ORM 프레임워크

    1. JPA (Java Persistence API)

    • 자바의 표준 ORM 인터페이스입니다. JPA는 직접적인 구현체가 아니라 인터페이스의 집합으로, 이를 구현한 다양한 ORM 프레임워크를 통해 사용됩니다.

    JPA의 장점

    • 코드 가독성 향상: 복잡한 SQL을 숨기고 객체지향적인 코드로 작업할 수 있어 코드 가독성이 좋아집니다.
    • 유지보수성 향상: 데이터베이스 변경 시에도 JPA를 사용하면 많은 부분의 코드가 자동으로 관리되므로 유지보수가 용이합니다.
    • 데이터베이스 독립성: JPA를 통해 특정 데이터베이스에 종속적이지 않은 코드를 작성할 수 있습니다. 데이터베이스를 변경해도 코드의 수정이 최소화됩니다.

    JPA의 단점

    • 복잡한 쿼리의 성능 문제: 복잡한 SQL 쿼리가 필요한 경우 자동 생성된 쿼리의 성능이 떨어질 수 있으며, 이러한 경우 네이티브 SQL을 사용하는 등의 조치가 필요합니다.
    • 초기 학습 곡선: JPA는 배우기 쉽지 않습니다. 초기에 학습해야 할 개념들이 많아 학습 곡선이 높을 수 있습니다.

    2. Hibernate

    • JPA의 가장 대표적인 구현체 중 하나로, 다양한 기능을 통해 JPA를 구현하며 추가적인 기능들도 제공합니다. Hibernate는 JPA의 모든 기능을 지원하면서도, 캐시 기능이나 지연 로딩(lazy loading) 등 다양한 부가 기능을 통해 성능을 최적화할 수 있는 도구입니다.

     

     

    댓글

Designed by Tistory.