์๋ฒ๋ฆฌ์ค GraphQL ์ํฌ์ต์ ์ค์ ์ฌ๋ฌ๋ถ์ ํ์ํฉ๋๋ค!
์ด ์ํฌ์์ ๊ธฐ์กด์ GraphQL์ ๋ํ ๋ฐฐ๊ฒฝ์ด ์๋ ๋ถ๋ค์ ์ํด ์ค๋น๋์์ต๋๋ค. GraphQL ๋ฐฑ์๋์ ๋ํ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ํต์ฌ ๊ฐ๋ ์ ๋ด์์ผ๋ฉฐ, ์ค์ Production์์ ์ฌ์ฉ๋๋ ๋๊ตฌ๋ค์ ์๊ฐํ๋ฉฐ Production ๋ ๋ฒจ์์์ GraphQL์ด ๊ฐ์ง ํต์ฌ ๊ฐ์น๊ฐ ๋ฌด์์ธ์ง ๋ฐฐ์ฐ๊ณ , ๋ฐ๋ผํ ์ ์๋ ์๊ฐ์ ๊ฐ์ง๋๋ค.
๋ณธ ์ํฌ์ต์ AWSKRUG ์๋ฒ๋ฆฌ์ค ๋ชจ์์ด ์ฃผ์ตํฉ๋๋ค. ์ฐธ๊ฐ์ ์ฒญ
๐ Written with ๐ฅ by Tony
- TypeScript ๐
- Node.js
- Babel
- Webpack
- Dotenv
- Docker
- Prisma ๐
- AWS Fargate ๐
์ค๊ฐ์ค๊ฐ ์ค์ต์ ํ์ํ ํ์ผ๋ค์ด ์ ๋ก๋ ๋์ด์์ต๋๋ค. ์ธ์ ์์ ์ ๋ฏธ๋ฆฌ ๋ค์ด ๋ฐ์์ฃผ์ธ์.
.zip
ํ์ผ๋ก ๋ค์ด๋ก๋- ๋๋
$ git clone https://github.com/tonyfromundefined/serverless-graphql-workshop
๋ณธ ์ธ์ ์ ์ฝ๋ฉ ๊ณผ์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๋ํ CLI(Command Line Interface) ์กฐ์์ด ๊ผญ ํ์ํฉ๋๋ค. ๋ชจ๋ฐ์ผ ํ๊ฒฝ(iPhone, iPad, Android)์์๋ ์งํ์ด ๋ถ๊ฐ๋ฅํ๋ ๊ผญ PC/Mac ํ๊ฒฝ์์ ์งํํ์ธ์.
- AWS ๊ณ์ ๋ง๋ค๊ธฐ ์ด๋
๋ณธ ๊ฐ์ด๋๋ ํ๋ช ์ด ํ๋์ AWS ๊ณ์ ์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. AWS API Gateway, Lambda, ECS, RDS, S3, CloudWatch์ ์ ๊ทผํ ์ ์์ด์ผ ํ๋ฉฐ, ๋ค๋ฅธ ์ฌ๋๊ณผ ๊ณ์ ์ ๊ณต์ ํ๊ฒ ๋๋ฉด ํน์ ๋ฆฌ์์ค์ ๋ํด ์ถฉ๋์ด ๋ฐ์ ํ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก ๊ถ์ฅํ์ง ์์ต๋๋ค.
[์ค์] ๋ณธ ์ํฌ์ต์์ ์ฌ์ฉํ๋ 'AWS Fargate' ์๋น์ค๋ ๊ณผ๊ธ๋ฉ๋๋ค. ์ค์ต์ด ๋๋๊ณ ๋ฐ๋ก ์ญ์ ํ์ธ์.
AWS Fargate๋ฅผ ์ ์ธํ ๋ณธ ์ํฌ์ต์ ์ผํ์ผ๋ก ์์ํ๋ ๋ชจ๋ ๋ฆฌ์์ค๋ AWS ๊ณ์ ์ด 12๊ฐ์ ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ, ์ ๊ณตํ๋ AWS ํ๋ฆฌํฐ์ด๋ก ์ถฉ๋ถํ ๊ฐ๋ฅํฉ๋๋ค. ๋จ, ์ฌ์ฉ๋์ด ํ๋ฆฌํฐ์ด๋ฅผ ๋์ด์๋ ๊ฒฝ์ฐ, ๊ณผ๊ธ ๋ ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์, ์๋ก์ด ์ค์ต์ฉ ๊ณ์ ์ ๋ง๋์๊ธธ ๊ถ์ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ AWS ํ๋ฆฌ ํฐ์ด ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
- Chrome ์ต์ ๋ฒ์ ๋ค์ด๋ก๋
Internet Explorer๋ AWS Web Console์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- VS Code ๋ค์ด๋ก๋
๋ณธ ์ค์ต ์ธ์ ์๋ ์ค์ ์ฝ๋ฉ์ด ํฌํจ๋ฉ๋๋ค. ์ธ์ ๋ฐํ์๋ VS Code๋ฅผ ์ฌ์ฉํ๋, ์ฝ๋ฉ์ ์ต์ํ์ง ์์ผ์ ๋ถ์ ๋ฐ๋ผํ๊ธฐ ์ฝ๋๋ก ํ๊ฒฝ์ ๋์ผํ๊ฒ ์ค์ ํด์ฃผ์ธ์.
- Node.js ์ต์ ๋ฒ์ ๋ค์ด๋ก๋
- GraphQL ์ดํด๋ณด๊ธฐ
- GraphQL์ด๋?
- GraphQL Type ์์คํ
๊ณผ
Query
,Mutation
Type - Nexus๋ก ์์ํ๋ Code-First GraphQL ๊ฐ๋ฐ
- GraphQL Playground
Task
ํ์ ๊ณผ ์ฟผ๋ฆฌ, ๋ฎคํ ์ด์ ๋ง๋ค๊ธฐ
- Serverless๋ก GraphQL API ๋ฐฐํฌํ๊ธฐ
- IAM ์ฌ์ฉ์ ์์ฑํ๊ธฐ
- Serverless Framework์ ์ฌ์ฉํด Node.js ํ๋ก์ ํธ ๋ฐฐํฌํ๊ธฐ
- AWS์ Prisma ๋ฐฐํฌํ๊ธฐ (CloudFormation)
- Prisma ์ฌ์ฉํ๊ธฐ
- Prisma๋?
- Prisma ์์ํ๊ธฐ
- Prisma Client ์ฌ์ฉํด๋ณด๊ธฐ
nexus-prisma
๋ฅผ ์ฌ์ฉํด, Prisma ์ฐ๊ฒฐํ๊ธฐ
- React.js์์ GraphQL API ์ฌ์ฉํ๊ธฐ
- ์ญ์ ํ๊ธฐ
- API ๋ฐฐํฌ ์ญ์ ํ๊ธฐ
- CloudFormation Stack ์ญ์ ํ๊ธฐ
- IAM ์ฌ์ฉ์ ์ญ์ ํ๊ธฐ
Feature Request๋ฅผ ์ํ์๋ฉด, ์ ์ด์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๋ํ, Pull Request๋ ์ธ์ ๋ ํ์์ ๋๋ค.๐
- macOS
- Windows
- CMD
- Powershell
- WSL Bash