API
๋ HTTP ์์ฒญ์ ๋ฐฑ์๋ ์ปดํจํฐ์ ๋ณด๋์ ๋ ์คํ๋๋ ๋ฐฑ์๋ ๊ธฐ๋ฅ์ด๋ค. ์ฝ๊ฒ ๋งํด ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ค์ด ๋ง๋๋ ํจ์์ด๊ณ , ๋ธ๋ผ์ฐ์ ์์ ํด๋ฆญํ๋ ๋ฒํผ๋ง๋ค API
๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
API ์ข
๋ฅ๋ ํฌ๊ฒ rest-API
, graphql-API
๋ก ๋๋๋ค.
๊ธฐ์กด์๋ ๋๋ถ๋ถ rest-API
๋ฅผ ์ฌ์ฉํ๋ค. open-API(๊ฐ์ธ์ด ๋ง๋ค์ด๋๊ณ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํ public API)์์๋ ์ผ๋ฐ์ ์ผ๋ก Rest๋ฅผ ์ ๊ณตํ๋ค. rest-API๋ API ํจ์ ์ด๋ฆ์ด ์ฃผ์์ฒ๋ผ ์๊ฒผ๋ค. ๋ํ rest-API์ ์ ์ก์ ์์ฒญํ๋ ์์ฒญ๋ด๋น์๋ axios
์ด๋ค.
graphql-API
๋ ์ต์ ๊ธฐ์ ์ด๋ค. rest-API์ ๋ฌ๋ฆฌ ์ํ๋ ๋ฐ์ดํฐ๋ง ๊ณจ๋ผ ๋ฐ์ ์ ์๋ค. ๋ถํ์ํ ๋ฐ์ดํฐ๊น์ง ๋ชจ๋ ๋ฐ๋ ๊ฒ๋ณด๋ค ์ฉ๋์ด ์๊ณ ๋น ๋ฅด๋ค. ํ์ด์ค๋ถ, ์์ด๋น์ค๋น ๋ฑ ๊ธ๋ก๋ฒ ์๋น์ค์์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค. graphql-API๋ ํจ์ ์ด๋ฆ์ด ์ผ๋ฐ ํจ์์ฒ๋ผ ์๊ฒผ๋ค. ๋ํ graphql-API์ ์ ์ก์ ์์ฒญํ๋ ์์ฒญ๋ด๋น์๋ apollo-client
์ด๋ค.
๋ ๊ฐ์ง ๋ชจ๋ API์ ์ ์ก์ ์์ฒญํ๋ ์์ฒญ๋ด๋น์๊ฐ ์๋ค๊ณ ํ๋๋ฐ, ์ฌ๊ธฐ์ ์์ฒญ๋ด๋น์๋ ํ๋ก ํธ์๋์์ ์ค์นํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. rest-API๋ axios๋ฅผ, graphql-API๋ apollo-client๋ฅผ ์ค์นํ๋ฉด ๋๋ค.
JSON
(JavaScript Object Notation)์ JS์์ ์ฌ์ฉํ๋ ๊ฐ์ฒด ํ๊ธฐ๋ฒ์ด๋ค. ์ค์ ๊ฐ์ฒด๋ ์๋๊ณ , ๊ฐ์ฒด๋ฅผ ๋ด์ ๋ฌธ์์ด์ ๋ปํ๋ค.
์ปดํจํฐ์์๋ ์ค์ ๊ฐ์ฒด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ณ , ํ
์คํธ๋ง ์ฃผ๊ณ ๋ฐ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ JSON
๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ค.
์ฆ, ๋ฐฑ์๋์์ ์๋ต์ผ๋ก ๋ณด๋ด์ฃผ๋ ๊ฒ์ด JSON
์ด๊ณ , ๋ฐ์์จ JSON ๋ฐ์ดํฐ๋ ํ๋ก ํธ์์ ๋ฌธ์์ด์ ๋ฒ๊ฒจ ๊ฐ์ฒด๋ก ์ฌ์ฉํ๊ฒ ๋๋ค.
API๋ ํฌ๊ฒ 4๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌ๋ถํ ์ ์๋๋ฐ ๊ทธ 4๊ฐ์ง๋ฅผ ํตํ์ด CRUD
๋ผ๊ณ ํ๋ค.
Create: ๋ฑ๋ก(์์ฑ)
Read: ์กฐํ
Update: ์์
Delete: ์ญ์
rest-API์์์ CURD์ graphql-API์์์ CRUD๋ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์๋ค. ๊ฐ๊ฐ ์ต์ (post, mutation ๋ฑ)์ ๋ถ์ฌ์ ์ฌ์ฉํด์ผ ํ๋ค.
VS Code์์ ์ด๋ฅผ ์ค์ ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.