기본 모듈 구조기본적으로 모듈은 @Module() 데코레이터를 사용하여 정의되며, 아래와 같은 속성을 가진다.
- imports: 다른 모듈을 가져와 현재 모듈에서 사용한다.
- controllers: HTTP 요청을 처리하는 컨트롤러를 등록한다.
- providers: 서비스나 리포지토리 등의 종속성을 주입하는 제공자들을 정의한다.
즉 앱의 다른 부분에서 쉽게 사용할 수 있도록 한다. - exports: 모듈 외부에서 사용될 수 있도록 제공자들을 내보낸다.
import { Module } from '@nestjs/common';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';
@Module({
imports: [],
controllers: [UsersController],
providers: [UsersService],
exports: [UsersService],
})
export class UsersModule {}
예시에서 UsersModule은 사용자 관련 기능을 담당하는 모듈이다.
UsersController는 사용자와 관련된 HTTP 요청을 처리하고,
UsersService는 사용자 관련 비즈니스 로직을 수행한다.
UsersService는 다른 모듈에서도 사용될 수 있도록 exports에 포함되었다.
NestJS의 모듈 시스템을 통해 복잡한 애플리케이션을 명확하고 유지 관리하기 쉽게 설계할 수 있다.
'Frontend > Nest.js' 카테고리의 다른 글
relationship 옵션 ( eager relationships, Lazy relations) (0) | 2024.08.24 |
---|---|
REST와 GraphQL: Controller와 Resolver의 차이점 이해하기 (0) | 2024.07.30 |
GraphQL 스키마에서 enum 타입을 정의할 때 사용, registerEnumType (0) | 2024.07.29 |
GraphQL 스키마를 정의할 때 매우 유용한 도구 MapperType (0) | 2024.07.29 |
유저 프로필 수정 시 Mapped types 주의할 점 (0) | 2024.06.21 |