CODINGHEIM.log
로그인
CODINGHEIM.log
로그인
JPA로 데이터베이스 다루기
송수용
·
2022년 6월 16일
팔로우
0
JPA
TIL
스파르타코딩
항해99
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에 의존적이지 않다.)
송수용
#공부중 #협업 #소통중시 #백엔드개발자 #능동적 #워커홀릭 #스파르타코딩 #항해99 #미니튜터 #Nudge #ENTJ #브레인스토밍 #아이디어뱅크
팔로우
이전 포스트
단위테스트 작성하기
다음 포스트
CORS 원인과 해결하기
0개의 댓글
댓글 작성
관련 채용 정보