부트캠프

56일차 TIL

ohs020105 2025. 1. 21. 22:17

오늘은 nest.js에 관해서 강의를 진행했다. 이번 강의는 저번 TypeScript처럼 처음 들어보는거에다가 강의 중간 중간에 실습따라하는게 많아서 시간이 좀 걸려서 아직 완강은 못 한 상태이다. 그래도 조금이나마 궁금 한 것들은 따로 메모장에다가 적어놓고 AI 한테 물어보는 식으로 했는데 아직은 완벽하게 이해를 못 한 상황이라 이것도 과제를 진행하면서 이해가 되도록 노력해 봐야 될 것 같다...

** 참고로 nest.js 는 TypeScript 에서 밖에 사용이 안된다. 이 점을 조심해야 한다. **

 


**적다가 까먹었지만 제일 우선적으로 TypeScript 를 설치 해줘야 한다. **

1. 터미널에 명령어를 입력해준다.

npm install typescript -g

 

2. 그런 다음 터미널에

tsc

를 입력해줘서

정상 설치가 된 화면

이렇게 문구가 뜨면 TypeScript가 설치가 완료가 된 것 이다.

그런다음 Nest.js를 설치 진행 해 주면 된다!


그렇다면 이제 nest.js를 어떻게 설치하고 어떻게 사용해야 될까?

우선 첫번째로 Nest.js를 설치해줘야 한다.

npm i -g @nestjs/cli

어느 경로에서나 nest커맨드를 사용할 수 있게 global 옵션으로 설치한다.

 

두번째로는 자신이 nest.js가 잘 설치 되어있는지 아님 명령어를 확인하고 싶으면 

nest

이렇게만 입력해주면 된다. 그러면 터미널에 

이렇게 자동으로 작성이 될 것 이다.

 

그럼 세번째로 넘어가서 새로운 Nest.js 프로젝트를 만드려고 하면 이 명령어를 입력하면 된다.

nest new sparta-nest

 

이 명령어를 입력하게 되면 바로 다음과 같이 물어본다.

? Which package manager would you ❤️  to use? (Use arrow keys)
❯ npm
  yarn
  pnpm

 

여기서 본인이 npm을 사용하면 npm을 yarn을 사용하면 yarn을, pnpm은 모르겠어서 pass. 

여기서 npm이 Nest.js와 가장 호환이 잘 되기 때문에 npm을 사용하는게 제일 좋다. 

설치중인 화면

설치가 완료 된다면 

설치가 완료된 화면

이렇게 터미널에 띄어지고 옆에 파일 구성을 보게 된다면 

파일들의 구성

이렇게 파일이 생겨 있는걸 확인 할 수가 있다. 


 

여기서 이제 저기까지 진행을 하게 된다면 한번 파일로 들어가보면 많은 파일이 생겨있는게 확인이 된다.

 

여기서 제일 중요한 파일이 있는데 그건 바로 

 

이 main.ts 파일이다. 이건 전에 쓰던 app.js 라고 생각하면 편하다 이걸로 통해 Nest.js에서 진입점으로 사용하겠다고 약속된 파일이다. 막 자기가 app.js 가 편해서 main.ts 파일 이름을 변경하게 되버리면 앞으로 서버는 못키는 거라 생각하면 된다.(물론 장난) 그만큼 중요한 파일이기에 왠만해서는 건들이지 않는게 좋다. 

 

여기 안에 있는 코드를 좀 살펴보자면 

const app = await NestFactory.create(AppModule);

 

이 코드는 appModul이라는 모듈을 루트 모듈로 사용하는 Nest.js 어플리케이션 인스턴스를 생성해줘! 라는 코드다.


그렇담 여기서 appModul이란 뭘까?

 

app.module.ts

 

아까 위에서 말했던 AppModule은 이 파일에 정의가 되어 있다.

Nest.js는 이러한 모듈 기반으로 구성이 되어있다.

 

그래서 모듈을 만들게 된다면 *모듈이름* 이라는 디렉토리가 src 디렉토리 밑에 새로 생기게 되면서 그 디렉토리 안에 *모율이름*.module.ts으로 파일이 생성이 된다!

 

오케이 그렇담 이 @Module({...}) 이 코드는 뭘까...?

이렇게 @ 가 붙는 키워드를 데코레이터 라고 한다.

 

데코레이터란? 

해당 클래스나 함수가 어떤 역할을 수행하는지에 대해 Nest.js에 알려주는 역할 을 말한다.


우선 내가 강의를 진행하면서 되게 유용하다고 생각이 든게 보통 express 플레임워크 같은 경우는 그냥 서버에 연결할 수 있게 해주는 로직을 간단하게 적어줄 수 있는 기능밖에 없어서 나머지 따른 CRUD 같은 기능들은 직접 만들고 했어야 했다.

 

하지만 이번 Nest.js 플레임워크는 기본적으로 탑재되어 있는 기능이 많다. 

1. 명령어 하나로 쉽고 간편하게 계층 생성

우선 이게 뭐냐고 하면 말 그대로 controller, service, repository, router 등등 우리가 직접 비지니스 로직은 적어야 하지만 그래도 뼈대는 만들어 준다...!

여기서 예를 들어서 post 계층을 만들라고 하면 명령어를 

nest g co posts

 

입력하게 된다면 바로 뼈대가 만들어 준다.

 

이거의 좋은점은 개발자가  비지니스 로직. 즉, 웹 서버의 핵심 로직 구현에만 신경쓰고 그 외에 다른 부분들은 Nest.js에 일임을 하면 되는 것이다. 

그렇다 보면 자연스럽게 코드의 퀄리티나 보안성등 많이 향상이 될 것 이다. 

그 뒤에 내용은 내일 이어서 적도록 하겠다 

오늘 하루도 고생 많았고 내일 하루도 힘내자!!

 

 

 

'부트캠프' 카테고리의 다른 글

58일차 TIL  (1) 2025.01.23
57일차 TIL  (1) 2025.01.22
55일차 TIL  (5) 2025.01.20
54일차 TIL  (2) 2025.01.17
KPT 회고록  (0) 2025.01.17