티스토리 뷰
반응형
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 |
댓글