[typescript] 타입스크립트와 GraphQL을 함께 사용하는 파일 업로드 방법

이번에는 타입스크립트와 GraphQL을 함께 사용하여 파일을 업로드하는 방법에 대해 알아보겠습니다.

타입스크립트에서 파일 업로드 준비하기

먼저, 타입스크립트에서 파일을 업로드하기 위해서 express, apollo-server-express, graphql-upload 패키지를 설치해야 합니다. 아래는 패키지를 설치하는 명령어입니다.

npm install express apollo-server-express graphql-upload

파일 업로드를 위한 GraphQL 스키마 정의

GraphQL 스키마에서 파일 업로드를 위한 타입을 정의해야 합니다. 아래는 간단한 예시입니다.

type File {
  filename: String!
  mimetype: String!
  encoding: String!
}

Apollo Server 설정

Apollo Server를 설정하여 파일을 업로드할 수 있도록 해야 합니다. 아래는 설정하는 방법의 예시입니다.

import { ApolloServer } from 'apollo-server-express';
import { typeDefs, resolvers } from './schema';

const server = new ApolloServer({
  typeDefs,
  resolvers,
  uploads: {
    maxFileSize: 10000000, // 10 MB
    maxFiles: 5
  }
});

Resolver에서 파일 처리하기

마지막으로, GraphQL Resolver에서 파일을 처리하는 방법에 대해 알아봅니다. 아래는 간단한 예시입니다.

async uploadFile(parent, { file }): Promise<File> {
  const { createReadStream, filename, mimetype, encoding } = await file;

  // 파일 처리 로직

  return { filename, mimetype, encoding };
}

이제 타입스크립트와 GraphQL을 함께 사용하여 파일을 업로드하는 방법을 준비했습니다. 이제 실제 프로젝트에서 활용하여 파일 업로드 기능을 구현해보세요!

더 많은 정보를 얻고 싶으시다면 graphql-upload 패키지의 문서를 참고해보시기 바랍니다.

그럼 즐거운 코딩 되세요!