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 등이 있다

참고

Author

chinsung

Posted on

2021-08-25

Updated on

2021-08-28

Licensed under

댓글