티스토리 뷰

JPA와 ORM

JPA는 자바 언어를 DB가 이해할 수 있도록 하는 번역기라고 할 수 있다.

원래 DB는 SQL이라는 언어를 사용해서 객체를 저장하거나 불러올 수 있는데 매번 DB와 소통할 때 SQL을 작성하게 되면 객체지향적으로 프로그래밍을 할 수가 없다.
이러한 객체지향과 관계형 DB간 패러다임 불일치를 해결하기 위한 기술이 ORM 프레임워크이고 자바 진영의 ORM 기술 표준이 JPA이다.

JPA는 개발자가 SQL을 작성하지 않아도 적절한 SQL을 생성해서 DB와 소통하고 객체를 Mapping해주기 때문에 생산성을 크게 높일 수 있고 DB를 바꾼다고 해도 매핑 정보가 class로 명시되어 있기 때문에 쿼리를 수정할 필요가 없어 유지보수에 유리하다.

그러나 쿼리가 자동으로 생성되는 만큼 개발자가 의도하지 않은 N+1과 같은 문제나 성능저하가 있을 수 있다.

스프링과 스프링부트

스프링은 기능이 다양한 만큼 환경설정이 복잡한 편인데, 이러한 어려움을 해결하고자 나온 것이 스프링부트이다.

먼저 WAS를 내장하고 있어서 따로 서버를 설치하거나 버전관리 해주지 않아도 되고 jar 파일만으로 자체적으로 프로젝트를 실행시킬 수 있다.

그리고 스프링은 필요한 라이브러리의 디펜던시 설정을 일일이 해주어야 하는 번거로움이 있지만 최적화를 할 때 강점이 있고, 스프링부트는 starter라는 디펜던시 패키지가 있어서 설정을 보다 간편하게 할 수 있다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함