Skip to content

우리가 TypeORM을 사용해야 하는 이유

Vardy edited this page Dec 10, 2023 · 1 revision

우리가 TypeORM을 사용해야 하는 이유

ORM이란?

ORM은 "객체 관계 매핑" (Object-Relational Mapping)의 약자로, 소프트웨어 개발에서 객체 지향 프로그래밍과 관계형 데이터베이스 간의 상호 작용을 관리하는 프로그래밍 기술 및 패턴을 의미합니다.

TypeORM이란? (공식문서)

TypeORM은 NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo 및 Electron 플랫폼에서 실행할 수 있고 TypeScript 및 JavaScript(ES5, ES6, ES7, ES8)와 함께 사용할 수 있는 ORM입니다 . 그 목표는 항상 최신 JavaScript 기능을 지원하고 몇 개의 테이블이 있는 소규모 애플리케이션부터 여러 데이터베이스가 있는 대규모 엔터프라이즈 애플리케이션에 이르기까지 데이터베이스를 사용하는 모든 종류의 애플리케이션을 개발하는 데 도움이 되는 추가 기능을 제공하는 것입니다. TypeORM은 현재 존재하는 다른 모든 JavaScript ORM과 달리 Active Record 와 Data Mapper 패턴을 모두 지원합니다 . 즉, 느슨하게 결합되고 확장 가능하며 유지 관리 가능한 고품질 애플리케이션을 가장 생산적인 방식으로 작성할 수 있습니다.

Active Record 패턴

Active Record 패턴은 소프트웨어 개발에서 사용되는 디자인 패턴 중 하나로, 객체 지향 프로그래밍에서 데이터베이스 레코드와 객체를 일치시키는 패턴입니다. 이 패턴은 데이터베이스 테이블의 각 행을 개별적인 객체로 표현하며, 해당 객체는 데이터를 캡슐화하고 데이터베이스와 상호 작용할 수 있는 방법을 제공합니다.

Data Mapper 패턴

Data Mapper 패턴은 소프트웨어 개발에서 사용되는 디자인 패턴 중 하나로, 객체 지향 프로그래밍에서 데이터베이스와 상호 작용하는 데 사용되는 패턴입니다. 이 패턴은 데이터베이스와 독립적인 객체를 유지하고 데이터베이스와의 상호 작용을 분리하여 데이터베이스와 객체 간의 불일치를 해결하는 데 도움이 됩니다.

기존 방법과 비교해서 알아보는 TypeORM의 장점

타입 안정성 (Type Safety)

  • 기존 방법: 많은 경우 SQL 쿼리를 문자열로 작성하거나, 특정 데이터베이스 라이브러리를 사용할 때 타입 안정성을 보장하기 어려웠습니다. 이는 런타임 오류의 가능성을 높였습니다.
  • TypeORM: TypeScript와 함께 사용하면, 데이터베이스 테이블과 모델 간의 타입 안정성을 제공합니다. 모델 정의와 쿼리 작성 시 컴파일러의 도움을 받아 안전한 코드를 작성할 수 있습니다.

객체 관계 매핑 (ORM)

  • 기존 방법: 데이터베이스와 상호 작용할 때, 데이터베이스 테이블과 어플리케이션 모델 간의 매핑을 명시적으로 처리해야 했습니다.
  • TypeORM: ORM 패턴을 따르므로, 데이터베이스 테이블과 애플리케이션 모델 사이의 관계를 간단하게 정의할 수 있습니다. 이로써 데이터베이스 스키마 변경에 대한 작업을 줄이고, 코드 유지 보수를 용이하게 합니다.

쿼리 언어의 추상화

  • 기존 방법: 데이터베이스 쿼리를 SQL로 작성해야 했으며, 데이터베이스 종속적인 코드를 작성하는 것이 일반적이었습니다.
  • TypeORM: TypeORM은 다양한 데이터베이스에 대한 추상화된 쿼리 API를 제공합니다. 따라서 데이터베이스 종속성을 낮추고 여러 데이터베이스 시스템을 쉽게 전환할 수 있습니다.

마이그레이션 및 스키마 관리

  • 기존 방법: 데이터베이스 스키마 변경 및 마이그레이션은 복잡한 프로세스일 수 있었으며, 수동으로 처리해야 했습니다.
  • TypeORM: 마이그레이션 도구를 제공하여, 데이터베이스 스키마를 버전 관리하고 변경을 추적할 수 있습니다. 이로써 스키마 업데이트가 편리해집니다.

생산성 향상

  • TypeORM은 CRUD (Create, Read, Update, Delete) 작업 및 데이터베이스 관리 작업을 단순화하며, 개발자의 생산성을 향상시킵니다.

커뮤니티와 생태계

  • TypeORM은 활발한 커뮤니티와 다양한 확장 기능을 가지고 있어, 문제 해결 및 지원이 용이하며 다양한 환경에 적용할 수 있습니다.

요약하자면, TypeORM은 TypeScript 및 JavaScript를 사용하는 애플리케이션 개발자에게 데이터베이스 작업을 단순화하고, 코드의 가동성과 유지 보수성을 향상시키며, 타입 안정성과 생산성을 제공하는 강력한 도구 입니다.

참고문헌: https://typeorm.io/

Clone this wiki locally