[AWS] AppSync: ์์
AppSync๋ ์๋ง์กด์์ ์ ๊ณตํ๋ GraphQL ์ ์ฉ ์๋น์ค๋ค.
๊ทธ๋ฅ ์ง์ GraphQL ํ๋ ์์ํฌ๋ค์ ๋ก๊ฒจ๋ค๊ฐ ์๋ฒ๋ฅผ ๊ตฌ์ถํ ์๋ ์์ง๋ง, ์ด๊ฑธ ์ฌ์ฉํ๋ฉด ๊ท์ฐฎ์ ๊ด๋ฆฌ์ฌํญ๋ค์ ๋๊ธธ ์ ์์ด์ ํธ๋ฆฌํ ๋ถ๋ถ์ด ์ข ์๋ค๊ณ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก AppSync์์๋ ์คํค๋ง์ ๋ฆฌ์กธ๋ฒ๋ง ์ ์ํ๊ณ , ์ค์ ๋ฐ์ดํฐ๊ฐ๋ค์ ์ธ๋ถ์์ ๊ฐ์ ธ์ค๋ ๊ตฌ์กฐ๋ค.
๊ทธ๋ฆฌ๊ณ VTL์ด๋ผ๋ ์ ์ฉ ํ ํ๋ฆฟ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ์ ์ด ํน์ง ์ค ํ๋๋ค.
๊ทผ๋ฐ ์ด๊ฒ ์ข.. ํธ๋ถํธ๊ฐ ๋ง์ด ๊ฐ๋ฆฐ๋ค.
์์ค๋ฅผ ์ง์ ์ฌ๋ฆฌ๋๊ฒ ์๋๋ผ ์ฝ์ ํ์ด์ง ์์ฒด์์ ์คํค๋ง์ ๋ฆฌ์กธ๋ฒ, ์ฐ๋ ๋ฌธ์ ๋ค์ ๋ค ํด๊ฒฐํ๋ ํ์์ด๊ณ , ํ์
์ด๋ ํ์๊ด๋ฆฌ ๊ฐ์๊ฒ ์๋นํ ๋ถํธํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ์์ง์ ํ๋ก๋์ ์ ์ ์ฐ์ง ์๋ ๋ฏํ ๋ชจ์์๋ค.
ํ๋ฒ ๋ณด์.
ํ์ด์ง์ ๋ค์ด๊ฐ์ ์์ฑ์ ๋๋ฅธ๋ค.

๊ทธ๋ฆฌ๊ณ ์ํ์ ๊ณ ๋ฅด๋ฉด ๋๋๋ฐ, ๋ฑํ ๊ตฌ์ฑํ๊ฒฝ๊ฐ์๊ฒ ๋ค๋ฅธ๊ฒ ์๋๋ผ ๊ทธ๋ฅ ์์ ์ฝ๋๋ง ๋ค๋ฅธ๊ฑฐ๋ค.
๋ ์ด๋ฒคํธ ์ฑ์ผ๋ก ํ๋ค.
์ด๋ฆ ๊ณจ๋ผ์ ์์ฑ ๋๋ฅด๋ฉด

ํ . ์ด๋ฐ์์ผ๋ก ์์ฑ์ด ๋ ๊ฒ์ด๋ค.
์ ์ฟผ๋ฆฌ ํ์ด์ง๋ ์ค์ mutation์ด๋ query ๋ฑ์ ํ์ธํ ์ ์๋ ๊ณณ์ด๊ณ
์ด ์คํค๋ง ํ์ด์ง๋ ์ค์ ์คํค๋ง ํ์ ๋ค์ ๋ค๋ฃจ๋ ๊ณณ์ด๋ค.

๊ทผ๋ฐ ์ด๋ฐ๊ฑฐ๋ง ๋ด์ ๋ญํ๊ฒ ๋๊ฐ.
์ง์ ์ถ๊ฐํด์ ๊ฐ๋จํ๊ฒ๋ผ๋ ํ๋ฒ ๋๋ ค๋ณด์
๋ฆฌ์์ค ์์ฑ์ ๋๋ฅด๊ณ
๊ฐ๋จํ๊ฒ ํ์
์ ํ๋ฒ ์ ์ํด๋ดค๋ค.
id์ String๋ง ๊ฐ์ง๋ ๋จ์ํ ํ์
์ด๋ค.
๊ธฐ๋ณธํค๋ ์ ๋ ฌํค.. ๋ฑ๋ฑ์ด ์๋๋ฐ ์ด๊ฑด ์ผ๋จ ๋๊ธฐ๊ณ

