티스토리 뷰

개발일지/TIL

JPA 이해

OH!Lee 2022. 7. 18. 15:47
반응형

 1)ORM 이란?

💡 ORM: Object-Relational Mapping

Object: **"객체"**지향 언어 (자바, 파이썬)
Relational: "관계형" 데이터베이스 (H2, MySQL)

  • 백엔드 개발자(Backend Developer): 웹 서버를 개발하는 개발자
  • DBA (Database Administration): 데이터베이스 관리자. 데이터베이스를 설치, 구성, 관리 등의 일을 맡은 사람

 

Questions)

  • ORM 이 없이 웹 서버 개발은 못 하나요?
    • ORM 없이도 충분히 웹 서버 개발 가능
    • 예) AllInOneController 에서 Repository 역할 분리

  • ORM 만든 이유?
    • ORM 이 없는 환경에서는 백엔드 개발자가 비즈니스 로직 개발보다 SQL 작성에 더 많은 노력을 들여야 하더라..
    • SQL 작성이 단순하고 반복적인데, 실수하기는 쉬움
  • 웹 서버 개발 언어(Java, Python, Javascript 등) 와 관계형 데이터베이스 언어 (SQL) 의 목적 및 사용방법이 다름

그럼 이제 백엔드 개발자는 DB 에 대해 몰라도 되나요?

  • 아니요! 백엔드 개발자는 DB 에 대해 잘 알고 있어야 함
    • DB 테이블 설계, SQL Query 성능 확보 등

 

 

2)JPA는?


💡 JPA: Java Persistence API
    자바 ORM 기술에 대한 표준 명세

JPA = Java의 ORM이다!

 

 

Questions)

  • JPA 가 없으면?
    • 직접 SQL 문을 작성해서 구현 가능
    • 실제로 과거엔 JPA 없이 웹 서버를 개발한 기업이 많았고, 현재도 유효
  • JPA 사용 트렌드?
    • 과거엔 SQL 매퍼 (MyBatis, JdbcTemplate) 위주로 개발
    • 전 세계적으로 JPA 사용 빈도가 급격히 높아져 현재는 JPA 가 대세!!
  • 하이버네이트 (Hibernate)?
    • JPA 는 표준 명세이고, 이를 실제 구현한 프레임워크 중 사실상 표준
    • 스프링 부트에서 기본적으로 "하이버네이트" 사용 중
     
 사실상 표준 (de facto, 디팩토) 보통 기업간 치열한 경쟁을 통해 시장에서 결정되는 비 공식적 표준이다
 출처: 위키백과

 

 

반응형

'개발일지 > TIL' 카테고리의 다른 글

DB의 연관관계 이해  (0) 2022.07.18
JPA 영속성 컨텍스트 이해  (0) 2022.07.18
JPA  (0) 2022.07.17
Getter, Setter의 이해  (0) 2022.07.17
객체지향 복습  (0) 2022.07.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함