개발/Spring
JPA의 이해
GD_dev
2022. 5. 17. 13:58
02. JPA 이해
- ORM이란?
💡 ORM: Object-Relational Mapping
- 백엔드 개발자(Backend Developer): 웹 서버를 개발하는 개발자
- DBA (Database Administration): 데이터베이스 관리자. 데이터베이스를 설치, 구성, 관리 등의 일을 맡은 사람
- Object: **"객체"**지향 언어 (자바, 파이썬) Relational: "관계형" 데이터베이스 (H2, MySQL)
Questions)
- ORM 이 없이 웹 서버 개발은 못 하나요?
- ORM 없이도 충분히 웹 서버 개발 가능
- 예) AllInOneController 에서 Repository 역할 분리
- ORM 만든 이유?
- ORM 이 없는 환경에서는 백엔드 개발자가 비즈니스 로직 개발보다 SQL 작성에 더 많은 노력을 들여야 하더라..
- SQL 작성이 단순하고 반복적인데, 실수하기는 쉬움
- 웹 서버 개발 언어(Java, Python, Javascript 등) 와 관계형 데이터베이스 언어 (SQL) 의 목적 및 사용방법이 다름
2. JPA 란?
💡 JPA: Java Persistence API 자바 ORM 기술에 대한 표준 명세
- JPA 사용 트렌드?
- 과거엔 SQL 매퍼 (MyBatis, JdbcTemplate) 위주로 개발
- 전 세계적으로 JPA 사용 빈도가 급격히 높아져 현재는 JPA 가 대세!!
- 하이버네이트 (Hibernate)?
- JPA 는 표준 명세이고, 이를 실제 구현한 프레임워크 중 사실상 표준
- 스프링 부트에서 기본적으로 "하이버네이트" 사용 중