코드 낭만 제작소

[NestJS] Monorepo구조에서 lib구성하기 본문

Dev-Code(Back-End)/NestJS

[NestJS] Monorepo구조에서 lib구성하기

박개굴 2025. 2. 21. 09:50
반응형

지난번에 프로젝트를 표준구조에서 monorepo구조로 변경을 진행했다.

 

[NestJS] 프로젝트 구조를 MonoRepo(모노레포)로 구성하기

혹시라도 어떻게 구성했는지 궁금한 분들은 지난번 글을 보셔도 좋을 것 같다!

 

크게는 작업공간을 나누기와 라이브러리(lib) 구성하기로 나누어지는 것 같다.

작업 공간을 나누고 lib를 구성 한다고 해도 추후에 설정 해야 할 것이 훨씬 많겠지...

그것들은 추후에 적용해나가면서 블로그에도 글을 남겨둘 예정이다.

 

본론으로 돌아가서 다시 공식 문서를 들여다 본다.

NestJS 공식문서 CLI- libraries

CLI탭에 있는 libraries

 

이전에 작업했던 작업공간의 분리(apps-app)의 탭인 Workspaces가 보이고,

그 바로 아래 Libraries가 지금 하는 작업의 목표다.

 

탭을 누르고 들어가 보면 lib을 왜 구성해야 하는지에 대한 설명과 구성 방법에 대해 설명이 되어있다.

도서관 이라는 아주 어색한 번역체를 지나고나면 구조 사용 의미를 알 수 있다.

 

제대로 이해한 것인지는 잘 모르겠지만 열심히 읽어본 결과

단독으로는 실행되지 않지만 기능적으로는 유의미한 어떠한 공통적인 기능을 가지는 모듈을 따로 만들어 놓으면 추후에 해당 모듈을 필요로 하는 곳에서 쉽게 가져다 사용 할 수 있지 않겠냐! 라는 의미인 것 같다. 예를들어 프로젝트마다 사용을 하는 기능이라던가 DB의 기본설정 같은 것들, 항상 쓰이는 스키마, 엔티티 등등을 미리 구성을 해놓고 패키징 기능을 이용하여 필요한 곳에서 가져다가 사용하라는 얘기인 것 같다.

 

아주 효율적인 방법이라고 생각한다. 어차피 매번 똑같이 사용을 하는 기능이라면 구축해놓고 돌려가며 쓰는게 좋은 방법이라고 생각한다.

 

조금 더 읽어 내려가보면 lib 생성방법을 알려준다.

$ nest g library my-library

생성 명령어를 쳤더니 나오는 문구

일단 뭐라도 생성을 해봐야겠다 싶어서 일단 문구를 작성해봤는데 접두어 설정을 어떻게 하겠냐는 문구가 나온다.

default로 하는게 후에 편할지는 모르겠으나 

소심하게..

소심하게 앞에 common을 붙여봤다. 혹시라도 별칭에 문제가 생겼을 때 내가 작성한게 더 알아보기 쉬워서 에러잡는데 좋을 것 같다는 이상한 생각으로 썼다.

 

생성 완료

접두어만 잘 붙이면 거의 바로 생성이 된다.

 

녹색으로 된 부분이 새로 생성된 lib이다. 나중에 공통적으로 사용되지 않거나 특수한 경우의 library가 생길지 안생길지는 알 수 없지만 일단 공통이라고 이름을 짓긴했다.

 

이제 남은건 app과 lib을 기능적으로 채워나가는 일만 남았다.

반응형