• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

방향 좀 잡아주세요.

24.05.10 05:48 작성 24.05.10 05:51 수정 조회수 90

0

강좌 잘 듣고 있습니다.

프로젝트를 진행하면서 듣고 있는거라서 부분적으로 보고 있는데.. 궁금한게 있어서 적어봅니다.

 

nest.sj + graphQL + prisma로 현재 구축을 하고 있는데.. 이 경우 controller보다 resolver를 사용하면 된다고 해서, controller없이 작업중입니다.

이게 맞는지 궁금합니다. 문서랑 강의를 보고 이해를 하고 작업중이기는 한데, 확신이 없어서요.. ^^;

 

프론트엔드와는 graphql로 정보를 주고 받으려고 했는데.. 외부 업체와의 연동 때문에 REST API도 필요하게 되었습니다. 그래서 graphql을 rest api로 노출하기 위해서 swagger를 사용하고 있는데..

여기 접근시 인증이나 이런게 필요 할까요?? 인증을 jwt로 해서 인증후 api에 접근하게만 해 주면 되는지 아니면 다른 방식으로 인증을 하는게 나은지.. 어떤 방법으로 구축을 해야 할지 확신이 없어서요..

 

아.. 그리고 GraphQLSchemaHost를 사용하면 graphQL이 rest api로 제대로 출력이 되는지도 궁금합니다.

잘 된다.. 아니면 좀 이상하게 출력되는 경우가 많다.. 정도의 답변만으로도 감사하겠습니다.. ㅡ.ㅜ;

 

아직 초반이기는 한데, 방향 좀 짚어주시면 감사하겠습니다..

그럼 디테일한 삽질은 강의 참조해서 제가 하겠습니다.. ㅎㅎ

답변 1

답변을 작성해보세요.

0

안녕하세요!

질문 내용을 봤을때 이미 꽤나 작업이 진행된 프로젝트로 생각이 됩니다.

지식에대한 질문이라면 제가 "이게 이렇기때문에 이렇게 해야한다"라고 말씀을 드릴수가 있지만 질문주신 부분들은 절대적으로 프로젝트 운영하는 사람과 프로젝트에 참여하는 인원들이 자유롭게 결정해야하는 부분들이라 말씀드리기 어렵습니다.

그리고 그렇기 때문에 제 생각엔 이미 내부적으로 결정난 부분들일거라고 생각됩니다. 저한테 물어보시는것보다 시니어한테 물어보시는게 좋은 답변을 얻으실걸로 보입니다.

일단 Yes or No 또는 명확히 답변드릴 수 있는 부분만 답변드리면

1) REST API의 Controller 개념은 GraphQL의 Resolver에 해당됩니다. (해당된다고 말하면 좀 웃기긴 합니다. 어차피 Controller라는게 REST API에서만 사용하는게 아니라 흔히 사용하는 패턴의 가장 앞단을 보통 controller라고 부릅니다)

2) "접근시 인증이 필요할까요?" -> private한 리소스를 접근한다면 당연히 필요하지 않을까 생각됩니다. 다만 private 리소스가 맞냐 아니냐는 제가 정해드릴만한 부분은 아닙니다.

3) 인증방식은 자유롭게 정하면 됩니다. 법으로 정해져있는게 아니고 장단점이 있습니다. "JWT로 해도되냐?"라고 질문을 하신다면 지금 제가 갖고 있는 정보론 "JWT로 해서 안될 이유는 없어보인다"라고 밖에 말씀 못드립니다.

4) GraphQLSchema는 말 그대로 GraphQL 스키마입니다. REST API랑 관련 없습니다.

일단 일반적으로 REST API를 GraphQL 앞에 두는 아키텍처는 잘 안가져갑니다. 보통 오히려 반대죠. 또는 GraphQL, REST API 따로가져가도 상관 없습니다. 이렇게되면 오히려 REST API 앞에 GraphQL을 두고 REST API는 따로도 사용 할 수 있는 일반적인(?) 아키텍처를 가져갈 수 있게 되죠. 하지만 뭔가 이유가 있으리라 생각됩니다.

도움이 됐기를 바랍니다.

감사합니다!

앱프님의 프로필

앱프

질문자

2024.05.12

답변 감사합니다. 도움이 될거 같습니다.. ^^;

그럼 수고하세요.