inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

13-01 Single Image Upload

grpahql-upload이슈

해결된 질문

499

이주환

작성한 질문수 2

1

 안녕하세요 원두멘토님!
13챕터에서 graphql-upload 버전이슈로 버전을 낮춰 대응하셔 작동이 되게 알려주셨습니다.

확인을 해보니 apollo server에서 원래 패키지에 포함시켰던 디펜젼시를 csrf문제로 포함시키지 않고 분리를 해서 버전관리가 되지 않아서 생긴 문제인것 같았습니다.

제가 궁금한 점은 graphql-upload로 클라이언트에게 업로드 기능을 제공해주는 것이 아닌 다른 방법으로 grpahql에서 upload기능을 제공해 줄수있는지 궁금합니다.

보안상 좋지 않고 버전관리가 되지 않는 패키지는 사용하는것이 나중을 생각했을때 더 개발난이도가 올라갈 것 같다 생각이 들었습니다.

제가 생각한 방법은 multer를 사용하는 건데 그렇게 하려면 restapi로 제공을 해줘야 하는데 grpahql 과 restapi를 같이 사용해서 api를 제공해줘야하는데 이 또한 가능하거나 추천하시는지 궁금합니다.

 

javascript node.js express docker tdd rest-api nestjs

답변 2

1

이주환

저도 너무너무 반갑습니다!!! 답변감사합니다 ㅎㅎㅎ

1

노원두

안녕하세요! 주환님!
이렇게 다시 뵙게되었네요! 방가워요!^^

많은 부분 이미 알고 계시겠지만,
이미지 업로드에 관한 전반적인 내용과 더 나은 해결책 등을 한 번 더 말씀드려볼게요!

일반적으로 rest-api를 통해 이미지를 업로드하고자 한다면, multer를 사용하게 됩니다.
graphql-api를 통해 이미지를 업로드하고자 한다면, graphql-upload를 사용하구요!

따라서, rest-api와 graphql-upload, 반대로 graphql-api와 multer는 잘 맞지 않을 수 있습니다.
하지만, file처리 부분만 따로 떼어내어 rest-api와 multer를 사용하시는 것은 가능해요!

관련한 해결방안으로는

1) 하나의 서버 내에서 graphql, rest-api를 모두 사용하시되, rest-api는 file처리에만 사용하고, graphql은 데이터 처리에만 사용하시는 방법이 있습니다.

2) file 서버를 기존 backend 서버와 분리하시어 file 서버는 rest-api로 사용하는 방법이 있습니다.(file 전송 부하만 분산시키기에도 도움이 되구요!)

3) 또 다른 요즘 트렌드로는, 브라우저에서 다이렉트로 AWS-S3에 저장하는 방법입니다. 이를 통해 자체 백엔드로의 file 전송 부하를 제거할 수 있으며, file 패키지 관련한 걱정도 덜 수 있을 것 같네요!^^ 보안 문제도 백엔드에서 키를 발급받아 처리하실 수 있구요!
(해당 방법으로는 presignedurl 키워드로 검색해 보시면 좋을 것 같아요!)

추천 순서로는 3 > 2 > 1 순으로 추천드립니다!^^

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

84

2

강의 전체 소스 코드를 받고싶습니다.

0

76

2

fontawesome 사용 문의

0

79

2

소스 코드 부탁드립니다~

0

85

2

깃 레포지터리 소스

0

87

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

74

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

89

3

강의 버전관련 문의입니다

0

103

2

Ubuntu 설치 관련

0

61

1

schema.gql 질문 드립니다.

0

51

1

서버 재실행시 Many to Many

0

102

3

input 관련 문의

0

90

2

Rest API 보다는 graphql이 주된 내용인데

0

131

2

강의 전체 소스코드 받을수있을까요?

0

156

1

도커볼륨 마운트 관련

0

127

2

findOne 타입스크립트오류

0

109

1

http => htrtps 호출 인증서 신뢰 오류

0

354

1

self-signed certificate in certificate chain 에러 발생

0

417

1

mongoose 설치 오류

0

142

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

283

2

08-06

0

180

3

구조랑 패턴 관련해서 질문

0

125

2

mydocker

0

128

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1