데브허브 | DEVHUB | Nest.js - 9강: Controller–Service 구조와 의존성 주입(DI) 흐름 쉽게 이해하기Nest.js - 9강: Controller–Service 구조와 의존성 주입(DI) 흐름 쉽게 이해하기
- Nest.js CLI를 사용하여 모듈, 컨트롤러, 서비스를 쉽게 생성하고, 생성 시 모듈에 자동으로 주입되는 과정을 설명합니다. 🛠️
- 컨트롤러는
@Controller 데코레이터로 특정 경로(예: /board)의 API 요청을 처리하며, @Get, @Param 데코레이터를 활용하여 라우팅 및 URL 파라미터를 관리합니다. 🚦
- 서비스는 비즈니스 로직을 담당하며, 컨트롤러와 분리되어 코드의 응집도와 재사용성을 높입니다. 🧠
- Nest.js의 핵심 개념인 의존성 주입(DI)을 통해 컨트롤러가 서비스의 인스턴스를
constructor를 통해 주입받아 활용하는 방법을 시연합니다. 💉
private 키워드는 주입된 필드를 클래스 내부에서만 접근 가능하게 하고, readonly는 초기화 후 수정할 수 없도록 설정하여 안정성을 높입니다. 🔒
- 주입받을 객체의 이름은 카멜 케이스로, 타입은 파스칼 케이스로 명시하는 일반적인 명명 규칙을 따릅니다. 🏷️
- 서비스에
@Injectable() 데코레이터를 붙여야 Nest.js가 해당 서비스를 의존성 주입 가능한 대상으로 인식하고 인스턴스를 찾아 주입할 수 있습니다. ✨
- Postman을 활용하여 생성된 API 엔드포인트(예:
GET /board, GET /board/:id)를 직접 호출하고 더미 데이터를 통해 동작을 검증하는 과정을 보여줍니다. 🧪
- 컨트롤러가 요청을 받으면 주입된 서비스의 메서드를 호출하여 비즈니스 로직을 위임하는 백엔드의 일반적인 동작 흐름을 이해할 수 있습니다. ➡️