일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 몽고디비
- java spring framework
- NoSQL
- JPA
- 읽기 고려
- 자바
- Write Concern
- Text Index
- 스프링 부트
- 쓰기 고려
- 위치 기반 쿼리
- 조대협
- 대용량 아키텍처와 성능 튜닝
- Code Presso
- 스프링 프레임워크
- spring boot
- aws
- Jenkins
- mongoDB
- AWS Developer
- Spring Framework
- EC2
- Amazon Web Service
- iam
- Spring
- 스프링
- AWS 자격증
- 코드프레소
- Java
- STS
- Today
- Total
개발과 기록의 조화
[Spring Boot] JPA 연동 - 개념 이해하기 본문
해당 게시물은 학습 및 기록 목적으로 작성되었습니다. 사실과 다른 내용이 있을 수 있으며, 오류가 있거나 궁금한 점은 댓글이나 dlaudtjr07@gmail.com 으로 메일 주시면 감사하겠습니다.
해당 게시물은 이전의 글과 이어집니다.
3. [Spring Boot] 아주 간단한 웹 애플리케이션 예제 작성
Spring Boot와 JPA 연동
웹 서비스를 이용하기 위해서 반드시 연동해야 하는 기능이 있습니다. 바로 데이터베이스입니다. 그 중에서도 ‘ ORM ’ 이라고 불리우는 기술을 이용할 것인데, ORM 중 스프링 부트에서 편리한 기능들을 많이 제공하는 JPA를 이용할 것입니다.
ORM 이란??
객체 관계형 매핑 ( ORM , Object-relational mapping )은 객체 지향 프로그래밍 언어를 사용하여 호환되지 않는 시스템 간에 데이터를 변환 하는 프로그래밍 기술입니다 . 사실상 프로그래밍 언어 내에서 사용할 수 있는 ‘가상 객체화 데이터베이스’ 를 생성하는 것입니다.
ORM은 기본적으로 ‘객체 = DB 테이블’ 을 가능하게 해주는 역할을 합니다. 즉, 쿼리문을 직접 작성해서 관리하는 것이 아닌, ‘코드’로 DB를 조작할 수 있습니다.
다만 쿼리가 복잡해진다면 , ORM으로만 구현하기에 한계가 올 수 있고, 성능 또한 기존 쿼리에 비해 좋지 않습니다.
[출처]Wikipedia-Object-relational mapping
JPA 개념
Java Persistent API , 줄여서 JPA라고 불린다. 이 ORM 표준 은 과거에 EJB가 가지고 있는 문제점들을 개선하기위해 만들어졌습니다. JPA하면 따라오는 친구가 있는데, 바로 Hibernate이다. JPA가 인터페이스 , Hibernate가 구현체 역할을 하는 것입니다. (OpenJPA, EclipseLink 등 여러 구현체가 있지만, 많이 쓰이는 프레임워크는 Hibernate입니다)
정리하자면, JPA는 Hibernate, OpenJPA 등 ORM 프레임워크를 이용하기 위한 ORM 인터페이스입니다.
(2020년 기준) 아직 대한민국에서는 Mybatis 를 더 많이 쓰고 있습니다. 아마도 대한민국에서는 안정성을 매우 중요시하는 금융 시장, SI 시장이 많기 때문에 SQL 문을직접 관리하는 것이 좋기 때문일 것입니다. 하지만 세계적으로 봤을 때는 JPA(Hibernate) 사용량이 압도적으로 많을 것을 볼 수 있습니다. 반드시 JPA를 쓰는 것이 아닌, 상황에 맞게 적절히 선택해서 사용해야 합니다.
JPA 동작원리
동작원리는 간단합니다. JAVA 어플리케이션과 JDBC 사이에서 중개인 역할을 한다고 생각하면 되는데, 우리가 xml파일로 쿼리문을 따로 설정하지 않아도 코드에 따라 JPA에서 알아서 쿼리문으로 변환해 JDBC로 전달한 다음, JDBC는 해당 쿼리문을 DB에 전송해 결과값을 가지고 옵니다.
해당 글은 코드프레소 DevOps Roasting 코스를 수강하면서 작성한 글입니다.
'Web Framework > Java Spring Framework' 카테고리의 다른 글
[Spring Boot] application.Properties 파일 분리해서 jar 파일 실행 (0) | 2020.03.03 |
---|---|
[Spring Boot] JPA 연동 - JPA 기본 설정 (0) | 2020.02.02 |
[Spring Boot] 아주 간단한 웹 애플리케이션 예제 작성 (0) | 2020.02.01 |
[Spring Boot] 프로젝트 구조 (0) | 2020.02.01 |
[Spring Boot] Lombok 개념 및 설치 (0) | 2020.02.01 |