Frontend

    NestJS의 기본 모듈 구조

    NestJS의 기본 모듈 구조

    기본 모듈 구조기본적으로 모듈은 @Module() 데코레이터를 사용하여 정의되며, 아래와 같은 속성을 가진다. imports: 다른 모듈을 가져와 현재 모듈에서 사용한다.controllers: HTTP 요청을 처리하는 컨트롤러를 등록한다.providers: 서비스나 리포지토리 등의 종속성을 주입하는 제공자들을 정의한다. 즉 앱의 다른 부분에서 쉽게 사용할 수 있도록 한다.exports: 모듈 외부에서 사용될 수 있도록 제공자들을 내보낸다. import { Module } from '@nestjs/common';import { UsersController } from './users.controller';import { UsersService } from './users.service';@Module({ ..

    GraphQL 스키마에서 enum 타입을 정의할 때 사용, registerEnumType

    GraphQL 스키마에서 enum 타입을 정의할 때 사용, registerEnumType

    import { registerEnumType } from '@nestjs/graphql';enum UserRole { ADMIN = 'ADMIN', USER = 'USER', GUEST = 'GUEST',}registerEnumType(UserRole, { name: 'UserRole', // GraphQL 스키마에서의 이름 description: 'User roles in the system', // 선택적 설명}); registerEnumType은 GraphQL 스키마에서 enum 타입을 정의할 때 사용된다.이를 통해 GraphQL API에서 사용할 수 있는 열거형 타입을 등록하고 설명을 추가할 수 있다.이 예제에서 UserRole은 ADMIN, USER, GUEST 값을 가지는 열거형(e..

    GraphQL 스키마를 정의할 때 매우 유용한 도구 MapperType

    GraphQL 스키마를 정의할 때 매우 유용한 도구 MapperType

    @nestjs/graphqlNestJS의 GraphQL 모듈에서 제공하는 패키지이다.GraphQL 스키마를 작성하고 관리하는 데 유용한 여러 유틸리티를 제공한다.  MapperTypeMapperType이라는 용어는 NestJS 또는 일반적인 GraphQL 패키지에서 널리 사용되는 표준 용어는 아니다.일반적으로 '매퍼(mapper)'는 하나의 데이터 형식을 다른 형식으로 변환하는 기능을 의미이다.특히 GraphQL이나 TypeScript에서 데이터 타입을 변환하거나 특정 필드만 선택할 때 사용하는 유틸리티 타입들을 가리킬 수 있다.  1. PartialTypeimport { PartialType } from '@nestjs/graphql';import { CreateUserInput } from './cr..

    Resolver 테스트 사용법 예제

    Resolver 테스트 사용법 예제

    공통 코드 빼기  bestTest const baseTest = () => request(app.getHttpServer()).post(GRAPHQL_ENDPOINT);기본적으로 모든 test의 기본이 되는 것들을 반환한다.  publicTest const publicTest = (query: string) => baseTest().send({ query });publicTest는 query string을 받아서 bestTest의 모든것에 send query를 추가한다.  privateTest const privateTest = (query: string) => baseTest().set("X-JWT", jwtToken).send({ query });privateTest는 bestTest의 모..