Frontend/Nest.js

    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..

    유저 프로필 수정 시 Mapped types 주의할 점

    유저 프로필 수정 시 Mapped types 주의할 점

    // 잘못된 예export class EditProfileInput extends PickType(User, ["email", "password"]) {}// 올바른 예export class EditProfileInput extends PartialType( PickType(User, ["email", "password"]),) {}유저의 이메일과 패스워드를 사용할 것이기 때문에 PickType을 사용할 수 있지만프로필 수정하는 것이기 때문에 이메일과 패스워드는 수정될 수 있다!즉 이메일만 수정, 또는 패스워드만 수정하는 경우가 있다.PickType이 아닌 PartialType에서 PickType을 사용하자user에서 email, password를 가지고 class를 만들고PartialType을 사용해..

    GraphQL 스키마를 정의할 때 사용되는 데코레이터

    GraphQL 스키마를 정의할 때 사용되는 데코레이터

    @InputType()GraphQL에서 입력 객체를 정의할 때 사용주로 mutation에서 사용되는 인자로, 여러 필드를 하나의 입력 객체로 그룹화하여 사용할 수 있다.예를 들어, 사용자를 생성하는 mutation에서 여러 필드를 하나의 입력 타입으로 묶어 처리할 수 있다.import { InputType, Field } from '@nestjs/graphql';@InputType()class CreateUserInput { @Field() username: string; @Field() password: string; @Field() email: string;}import { Resolver, Mutation, Args } from '@nestjs/graphql';@Resolver()clas..