ORM
- 전통?의 데이터베이스 사용은 ERD를 작성(식별부터 정규화까지)하고,
- DDL로 테이블 생성 등 데이터베이스 사용을 위한 초기화를 하고,
- DML로 조회 쿼리를 작성하는 등 과정을 거쳐 사용했다
- 그런데 ORM, Object Relational Mapping 이 뭘까..?
- 위 영상을 보고 정리한 내용
ORM
- 오브젝트 기반의 ~
- 객체(클래스)를 만들면 테이블을 생성해주는 마법
장점
- data model을 한 곳에서 작성한다
- 백엔드에서 데이터베이스 테이블과 매핑되는 타입을 정의하는데, ORM을 쓰면 내가 정의한 모델 자체가 타이핑이 된다
- sql을 작성하지 않아도 된다 ; 모델을 정의하면 DDL을 알아서 생성한다. DML 작성 대신 메서드를 사용한다
- 데이터베이스 추상화 ; 보통의 ORM 라이브러리들은 여러 데이터베이스를 지원한다
- 오라클을 사용하다가 mysql로 데이터베이스를 바꿔도 전혀 문제가 없다
- OOP를 활용한다 ; OOP를 알고 있으면 친숙하다
단점
- ORM을 따로 배워야 한다
- ORM을 통해 데이터베이스를 다룬다는 것에서 레이어가 나뉘었다는 장점?이 있지만, 데이터베이스를 커스텀하기 힘들다 (성능)
ORM 예
- 자바에서는 hibernate,
- 노드에서는 sequelize, typeorm, prisma 등이 있다