🪩/기타

[NestJS] 컨트롤러, 핸들러, 서비스

S0 2024. 3. 14. 01:05

 

 

컨트롤러란?

들어오는 요청 처리, 클라이언트에 응답 반환

@Controller 데코레이터로 클래스를 정의

인자는 컨트롤러에 의해서 처리되는 경로로 받음 (ex: @Controller('/board')

 

 

핸들러란?

@Get, @Post, @Delete 등 데코레이터로 장식된, 컨트롤러 내의 단순한 메서드

 

 

서비스란?

컨트롤러에서 데이터 유효성 검사를 하거나, DB에 아이템을 생성하는 등의 작업 처리

데이터베이스 관련 로직: DB에서 데이터 가져오기, 게시판 생성 시 DB 안에 생성한 게시판 정보 넣어주기 등

@Injectable 데코레이터로 감싸지고, 서비스 인스턴스는 모듈 전체에서 자유롭게 사용이 가능

서비스를 컨트롤러에서 사용하려면

constructor (private boardsService: BoardsService) {...}

이렇게 생성자로 선언

여기서 왼쪽 boardsService는 프로퍼티, 오른쪽 BoardsService는 타입을 뜻함

(개인적으로 이 부분은 이름이 같다보니 헷갈려서 따로 정리해둔다)