티스토리 뷰
ORM(Object Relational Mapping): 객체-관계 매핑
* 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 프레임워크를 말한다.
* 자동으로 매핑해주기 때문에 객체와 테이블 간의 불일치를 해결해준다.
* 데이터베이스는 영구적으로 저장한다는 특징(영속성)이 있기 때문에, entity도 이에 맞춰 만들고 이에 따른 관계를 설정하는데, SQL문을 사용하게 되는데 이때 테이블과 이질성이 발생되어 결과적으로 이중 관리하게 되는 문제점이 있었다.

이와 관련해서는 JPA라는 개념이 있다.
JPA는 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. (라이브러리가 아니라는 점에 주목!)
Hibernate는 JPA라는 명세의 구현체이다.
매일 썼던 JPA는 사실 Hibernate 라이브러리를 쓰는 것이었던 것이다.
강의에서 JPA Repository 를 상속받지 않고 직접 구현을 했었는데, 그 개념을 생각하면 좋을 것 같다.

ORM의 장점
* SQL이 아닌 메서드로 데이터를 조작할 수 있어 직관적이다.
* 위의 장점으로 인해 개발자가 객체 모델로 프로그래밍하는 데 집중할 수 있고, ERD를 보는 것에 대한 의존도를 낮출 수 있다.
* 재사용 및 유지보수가 용이하다. 대부분 ORM 솔루션은 DB에 종속적이지 않기 때문에 DBMS를 교체하는 등의 작업에 비교적 적은 리스크와 시간이 소요된다.
ORM의 단점
* 사용하기는 편하지만, 완벽한 ORM만으로는 서비스를 구현하기 어렵기 때문에 설계 난이도가 올라간다.
* 마찬가지로, 잘못 구현된 경우 속도 저하의 이슈나, 일관성이 무너질 수 있다.
'TIL' 카테고리의 다른 글
| [Spring] 단축키들 & 어노테이션 (0) | 2022.06.03 |
|---|---|
| [Spring] Exception 처리 (0) | 2022.06.02 |
| [Spring] 스프링 시큐리티 (0) | 2022.05.31 |
| [WIL] 셋째주 회고 - IoC, Bean, DI (0) | 2022.05.29 |
| [Spring Boot] Controller: Response (0) | 2022.05.28 |
- Total
- Today
- Yesterday
- 상속
- 배열
- AfterEach
- 패키지
- 임포트
- 제어자
- 단항연산자
- bean
- GIT
- ManyToMany
- controller
- IOC
- 몽고db
- clean-up policy
- jinja2
- toCharArray
- overfatching
- ORM
- 항해99
- ResetController
- Java
- 자바의정석
- DI
- MVC
- OneToMany
- AssertJ
- 고민
- 스프링부트
- 서버환경
- ManyToOne
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
