[Node.js] ORM과 Node.js 추상화 계층

김민재·2024년 4월 6일

Node.js

목록 보기
22/36

ORM과 Node.js 추상화 계층

  • 추상화란? 추상화

  • 데이터베이스도 사용하는 방법에 따라 추상화가 많이 되어있는 라이브러리를 사용할 수도 있고, 그렇지 않은 라이브러리를 사용해서 데이터베이스를 컨트롤 할 수도 있다.

추상화 정도를 3단계로 나눠서 살펴보자.

저수준: 데이터베이스 드라이버

  • 데이터베이스 인증 정보를 가져오고, 새 데이터베이스 인스턴스를 인스턴스화 하고, 데이터베이스에 연결하고, 문자열 형식으로 쿼리를 보내고 결과를 비동기적으로 처리하는 것

    ex)

중간 수준: 쿼리 빌더

  • 단순한 데이터베이스 드라이버 모듈과 완전한 ORM을 사용하는 것의 중간 수준(Knex와 함께 사용하려는 특정 라이브러리를 설치해야 한다.)

    ex)

고 수준: ORM

  • 최고 수준의 추상화, ORM으로 작업할 때 일반적으로 더 많은 설정을 사전에 수행해야 한다. 관계형 데이터베이스의 데이터를 애플리케이션의 객체(클래스 인스턴스)에 매핑하는 것이다.

    Node.js 대표 ORM 종류

    • typeorm
    • prisma
    • sequelize

    ORM의 단점

    • SQL이 아닌 ORM 자체를 배우게 된다.
    • ORM을 아용해서 복잡한 호출을 하면 성능이 좋이 않을 수도 있다.

    ORM의 장점

    • 하나의 소스 코드를 이용해서 여러 데이터베이스로 쉽게 교체가 가능하다.
    • 중복 코드를 방지한다
    • SQL 인젝션 취약점으로부터 보호된다.
    • 모델 유효성 검사 지원
    • Typescript 지원
profile
개발 경험치 쌓는 곳

0개의 댓글