DI wiring

Hello World 주입 흐름

AppModule의 등록 정보가 DI 컨테이너로 들어가고, Nest는 AppController 생성자에 AppService 인스턴스를 연결합니다.

AppModule에서 응답까지 이어지는 의존성 연결

1

루트 모듈 읽기

AppModule의 controllers와 providers 배열을 확인합니다.

2

Provider 준비

AppService를 주입 가능한 객체로 관리합니다.

3

Controller 생성

생성자 파라미터 타입을 보고 필요한 서비스를 연결합니다.

4

GET 요청 매칭

@Get() 메서드가 루트 경로 요청을 받습니다.

5

Service 호출

컨트롤러는 주입받은 서비스의 getHello를 호출해 값을 가져옵니다.

6

HTTP 응답

반환 문자열이 컨트롤러를 지나 브라우저 응답으로 전달됩니다.

직접 생성하지 않는 구조가 만드는 차이

생성 책임 컨트롤러가 new AppService를 호출하지 않습니다. Nest 컨테이너가 인스턴스 수명 주기와 연결을 관리합니다.
로직 위치 컨트롤러는 요청과 응답 흐름을 얇게 유지합니다. 문자열 생성 같은 업무 규칙은 서비스에 모입니다.
테스트 감각 컨트롤러 테스트에서는 서비스 응답을 대체할 수 있습니다. 서비스 테스트에서는 HTTP 계층 없이 getHello만 검증합니다.
학습 해석

Hello World 예제는 작지만, 컨트롤러가 서비스를 직접 만들지 않는다는 감각이 이후 모듈 확장, 테스트, 외부 의존성 교체의 출발점입니다.