ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 7. 스프링부트와 AWS - ORM&JPA 필요성
    실습/AWS 2021. 4. 28. 05:06

    웹 서비스를 개발하기 위해서 데이터 베이스를 다루는 것은 꼭 필요한 일이다.

     

    회원 가입, 게시글 저장 등 이 모든 것이 데이터 베이스와 연관되있다.

     

    기존 자바에서는 myBatis를 이용해서 데이터 베이스를 다뤘다.

     

    하지만 최근에는 스프링부트와 JPA를 이용하는 추세다.

    JPA의 필요성

    기존에는 myBatis와 같은 프레임 워크를 이용해서 데이터 베이스를 다뤘다.

     

    개발자가 직접 쿼리를 입력해서 DB를 제어하는 방식으로 이 방법이 나쁜건 아니다.

     

    사용이 편리하고 직관적이고 배우기가 수월하다.

     

    그러한 점에서 국비 지원 같은 경우 myBatis를 통해 DB를 제어하는 것을 배우게 된다.

     

    하지만 이러한 방식에는 단점이 있었다.

     

    바로 자바의 객체 지향적인 코드와는 맞지 않는다는 것이다.

     

    일반적으로 Java를 배울 때 객체 지향이라는 말을 귀에 못이 박히게 듣는다.

     

    하지만 관계형 데이터 베이스 직접 제어 방식으로는 객체 지향적인 코드 구현이 어렵다.

     

    둘은 각각 객체와 데이터를 다루는 방식이 다르기 때문이다.

    ORM의 등장

    ORM은 Object–relational mapping의 약자로서 간단히 말하면 위의 단점을 극복하고자 나왔다.

     

    즉 관계형 데이터 베이스를 사용하면서도 객체 지향적 코드를 구현하기 위해 나온 기술이다.

     

    ORM이 자동으로 객체와 관계형 데이터 베이스를 자동으로 맵핑해주는 것이다.

     

    더 간단히 말하면 쿼리 없이 데이터 베이스를 제어할 수 있도록 도와주는 기술이다.

     

    물론 ORM의 단점도 존재한다.

     

    SQL 쿼리를 사용하는 방법에 비해 난이도가 높고 복잡한 쿼리를 사용해야할 경우 난이도가 높아진다.

     

    그리고 결과적으로 ORM를 쓰더라도 기본적으로 데이터 베이스와 쿼리에 대해선 알고 있어야 한다.

     

    그래야 더욱 ORM 기술을 효과적으로 사용할 수 있기 때문이다.

     

    그럼에도 불구하고 ORM은 현재 대세가 된 상황이다.

    JPA의 정의

    JPA란 Java Persistence API의 약자로 ORM 기술에 대해 기술한 인터페이스다.

     

    즉 ORM 기술을 사용할 수 있도록 자바에서 제공하는 일종의 인터페이스다.

     

    그리고 이러한 ORM 기술을 사용하기 위해서는 JPA인터페이스를 구현해야 하는데

     

    이러한 구현체 중 하나가 유명한 ORM프레임워크인 하이버네이트이다.

    Spring Data JPA

    위에서 언급한대로 JPA란 ORM 기술을 사용하기 위한 인터페이스다.

     

    그리고 이것을 구현한 것이 하이버네이트를 비롯한 ORM 프레임워크다.

     

    스프링을 사용할 때는 Spring Data JPA를 이용해서 ORM 기술을 사용할 수 있다.

     

    Spring Data JPA는 ORM 프레임워크를 쉽게 사용할 수 있게 만든 모듈이다.

     

    가장 널리 쓰이는 하이버네이트를 비롯해 다양한 ORM 프레임워크도 쉽게 사용할 수 있게 돕는다.

Designed by Tistory.