orm mapping
ORM 변환 계층
ORM은 객체 모델과 테이블 모델의 차이를 매핑한다. 개발자는 엔티티와 리포지토리로 작업하고, SQL 생성과 결과 변환은 ORM이 담당한다.
변환의 의미: 클래스 필드 ↔ 테이블 컬럼경계가 보이면 TypeORM의 역할이 분명해진다.
ORM을 쓰는 이유
01타입과 자동완성
엔티티 필드가 코드 편집기에서 바로 보인다.
02반복 쿼리 감소
CRUD 기본 작업을 리포지토리 API로 처리한다.
03관계 표현
엔티티 관계를 코드 구조로 드러낼 수 있다.
객체 세계와 DB 세계의 대응
| 객체 코드 | TypeORM 매핑 | 데이터베이스 |
|---|---|---|
| User class | @Entity() | users table |
| email property | @Column() | email column |
| repository.save() | INSERT 또는 UPDATE 생성 | row 저장 |
| repository.find() | SELECT 생성 | row를 객체로 변환 |