Dev.끄적끈적

JPA의 이해 본문

Spring

JPA의 이해

YeouidoSexyDeveloper 2022. 5. 17. 13:58

02. JPA 이해

  1. 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 는 표준 명세이고, 이를 실제 구현한 프레임워크 중 사실상 표준
    • 스프링 부트에서 기본적으로 "하이버네이트" 사용 중
    사실상 표준 (de facto, 디팩토) 보통 기업간 치열한 경쟁을 통해 시장에서 결정되는 비 공식적 표준이다

'Spring' 카테고리의 다른 글

DTO는 무엇이고 왜 사용할까?  (0) 2022.06.23
AOP 란?  (0) 2022.06.16
Bean과 스프링 IoC 컨테이너  (0) 2022.03.27
DI (의존성 주입) 의 이해  (0) 2022.03.27
Controller, Service, Repository 역할, 분리  (0) 2022.03.27