크래프톤 정글 나만무 들어가기 전 백엔드를 위해 기록 시작
내 주력은 스프링이지만 어쩌겠는가 사람이 하고싶은것만 하며 살수는 없지
장인은 도구를 탓하지 않는다고 하였다
공부하면서 중요한거, 기억할만거 써야겠다
먼저 환경은 wsl2에서.. 왜냐면 배포는 어차피 리눅스에 할거니까 같은 환경이 나을것 같다
프레임워크는 제트브레인의 WebStorm, 언어는 당연히 타입스크립트
main.ts
import {NestFactory} from "@nestjs/core";
import {AppModule} from "./app,module";
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
이놈의 async await 오랜만이다. 니놈들 때문에 골이 아팠는데 또 만나는구나
nestJS는 이 파일부터 시작하고, bootstrap 함수부터 시작한다. 같은 폴더 내의 app.module 파일을 찾아서 실행하고, 트래픽을 3000번 포트로 받는다.
app.module.ts
import {Module} from "@nestjs/common";
import {AppController} from "./app.controller";
@Module({
controllers: [AppController],
})
export class AppModule {
}
이 클래스의 데코레이터에 컨트롤러에 AppController가 있다. 이 클래스가 동작할 때 controllers에 있는 컨트롤러를 찾아 동작시켜준다.
app.controller.ts
import {Controller, Get} from "@nestjs/common";
@Controller()
export class AppController {
@Get("/")
getRootRoute(){
return "hi there";
}
}
3000번 포트로 들어오는 트래픽 중 아무 경로도 입력하지 않은 Get 요청은 이 컨트롤러의 getRootRoute 함수에 의해 라우팅된다.
사실 데코레이션이 스프링의 어노테이션과 비슷해서 알던 맛인것 같기도 하고
webstrom 내 문제
분명히 제어 역전으로 클래스 내에 잘 주입해줬는데, IDE에서 자동완성이 되지 않는다
알고보니 내가 wsl2 내에서 node 버전을 올리고, 프로젝트 설정에서 기존에 설치된 레거시 노드를 노드 인터프리터로 사용 중이었다.

이렇게 되어있던 설정을

이렇게 바꿔주자
'NestJS' 카테고리의 다른 글
| 반환 정보 편집하기 (1) | 2025.06.15 |
|---|---|
| 입력 정보 검증하기 (0) | 2025.06.15 |
| TypeORM 간단 사용법 (0) | 2025.06.15 |
| 제어 역전 / 의존성 주입 (0) | 2025.06.14 |
| 컨트롤러 라우팅 / 요청 인자 받기 (0) | 2025.06.14 |