Nest DI

AppModule의 등록 정보가 컨트롤러와 서비스를 연결한다

AppController가 new AppService()를 직접 만들지 않아도 되는 이유는 DI 컨테이너가 생성과 주입을 담당하기 때문이다.

01 등록AppModule

controllers에는 AppController, providers에는 AppService를 등록한다.

02 조립DI Container

@Injectable() 대상 인스턴스를 만들고 controller 생성자에 주입한다.

03 요청GET /

라우트가 controller method를 호출하고 service가 Hello World 값을 만든다.

핵심: 컨트롤러는 서비스 생성 방법을 모르고, 모듈이 어떤 객체들이 함께 쓰이는지만 선언한다.