티스토리 뷰
JPA와 ORM
JPA는 자바 언어를 DB가 이해할 수 있도록 하는 번역기
라고 할 수 있다.
원래 DB는 SQL이라는 언어를 사용해서 객체를 저장하거나 불러올 수 있는데 매번 DB와 소통할 때 SQL을 작성하게 되면 객체지향적으로 프로그래밍을 할 수가 없다.
이러한 객체지향과 관계형 DB간 패러다임 불일치를 해결
하기 위한 기술이 ORM 프레임워크이고 자바 진영의 ORM 기술 표준이 JPA이다.
JPA는 개발자가 SQL을 작성하지 않아도 적절한 SQL을 생성해서 DB와 소통하고 객체를 Mapping해주기 때문에 생산성을 크게 높일 수 있고 DB를 바꾼다고 해도 매핑 정보가 class로 명시되어 있기 때문에 쿼리를 수정할 필요가 없어 유지보수에 유리하다.
그러나 쿼리가 자동으로 생성되는 만큼 개발자가 의도하지 않은 N+1과 같은 문제나 성능저하가 있을 수 있다.
스프링과 스프링부트
스프링은 기능이 다양한 만큼 환경설정이 복잡한 편인데, 이러한 어려움을 해결하고자 나온 것이 스프링부트이다.
먼저 WAS를 내장
하고 있어서 따로 서버를 설치하거나 버전관리 해주지 않아도 되고 jar 파일만으로 자체적으로 프로젝트를 실행시킬 수 있다.
그리고 스프링은 필요한 라이브러리의 디펜던시 설정을 일일이 해주어야 하는 번거로움이 있지만 최적화를 할 때 강점이 있고, 스프링부트는 starter라는 디펜던시 패키지가 있어서 설정을 보다 간편
하게 할 수 있다.
반응형
'CS > CS 14일 프로젝트' 카테고리의 다른 글
[CS 14일 프로젝트] 2022-11-30(WS와 WAS / Apache와 NginX) (0) | 2022.11.30 |
---|---|
[CS 14일 프로젝트] 2022-11-29(싱글톤 패턴 / 트랜잭션) (0) | 2022.11.29 |
[CS 14일 프로젝트] 2022-11-28(AOP / Spring IoC Container) (0) | 2022.11.28 |
[CS 14일 프로젝트] 2022-11-27(filter와 interceptor / DI(Dependency Injection, 의존성 주입)) (0) | 2022.11.27 |
[CS 14일 프로젝트] 2022-11-26(Dispatcher Servlet / Spring Bean Life Cycle) (0) | 2022.11.26 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 타입스크립트
- 정렬
- 자바트리
- 자바
- JPA
- dfs
- BFS
- 자바bfs
- Comparator
- JavaScript
- 스프링부트
- 백준
- Algorithm
- SQLD
- 알고리즘
- 리액트
- Spring
- 형변환
- 자바스크립트
- java
- Nest
- 이분탐색
- 프로그래머스
- 자바dp
- SQL
- DP
- Queue
- 스프링
- 해시맵
- CS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함