ORM vs Raw Query

codermoon·2022년 1월 27일
0
post-thumbnail

ORM vs Raw Query

ORM (Object Relational Mapping)

ORM은 사물을 추상화시켜 이해하려는 객체지향 프로그래밍적 사고방식과 DataModel을 정형화하여 관리하려는 관계형 데이터베이스 사이를 연결할 계층의 역할로 제시된 패러다임이다.

ORM을 사용하기 전

백엔드 개발자가 DB에 접근하기 위해서는 SQL Query(Raw Query)를 직접 만들어서 보냈다. 흔히 말하는 'DB에 쿼리를 날렸다.' 라고 말하는 것이다. 이렇게 개발하게 된다면

  • 백엔드 개발자는 SQL문법을 알고 있어야 한다.
  • 개발 프로그래밍과 DB 쿼리코드가 서로 종속된다.

이러한 문제점들을 해결하기 위해 ORM이 등장하였고, ORM이 등장함으로서

  • SQL Query의 문법에서 비교적 자유로워졌고,
  • 개발 코드와 DB를 아예 분리하면서 객체지향의 의도에 적합하게 되었다.

ORM 사용의 장점과 단점

장점
  • 프로그래밍의 생산성 향상
    선언문, 콜백 함수, 종료 등과 같은 쓸데 없는 코드가 사라져 코드의 가독성 향상 및 생산성 향상

  • 눈에 잘 뛰는 쿼리 (ORM 함수 사용)
    코드가 간결해지기 때문에 보기가 쉬워진다.

  • DB 쿼리 의존성 감소
    대부분 ORM 솔루션이 특정 DB에 종속적이지 않다.
    개발자는 DB에 상관없이 Object에만 집중이 가능하다.

단점
  • 수정의 어려움
    SQL Query보다 자세하지가 않아서 수정이 상대적으로 어렵다.

  • 복잡한 쿼리작성의 문제
    ORM이 지정해 놓은 명령만 가능하며, SQL의 다양한 문법보다는 상대적으로 없는 문법이 많다.

  • Raw Query에 비해 느리다.
    DB에 직접명령을 내리는게 아닌 프로그래밍언어를 거쳐서 가기 때문에.

어떤것을 사용해야 할 까?

1. TypeORM, Sequelize

TS를 지원, 생산성, 신뢰성 모두 만족하지만 실행속도, 수정이 어렵다.

2. Raw Query

수정, 튜닝, 세부적이고 복잡한 쿼리작성이 가능, ORM에 비해 빠른 속도지만 위와 반대로 생산성, 신뢰성은 조금 떨어진다.

profile
Code Occulter

0개의 댓글