Skip to content

Commit

Permalink
feat(be): add 8 week
Browse files Browse the repository at this point in the history
  • Loading branch information
cho-to committed Nov 19, 2023
1 parent bb8e25f commit b97447c
Showing 1 changed file with 50 additions and 1 deletion.
51 changes: 50 additions & 1 deletion content/docs/backend/8. GraphQL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)의 코드 예제를 참고해주세요!

0 comments on commit b97447c

Please sign in to comment.