diff --git a/content/docs/backend/8. GraphQL.md b/content/docs/backend/8. GraphQL.md index 4821bb6..35bab18 100644 --- a/content/docs/backend/8. GraphQL.md +++ b/content/docs/backend/8. GraphQL.md @@ -7,4 +7,53 @@ lastmod = "2023-09-08" weight = 180 +++ -{{< alert context="info" text="작성 준비 중입니다! 조금만 기다려주세요. 🥹" />}} +마지막 시간에는 API를 위한 새로운 쿼리 언어인 **GraphQL**에 대해 알아봅시다! +> 양이 조금 많을수도 있어요 😂 + +## 공부할 내용 📚 + +### 1. GraphQL이 무엇일까요? + +GraphQL은 **'API를 위한 쿼리 언어'**라는 이름과 같이, 기존의 REST API를 대체할 수 있는 새로운 쿼리 언어입니다. + +지금까지 REST API에 적응하고 있었는데.. GraphQL이라는 새로운 언어를 도대체 왜 배워야할까요? + +GraphQL이 무엇인지, 그리고 그 장단점에 대해서 알아봅시다. + +- **GraphQL 개념** + - [GraphQL 개념잡기](https://tech.kakao.com/2019/08/01/graphql-basic/): GraphQL의 개념에 대해서 잘 설명한 블로그입니다. + - [GrpahQL 소개](https://graphql-kr.github.io/learn/): 공식 홈페이지의 '소개' 부분입니다. 짧으니 주의하기! +- **GraphQL 장단점** + - [GraphQL vs REST](https://www.prisma.io/docs/concepts/overview/prisma-in-your-stack/is-prisma-an-orm): GraphQL과 REST API가 어떻게 다른지 설명합니다.(영어 주의) + - [GraphQL 도입시 주의할 점](https://yozm.wishket.com/magazine/detail/2113/): 장단점에 어떨때 도입하면 좋을지 설명합니다. + - [GraphQL 단점과 대안](https://www.bangseongbeom.com/graphql-downsides-alternatives.html) +- **GraphQL 실사용 예제** + - [Naver Deview 2023 'GraphQL 잘 쓰고 계신가요?'](https://www.youtube.com/watch?v=9G2vT4C4sAY): 네이버 MY플레이스에서 어떻게 GraphQL을 사용하고 있는지, 왜 선택했는지에 대해서 설명한 Deview 영상입니다. + - [Naver Deview 2020 'GraphQL API 까짓것 운영해보지 뭐'](https://deview.kr/2020/sessions/347): 이번에는 GraphQL의 기본 개념, 그리고 어떻게 운영하는지에 초점을 맞춰 소개합니다. + - [Naver Deview 2021 'Domain Graph Service를 활용한 광고 서비스의 GraphQL API 구현 사례'](https://tv.naver.com/v/23652389): 여기에서는 Spring Boot를 사용하는 백엔드 개발자의 관점에서 GpraphQL를 도입한 사례를 소개합니다. 프레임워크는 다르지만, 느낌 점 위주로 보시면 얻어가는 점이 있을거에요. + - 참고로, GraphQL Conf도 매년 열린답니당! ++ [얄팍한 GraphQL과 Apollo(인프런)](https://www.inflearn.com/course/얄팍한-graphql-apollo#curriculum): GraphQL에 대해서 소개하는 무료 인프런강의입니다. 잘 이해가 되지 않으신다면 보시는 걸 추천해요! + +### 2. Nestjs & GraphQL + +이제 GraphQL의 개념에 대해서는 이해가 조금 되시나요? + +그런데... Nestjs에서는 어떻게 이러한 GraphQL을 구현할까요...? 더 자세히 알아봅시다! + +- 어떻게 구현하는지 살펴보기 이전에, GraphQL 사용법에 대해서 더 자세히 알아봐요! + - [쿼리 & 뮤테이션](https://graphql-kr.github.io/learn/queries/): 여기에서는 GraphQL 서버에 쿼리하는 방법에 대해 살펴봐요. + - [스키마 & 타입](https://graphql-kr.github.io/learn/schema/): 여기에서는 GraphQL 타입 시스템과 데이터를 표현하는 방법에 대해 살펴봐요. 이때, 여기에서는 세부적인 구현이 아니라 개념에 대해서만 얘기하는 점, 참고하세요! +- Nestjs에서 어떻게 GpraphQL을 사용해 디자인할 수 있는지 살펴봐요. + - [Code first vs Schema first](https://velog.io/@zoeyul/Graphql-code-first-vs-schema-first): GraphQL을 사용하는 방법은 크게 두 가지가 있습니다. 두 방식의 개념 및 차이점에 대해 알아봅시다. + - 코드당 프로젝트에서는 현재 Code first의 방식을 사용하고 있습니다. 😆 + - [공식 Nestjs & GraphQL](https://docs.nestjs.com/graphql/quick-start): Nestjs에서 어떻게 GraphQL을 사용하는지 소개합니다. + - Nestjs docs에 GraphQL 챕터가 많은데요, **Quick Start** 부분만 확인해주세요! + +## 프로젝트 실습 🎈 + +이번 주차는 저번 주차에서 만들었던 REST API 기반의 Nest.js 웹서버를 GraphQL 기반 웹서버로 옮기는 것입니다. 😇 + +이때, **Code First** approach를 사용해서 진행해주세요! 😍 + +- Nestjs **Quick Start** 부분을 참고해서 진행하시면 쉬울거에요! +- 만약 어떻게 하실지 막막하시다면 [Nestjs Graphql Code first example](https://github.com/nestjs/nest/tree/master/sample/23-graphql-code-first)의 코드 예제를 참고해주세요! \ No newline at end of file