๊ด๋ จ ์คํค๋ง ์ ์๋ ์ด๋์ ๋ ์๋์ผ๋ก ํด์ค๋ค.
์๋์์ฑ ํ๋๊ทธ๋ฅผ ํ์ฑํํ๋ค๋ฉด.
์ด๋ฐ์์ผ๋ก ๋ฐ ๊ฒ์ด๋ค.
query์ ๋จ์ผ ์กฐํ์ ๋ฆฌ์คํธ ์กฐํ,
mutation์ ์์ฑ, ์์ , ์ญ์
subscription์ ๊ทธ์ ๋ํ ํธ๋ฆฌ๊ฑฐ..
๊ทธ๋ฆฌ๊ณ ๊ธฐํ input ํ์ ๋ค๋ ์์ํ๊ฒ ์ ์ํด์ค๋ค.
๊ทผ๋ฐ ์ด ์ํ์์ ์์ ์ ์๋๊ณ ์์ฑํ ๋ค์์๋ง ์์ ์ด ๊ฐ๋ฅํ๋๋ผ.
๋ง๋ค๊ณ ๋๋ฉด ๋น์ฐํ ์ด๋ฐ์์ผ๋ก ์ถ๊ฐ๊ฐ ๋๋ค.
๋ฆฌ์กธ๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ
์ด๋ธ์ ํํ๋ก ๋งคํ์ด ๋์ด์๋ค.

์ ๊ธฐ ๋ฆฌ์กธ๋ฒ๋ฅผ ๋๋ฅด๋ฉด ํด๋น ์ฟผ๋ฆฌ ๋ฆฌ์กธ๋ฒ์ ๋ํ๊ฑธ ์ ์ดํ ์๊ฐ ์๋๋ฐ
์ด๋ฐ์์ผ๋ก ๋ฌ๋ค.
์ ๊ธฐ ์๋์ ์๋ ์๋ต ๋งคํ ํ ํ๋ฆฟ์ด VTL์ด๋ผ๋ ์ ์ฉ ์ธ์ด๋ก ์์ฑ๋ ๋ถ๋ถ์ด๋, ์ผ๋จ ์ฌ๊ธฐ์๋ ์๋ค๋ ๊ฒ๋ง ์์๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฟผ๋ฆฌ ํญ๋ชฉ์์๋ ๋ณ๋ค๋ฅธ ๋ณด์ ์ ์ด ์์ด ๋ฐ๋ก ํ ์คํธ๋ฅผ ํด๋ณผ ์ ์๋ค.
์ผ๋จ์ ๋ฐ์ดํฐ๊ฐ ์์ด์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ ค๋ null์ด ๋์จ๋ค.
๋์ถฉ ๊ฐ์ด ๋์ค๊ฒ๋ง ํด๋ณด์.
๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ ๊ฐ์ ธ์ค๋๊ฒ DynamoDB๋ก ๋์ด์๊ธฐ ๋๋ฌธ์, ์ผ๋จ ๊ทธ๊ฑธ๋ก๋ง ๊ฐ์ ๋ฃ์ด์ ๊บผ๋ด๋ณด๊ฒ ๋ค.
๋๋ค๋ก ๋ถ์ด๋๊ฑด ๋์ค์ ํ๊ณ ...
๋ฐ์ดํฐ ์๋ณธ์ ๊ฐ๋ฉด ๊ฐ๋ค๊ณผ ๋งค์นญ๋๋ ๊ณณ๋ค์ ์ค์ ๋ชฉ๋ก์ด ์๋ค.
FooType์ ์์ฑํ ๋ ์๊ธด ๊ฑด ์ FooTypeTable์ด๋ ๋
์์ด๋ค.
ํด๋ฆญํด์ ๋ค์ด๊ฐ๋ฉด ๋์ถฉ Dynamo ํ์ด์ง๊ฐ ๋จ๋๋ฐ, ์ฌ๊ธฐ์ ๊ทธ๊ฑธ ๊น์ด ๋ค๋ฃฐ๊ฑด ์๋๋ ๋์ถฉ๋ง ๋ณด๊ฒ ๋ค.

ํญ๋ชฉ์ ๋ค์ด๊ฐ์ ํญ๋ชฉ ๋ง๋ค๊ธฐ๋ก ๋ฆฌ์กธ๋ฒ์์ ๋ณด๋ผ ๊ฐ๋ค์ ์ ๋นํ ๋ฃ์ด์ค๋ค.

์ด๋ฐ์์ผ๋ก ๋ง์ด๋ค.
ํด๋๊ณ ์ ์ฅํ๋ฉด ์ด์ ์ ๊ธ์ด์ฌ ๊ฒ์ด๋ค.

์ฐธ์กฐ
https://dev.classmethod.jp/articles/aws-appsync-re-introduction-2019-korean-ver/