ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Boot - ORM이란?
    Framework & Library/Spring Boot 2022. 2. 3. 23:59

    ORM(Object Relational Mapping)

    ORM이란?

     

     - 애플리케이션의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미한다. 즉, Java의 데이터 클래스와 관계형 데이터베이스의 테이블을 매핑해주는 것이다.

     - 객체지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하기 때문에 객체 모델과 관계형 모델 간에 불일치가 존재한다. 이러한 차이로부터 발생하는 제약사항을 해결해주는 역할을 수행하는 것이 바로 ORM 기술이다.

     - ORM 기술의 대표적인 예로 JPA, Hibernate 등이 있다.

     

    ORM의 장점

     - SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있다.

         개발자가 보다 비즈니스 로직에 집중하여 개발할 수 있다.

     

     - 재사용 및 유지보수가 편리하다.

         ORM 자체가 하나의 클래스로 독립적으로 작성되기 때문에 재사용이 가능하다.

         데이터베이스와의 매핑 정보를 명확하게 설계하기 때문에 따로 데이터베이스를 볼 필요가 없다.

     

     - DBMS에 대한 종속성이 줄어든다.

         DBMS를 교체하는 작업을 비교적 적은 리스크로 수행이 가능하다.

     

    ORM의 단점

     - 프로그램의 복잡성이 커질 경우 ORM만으로 구현하기가 어려워진다.

        직접 쿼리를 구현하지 않아 복잡한 설계가 어렵다.

     

     - 잘못 구현할 경우 속도 저하가 발생한다.

        코드로 작성한 부문을 쿼리로 변환하는 작업이 존재하기 때문에 최적화된 코드 구현이 요구된다.

     

     - 대형 쿼리는 별도의 튜닝이 필요하다.


    JPA(Java Persistence API)

    JPA란?

     - JPA는 Java Persistence API의 약자이며, ORM과 관련된 인터페이스의 모음이다.

     - Java 진영에서 표준 ORM 기술로 채택되어 있다.

     - ORM이 큰 개념이라고 하면, JPA는 더 구체화시킨 스펙을 포함하고 있다.

     

    Hibernate란?

     

     - ORM Framework 중 하나이다.

     - JPA의 실제 구현체 중 하나이며, 현재 JPA 구현체 중 가장 많이 사용되고 있다.

     

    Spring Data JPA란?

     - Spring Framework에서 JPA를 편리하게 사용할 수 있게 지원하는 라이브러리이다.

     - Repository 개발 시 인터페이스만 작성하면 구현 객체를 동적으로 생성해서 주입시켜주며, CRUD 기능을 기본적으로 제공해준다.


     

    GitHub - qlsdud0604/spring-boot-study

    Contribute to qlsdud0604/spring-boot-study development by creating an account on GitHub.

    github.com

     

    728x90

    'Framework & Library > Spring Boot' 카테고리의 다른 글

    Spring Boot - 유효성 검사  (0) 2022.02.10
    Spring Boot - Logback 적용하기  (0) 2022.02.09
    Spring Boot - 서비스 구조 살펴보기  (0) 2022.02.03
    Spring Boot - DELETE API  (0) 2022.02.01
    Spring Boot - PUT API  (0) 2022.02.01

    댓글

Designed by Tistory.