On this page
6. Codedang Architecture + GraphQL
지금까지 NestJS로 API를 만들고 PostgreSQL과 Prisma를 연결해보았습니다. 이번 주에는 코드당 Backend의 Client와 Admin을 살펴보고, Admin API에서 사용하는 GraphQL을 공부합니다.
공부할 내용 📚
1. 코드당 Backend의 Client와 Admin
코드당 Backend 를 둘러보며 Client와 Admin이 각각 어떤 사용자를 대상으로 하고, 어떤 기능을 담당하는지 살펴보세요.
2. GraphQL
REST API와 GraphQL의 차이를 알아보고, GraphQL의 Query와 Mutation이 각각 어떤 작업에 사용되는지 살펴봅니다. 이어서 Schema, Type, Resolver의 역할을 공부하세요.
- GraphQL 소개: GraphQL이 무엇인지, 클라이언트가 필요한 필드를 선택해 요청하는 방식을 살펴보세요.
- 쿼리 & 뮤테이션: Query와 Mutation의 형태를 확인해보세요.
- 스키마 & 타입: Schema에서 API의 타입과 필드를 어떻게 정의하는지 살펴보세요.
NestJS에서는 TypeScript 클래스와 데코레이터를 이용해 GraphQL Schema를 생성하는 Code First 방식을 사용할 수 있습니다. Code First와 Schema First의 차이를 살펴본 뒤, @ObjectType(), @InputType(), @Field()와 Resolver가 각각 어떤 역할을 하는지 알아보세요.
- Code First vs Schema First: 두 방식의 개념을 설명하는 앞부분만 가볍게 읽어보세요. 코드당에서는 Code First 방식을 사용합니다.
- NestJS GraphQL Quick start: Overview와 Code first 부분을 중심으로 설정 방법을 살펴보세요.
- NestJS GraphQL Resolvers:
@ObjectType(),@Field(),@Query()와 Resolver의 관계를 살펴보세요. - NestJS GraphQL Mutations:
@Mutation()과@InputType()을 사용해 데이터를 변경하는 방법을 살펴보세요.
코드당 개발환경 확인 🛠️
코드당 개발환경 설정 가이드 와 멘토가 보내주는 링크를 참고하여 저장소를 clone하고 Dev Container를 열어보세요. Docker와 VS Code의 Dev Containers 확장이 필요합니다.