
새로운 폴더를 생성해서 또 같은 CRUD를 작성하고, 모듈에 추가하고 하는 등의 반복작업을 하던 중 nestjs docs에 나와있는 CLI를 활용해서 이를 간편하게 만들수 있다는 것을 발견했다. 나만 힘들게 직접 다 만들고 그랬던거야.. 아무튼 CLI란 command-line interface 의 약자로 가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 뜻한다. 따라서 이 터미널에 명령어를 입력해서 nestjs에서 제공하는 다양한 기능들을 써보았다.
폴더 구조를 작성할때 가장 기본적으로는 Module, controller(Resolver), Service를 작성하고 각각의 파일에는 기본적인 구조가 정해져있다 (모듈에 provider를 추가한다거나 resolver에서 service를 호출한다거나 하는). 따라서 이런 기본적인 보일러플레이트 구조를 만들어주고 앱모듈에 해당 모듈을 추가까지 해주는 기능이 바로 위의 명령어들이다(resolver는 co 대신 r로 적어주면 된다). 이렇게 만들다보면 자동으로 TDD파일도 함께 만들어지는데 이를 원치 않을 경우에는 --no-spec을 붙여서 작성해주면 된다. 이 외에도 다양한 다른 파일구조를 기본으로 생성해주는 CLI 명령어들이 있는데 이는 아래 Docs에서 확인가능하다.
Documentation | NestJS - A progressive Node.js framework
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac
docs.nestjs.com
내가 좀더 유용하게 사용한 기능은 한발 더 나아가 해당 폴더에 entity, dto(create, update) 심지어는 기본적인 CRUD까지 생성해주는 아래의 명령어이다. 해당 CLI는 GraphQL 과 Rest 방식도 직접 설정해서 이에 맞추어 API를 생성해주며 entity와 dto, CRUD의 생성까지는 원치 않을경우에는 두번째 질문에 N을 입력하면된다.
해당 CLI명령어를 통해 만들어진 폴더구조는 다음과 같다.
CLI 기능은 처음써보았는데 생각보다 굉장히 더 유용해서 앞으로 애용할 것 같다. 물론 만들고나서 수정해줘야하는것들도 있지만 그래도 자동화된 시스템이 있는데 굳이 안쓸이유가..?
'오늘의 공부 정리' 카테고리의 다른 글
41. ES6의 특징 (0) | 2022.08.26 |
---|---|
40. == 과 === 의 차이? (0) | 2022.08.26 |
39. gitflow, workflow (0) | 2022.08.25 |
38. Server performance Tuning (0) | 2022.08.25 |
37. CI/CD & Cloudbuild (0) | 2022.08.25 |