ehdgusdl9177.log
로그인
ehdgusdl9177.log
로그인
NestJS Providers, Service
김동현
·
2021년 11월 26일
팔로우
0
NestJS
목록 보기
7/11
Providers 란?
프로바이더는 Nest의 기본 개념이다.
대부분의 기본 Nest 클래스는 서비스, 리파지토리, 팩토리, 헬퍼 등 프로바이더로 취급될 수 있다.
프로바이더의 주요 아이디어는 종속성으로 주입할 수 있다는 것이다.
즉, 객체는 서로 다양한 관계를 만들 수 있으며 객체의 인스턴스를 "연결"하는 기능은 대부분 Nest 런타임 시스템에 위임될 수 있다.
Service 란?
서비스는 소프트웨어 개발내의 공통 개념이며, NestJS, Javascript에서만 쓰이는 개념이 아니다.
@Injectable 데코레이터로 감싸져서 모듈에 제공되며, 이 서비스 인스턴스는 애플리케이션 전체에서 사용될 수 있다.
서비스는 컨트롤러에서 데이터의 유효성 체크를 하거나 데이터베이스에 아이템을 생성하는 등의 작업을 하는 부분을 처리한다.
Service를 Controller에서 이용할 수 있는 방법(Dependency Injection)
위에 보면 Controller에서 this.appService.getHello(); 이런식으로 Service에 정의해놓은 메소드를 Controller에서 가져와 쓰는 걸 볼 수 있다.
위에 보면 BoardsService를 Constructor 클래스에서 가져오고(Injected)있다.
그런 후에 Private 문법을 사용하고 있다.
이렇게 해서 boardsService를 정의해서 Controller안에서 사용할 수 있게 만들었는데 이렇게 할 수 있는 이유는 타입스크립트의 기능을 이용해서 종속성을 타입으로 해결할 수 있기 때문이다.
Provider 등록하기
Provider를 사용하기 위해서는 이것을 Nest에 등록해줘야지 사용할 수가 있다.
등록하기 위해서는 module 파일에서 할 수 있다.
module 파일에 providers 항목안에 해당 모듈에서 사용하고자 하는 Provider를 넣어주면 된다.
김동현
개발자로서의 첫걸음
팔로우
이전 포스트
NestJS 서비스
다음 포스트
NestJS DTO
0개의 댓글
댓글 작성