본문 바로가기
개발 팁 정리

mongoose, typegoose, nestjs-typegoose, kindagoose 사용이유

by minhyeok.lee 2023. 3. 3.
반응형

mongoose => typegoose, nestjs-typegoose => kindagoose 사용이유

 

Mongoose

1. MongoDB와 Express.js 웹 애플리케이션 프레임워크 간 연결을 생성하는 자바스크립트 객체지향 프로그래밍 라이브러리이다.

2. Node.js와 MongoDB를 연결해주는 ODM이다. 

 * ODM(Object Documnet Mapping): 객체와 문서를 1대1로 매칭하는 역할을 한다.

3. Node.js기반 프레임 워크들에서도 사용 가능하다. (NestJS와 같은 Express기반 프레임워크 또한 가능)

 

Typegoose

TypeScript와 함께 Mongoose를 사용할 때 Mongoose 모델과 TypeScript 인터페이스를 모두 정의해야 한다는 문제

 - 모델이 변경되면 TypeScript 인터페이스 파일도 동기화 상태를 유지해야 한다.

 - 그렇지 않으면 TypeScript 인터페이스가 모델의 실제 데이터 구조를 나타내지 않는다.

 

Typegoose는 오직 타입스크립트 인터페이스(클래스)만을 정의함으로써 이 문제를 해결하려 한다.
내부적으로는 Reflect & reflect-metadata API를 사용하여 속성 유형을 검색하므로 중복성을 크게 줄일 수 있다.

 

 

nestjs-typegoose => kindagoose

nestjs-typegoose

NestJS와 typegoose를 같이 사용할 때 설치하는 패키지이다.

업데이트가 2021년 8월 15일 이후로 없기 때문에 여러 문제가 발생할 수 있다.

 

kindagoose

kindagoose를 만들 때 주요 초점은 이전 버전인 nestjs-typegoose의 문제를 해결하는 것이다.

그 중 하나는 nestjs-typegoose에서 불가능한 오래된 버전의 패키지를 사용하는 것이다.

바로 이러한 이유로 peerDependencies 내부의 종류는 프로젝트에서 작업할 때 다음 버전의 지정된 패키지를 설치하도록 요구된다.

프로젝트에서 꼭 오래된 버전의 패키지를 사용해아 하는데, nestjs-typegoose와 같이 사용할 때 에러가 나면 사용한다.

반응형

댓글