인프런 커뮤니티 질문&답변

조익현님의 프로필 이미지

작성한 질문수

GraphQL - REST API를 대체할 기술

User 리졸버 구현 및 테스트

graphql 이미지 처리

24.09.23 18:00 작성

·

51

·

수정됨

1

안녕하세요! 강의 정말 잘 듣고 있습니다!

개인적인 플젝에서 야매?로 graphql 쓰고 있었는데 이렇게 강의를 통해 개념을 제대로 알아가는 중입니다 ㅎㅎ

강의에는 없지만 java-springboot에서 graphql을 통해서 이미지를 받을 수는 없는지 궁금합니다!

가능하시다면 관련된 라이브러리나 블로그? 알려주시면 감사하겠습니다!!

답변 2

0

Burger님의 프로필 이미지
Burger
지식공유자

2024. 09. 23. 18:26

안녕하세요 조익현님!

 

강의 들어주셔서 감사합니다.

 

말씀해주신 파일 업로드 기능은 전통적인 GraphQL을 사용하신다면 불가능하지만, GraphQL 라이브러리를 사용하고 계시다면 구현이 가능합니다.

 

apollo server 라이브러리를 사용하신다면, 아래 두 문서를 통해 어렵지 않게 도입 가능하실겁니다!

https://www.apollographql.com/docs/apollo-server/v3/data/file-uploads/
https://github.com/jaydenseric/graphql-upload

 

Spring Boot를 사용하신다면, Netflix DGS 라는 라이브러리를 찾아보시는것도 추천드립니다!

Netflix DGS는 Netflix에서 Spring Boot와 GraphQL의 통합을 효과적으로 할수 있게 만든 라이브러이입니다.

 

현재 Netflix DGS를 다루는 강의를 추가로 제작 중입니다.

GraphQL 강의가 마음에 드셨다면, 이후 강의에도 많은 관심 부탁드립니다! 😊

 

감사합니다!

조익현님의 프로필 이미지
조익현
질문자

2024. 09. 24. 14:22

답변 정말 감사합니다!!
한번 Netflix DGS 사용해보겠습니다 ㅎㅎ

Burger님의 프로필 이미지
Burger
지식공유자

2024. 09. 24. 19:50

네 응원하겠습니다!

 

아래링크는 Netflix DGS 소통 오픈채팅방입니다.

아직은 저도 계속해서 학습을 진행중이기에 모집을 하진 않았고, 이후에 어느정도 준비가 되면 해보려합니다.

Netflix DGS 에 관심이 생기시거나 관련 커뮤니티가 필요하시면 소통하기위해 참여해주셔도 좋을것 같습니다.

 

혹시 들어오시더라도 지금은 저 혼자 있으니 당황스러우실 수도 있지만 편하게 질문이나 소통 해주셔도 됩니다!

 

감사합니다!

 

Netflix DGS 한국 1호점

https://open.kakao.com/o/go6lsDDg

 

조익현님의 프로필 이미지
조익현
질문자

2024. 09. 25. 22:11

넵! 감사합니다!!
프로젝트에 적용해보고 어려운 점이나 궁금한 점 있다면 질문하겠습니다 ㅎㅎ

0

인프런 AI 인턴님의 프로필 이미지

2024. 09. 23. 18:06

안녕하세요, 인프런 AI 인턴입니다. 조익현님.

GraphQL을 통해 이미지나 파일을 처리하는 방법에 대한 질문을 주셨군요. GraphQL 자체로 이미지를 전송하거나 받는 기능은 존재하지 않지만, 일반적으로 이를 구현하기 위해 별도의 라이브러리와 기술들을 조합하여 사용합니다.

이미지 처리 관련 이해를 돕기 위해 파일 업로드를 다루는 유사한 사례를 아래 URL에서 참고할 수 있습니다:

  1. GraphQL에 파일 업로드 모듈 적용하기
    • 서버 사이드에서 파일 업로드를 어떻게 처리할 수 있는지 설명합니다.

간단한 설명을 덧붙이자면:

  1. Multipart 요청: GraphQL은 자체적으로 파일 업로드를 지원하지 않기 때문에 graphql-upload 같은 라이브러리를 사용하여 파일을 처리합니다.
  2. File Handling 라이브러리: Node.js 환경에서는 graphql-upload 라이브러리를 사용하여 파일 업로드 기능을 구현할 수 있습니다.
    
    npm install graphql-upload
    

  3. Schema 작성:
    ”`graphql
    scalar Upload

type Mutation {
uploadFile(file: Upload!): File!
}

type File {
url: String!
}

4. **Resolver 작성**:
   ```javascript
   import { GraphQLUpload } from 'graphql-upload';

   const resolvers = {
     Upload: GraphQLUpload,
     Mutation: {
       uploadFile: async (parent, { file }) => {
         const { createReadStream, filename } = await file;
         const stream = createReadStream();
         // 이미지 저장 로직 (로컬 파일 시스템 또는 S3)
         const fileUrl = await storeFile(stream, filename); // 저장된 파일 URL 반환
         return { url: fileUrl };
       },
     },
   };

이러한 방식으로 GraphQL을 통해 이미지나 파일을 처리할 수 있습니다. 더 구체적인 예제와 사용법은 위에 링크된 유사한 질문 답변을 참고하시면 많은 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.