기본적인 기능들을 제공하는 라이브러리들이 있고, 그 라이브러리를 어떤 프레임워크에서 원활하게 사용할 수 있게 하기 위해 인터페이스로 감싼 라이브러리들이 존재한다. mongoose는 많이 써봤지만, 타입스크립트가 가미되어 데코레이터를 제공하는 mongoose의 확장 라이브러리를 쓰기 어려웠으며 @nestjs/mongoose 같은 라이브러리는 문서가 빈약하여 이해하기 어려웠다.
그러나 공부하다보니 mongoose의 개념들을 잘 이해하고만 있었다면 그냥 기능을 감쌌을 뿐인 관련 라이브러리를 이해하기 쉬웠을 거라는 걸 알았다. 고급 기능들을 잘 쓰려면 고급 기능을 이해하는 게 아니라 기저에 깔린 기본 개념을 이해하는 게 먼저였던 것이다.