일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- nestjs
- react프로젝트생성
- 리액트프로젝트생성
- Can't resolve '@/styles/globals.css'
- Connection not yet open
- 갤럭시북3울트라
- monorepolib
- NestJSSwagger
- Entity
- 네트스제이에스
- 소문자를대문자로
- 자바스크립트대소문자
- 모노레포
- error: an invalid controller has been detected.
- 4070
- 네스트js
- RTX4070
- nestjs에러
- Delete `␍`eslintprettier/prettier
- next.js에러
- 쿼리튜닝기법
- Entity작성
- next에러
- API정의서
- connectionerror
- 갤럭시북3
- DTO
- 대문자를소문자로
- monorepo
- typeorm
- Today
- Total
코드 낭만 제작소
[NestJS] 프로젝트 구조를 MonoRepo(모노레포)로 구성하기 본문
프로젝트를 진행하면서 이곳저곳 기웃기웃하다보니 프로젝트의 구조를 다르게 가져가는 경우도 있다는걸 발견했다!
'모노레포'라는 것인데 공식문서에 쓰여있는 내용을 빌리자면 이렇다.
- 모노레포 모드 : 이 모드는 코드 아티팩트를 가벼운 모노레포 의 일부로 취급하며 , 개발자 팀 및/또는 다중 프로젝트 환경에 더 적합할 수 있습니다. 빌드 프로세스의 일부를 자동화하여 모듈형 구성 요소를 쉽게 만들고 구성할 수 있게 하고, 코드 재사용을 촉진하고, 통합 테스트를 더 쉽게 만들고, 규칙 및 기타 구성 정책과 같은 프로젝트 전체 아티팩트를 쉽게 공유할 수 있게 하며 , github 하위 모듈과 같은 대안보다 사용하기 쉽습니다. 모노레포 모드는 파일 에 표현된 작업 공간의 개념을 사용하여 모노레포의 구성 요소 간의 관계를 조정합니다.
공식문서의 내용은 번역본인데다 읽어봐도 확 와닿는 부분이 잘 없긴하지만
1. 개발자 팀이나 다중프로젝트 환경에서 적합
2. 코드 재사용 촉진
3. 규칙 및 구성 정책과 같은 프로젝트 아티팩트를 쉽게 공유
이 세개가 골자가 아닐까 싶다.
크게 보았을 때 apps안에 여러가지 app들을 구현하며
lib 또는 library 폴더를 만들고 그 안에 app들이 공유 할 수 있는 자원을 구현해놓는거라고 보면 될 것 같다.
눈동냥으로 얻은 프로젝트 구조기도 하고 공부중이라 이정도 내용밖에는 모르겠다.
구성방법은 공식문서에도 잘 나와있는데 한번 따라해봤다.
- 우선 표준모드의 프로젝트를 생성한다.
$ nest new my-project
프로젝트를 만들고나면 위와같은 폴더 구조가 생성될 것이다.
실제로 폴더가 생성되었고 TypeScript나 프리티어, lint같은 기타 여러가지의 추가적인 파일들도 함께 생성되었다.(공식문서의 내용보다 좀 더 많이 설치된다!)
그리고 다음 단계를 보면
$ cd my-project
$ nest generate app my-app
이렇게 입력하라고 나온다. 여기서 my-project는 위의 프로젝트명과 같은거다- 짓고싶은 이름으로 지으면 된다.
내가 만든 프로젝트의 경우 my-project는 servers이다
명령줄을 실행 시켰더니
내가 생성한 프로젝트가만들어졌다 mooovie 그리고 그 아래에보면 servers가 한개 더 생기고 그 안으로 기존의 모듈파일같은 것들이 들어갔다.
예상으로는 servers 안에 생성하려고한 mooovie만 생길줄 알았는데 그게 아니었다....
공식문서의 구조도에서도 미리 이야기를 안 내용이지만 왜 이렇게 따로 생기는지는 아직 공부가 부족해서 알 수가 없다.
진입점을 구분해서 남겨두려나 싶기도하고....
일단 서버가 구동이 될까? 싶어서 진입점에 콘솔로그 하나 대충 넣어두고 서버를 실행시켜보았다.
아직 만든 기능은 한개도 없지만 일단 서버가 켜지긴 한다.
오늘은 app생성을 이용해서 작업공간을 각각 분리하는 것 까지만 진행해야겠다.
다음번에는 라이브러리 폴더를 만드는 cli에 대해서도 진행해봐야겠다.
그 안에는 servers와 mooovie가 공통적으로 사용 할 수 있는 내용들을 넣는것으로 알고있다.
갈길이 머니 열심히 개발하고 공부 해야겠다!
'Dev-Code(Back-End) > NestJS' 카테고리의 다른 글
[NestJS] Monorepo구조에서 lib구성하기 (0) | 2025.02.21 |
---|---|
[VSCode] Delete `␍`eslintprettier/prettier 오류 (해결) (0) | 2024.02.06 |
[NestJS] Entity 작성하기 (feat.TypeORM) (0) | 2023.03.15 |
[NestJS] 서버 구동 시키기 (0) | 2023.02.06 |
[NestJS] NestJS환경 설정 및 프로젝트 생성하기 (0) | 2023.02.03 |