테스트-NestJS강의-5-overview-controllers
- 네스트 JS 컨트롤러는 들어오는 요청을 처리하고 응답을 반환하는 핵심 역할 수행 🔄
- 라우팅 메커니즘을 통해 특정 요청을 어떤 컨트롤러가 처리할지 결정 🚦
- 컨트롤러 데코레이터(@Controller)를 사용하여 클래스를 컨트롤러로 등록하고, URL 경로의 접두사 설정 가능 🏷️
- HTTP 메소드 데코레이터(@Get, @Post, @Delete 등)를 사용하여 특정 HTTP 메소드에 대한 핸들러 함수 지정 HttpMethod 🔗
- URL 파라미터는 콜론(:)으로 표시하며, 파람 데코레이터(@Param)를 사용하여 접근 📍
- 네스트 JS는 핸들러 메소드의 반환 값을 기반으로 HTTP 응답 자동 생성 (JSON 자동 변환) 📦
- HTTP 코드 데코레이터(@HttpCode)를 사용하여 응답 상태 코드 커스터마이징 가능 🔢
- 파람(@Param), 쿼리(@Query), 바디(@Body), 헤더(@Headers), IP(@Ip) 데코레이터를 통해 요청 객체의 정보 추출 📤
- HTTP 익셉션 클래스(BadRequestException, NotFoundException 등)를 사용하여 예외 처리 및 자동 HTTP 상태 코드 생성 ⚠️
- 헤더 데코레이터(@Header)를 사용하여 응답 헤더에 커스텀 값 추가 ⚙️
- 리다이렉트 데코레이터(@Redirect)를 사용하여 특정 URL로 리다이렉트 (상태 코드 설정 가능) ↩️
- 네스트 JS는 기본적으로 싱글톤 구조로 동작하며, 서비스, 컨트롤러 등이 앱 전체에서 공유됨 (요청마다 새로운 인스턴스 생성 가능) ♻️
- 어싱크/어웨이트, 프로미스, RXJS 옵저버블 등 다양한 비동기 처리 방식 지원 ⏱️
- RXJS 옵저버블을 반환하는 경우, 스트림 완료 시 마지막 값을 응답으로 전송 (웹소켓, 스트리밍 등에 적합) 📡
- 강의에서는 키워드와 용어를 익히고, 실제 코드 실습을 통해 개념을 연결하는 방식으로 진행될 예정 👨🏫