JPA로 데이터베이스 다루기

송수용·2022년 6월 16일
0

백엔드의 기술

목록 보기
8/11

스프링 부트에서 JPA다루기

내 경험

  • SI에서 일을 할 때, 비즈니스 로직 작성을 하는 데 들이는 시간보다 대부분 MyBatis의 SQL MAPPER를 사용하면서 SQL를 다루는 시간이 많았다.

생산성을 높여주기 위한 JPA

  • JPA라는 자바 표준 ORM
  • iBatis, Mybatis 는 ORM이 아니다.

JPA 소개

  • 웹 애플리케이션에서 관계형 데이터베이스는 빠질 수 없는 요소이다.
  • 객체를 관계형 데이터베이스에서 관리하는 것이 무엇보다 중요하다.
  • 모든 코드는 SQL 중심이 되어간다.
  • SQL을 통해야만 데이터베이스에 저장하고 조회할 수 있다.
  • 웹 애플리케이션 개발은 점점 데이터 베이스 모델링에만 집중하게 되었다.
    • JPA는 이런 문제점을 해결하기 위해 등장했다.
  • 서로 지향하는 바가 다른 2개 영역을 중간에서 패러다임 일치를 시켜주기 위한 기술이다.
    • *아래 패러다임 불일치
  • 개발자는 객체지향적 프로그래밍을 하고 JPA가 이를 관계형 데이터 베이스에 맞게 SQL을 대신 생성해서 실행한다.
    • SQL에 종속적인 개발을 하지 않아도 된다.

패러다임 불일치

  • 관계형 데이터베이스는 어떻게 데이터를 저장할지에 초점이 맞춰진 기술이다.
  • 반대로 객체지향 프로그래밍 언어는 메세지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술이다.
  • 관계형 데이터 베이스와 객체지향 프로그래밍 언어의 패러다임이 서로 다른데, 객체를 데이터 베이스에 저장하려고 하니 여러문제가 발생했고, 이를 패러다임의 불일치 라고 한다.

Spring Data JPA

  • JPA는 인터페이스로서 자바 표준 명세서이다.
  • 인터페이스인 JPA는 구현체가 필요하다.
    • Hibernate,Eclipse Link 등
  • 위 구현체를 좀 더 쉽게 사용하고자 추상화 시킨 것이 Spring Data JPA라는 모듈을 이용한다.
  • 하이버네이트와 Spring Data JPA를 쓰는 것 사이에는 큰 차이가 없다.
  • 스프링 진영에서는 Spring Data JPA를 개발했고, 이를 권장하고 있다.
  • Spring Data JPA가 등장한 이유는 2가지 이다.
    • 구현체 교체의 용이성
      • 하이버네이트 외에 다른 구현체로 쉽게 교체하기 위함
    • 저장소 교체의 용이성
      • 관계형 데이터베이스 외에 다른 저장소로 쉽게 교체하기 위함(DB에 의존적이지 않다.)
profile
#공부중 #협업 #소통중시 #백엔드개발자 #능동적 #워커홀릭 #스파르타코딩 #항해99 #미니튜터 #Nudge #ENTJ #브레인스토밍 #아이디어뱅크

0개의 댓글

관련 채용 정보