- ๐ REST-API๋?
- ๐ GraphQL-API๋?
- ๐ ์ฐธ์กฐ
REST๋ REpresentational State Transfer๋ผ๋ ์ฉ์ด์ ์ฝ์์ด๋ฉฐ,
REST API๋ ๋ง ๊ทธ๋๋ก RESTํ์์ API๋ฅผ ๋งํ๋ค.
REST API๋ ํต์ฌ ์ปจํ ์ธ ๋ฐ ๊ธฐ๋ฅ์ ์ธ๋ถ ์ฌ์ดํธ์์ ํ์ฉํ ์ ์๋๋ก ์ ๊ณต๋๋ ์ธํฐํ์ด์ค์ด๋ค.
์๋ฅผ ๋ค์ด, ๋ค์ด๋ฒ์์ ๋ธ๋ก๊ทธ์ ๊ธ์ ์ ์ฅํ๊ฑฐ๋, ๊ธ ๋ชฉ๋ก์ ์ฝ์ด๊ฐ ์ ์๋๋ก ์ธ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ฑฐ๋ ์ฐ์ฒด๊ตญ์์ ์ฐํธ๋ฒํธ๋ฅผ ์กฐํํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ฑฐ๋, ๊ตฌ๊ธ์์ ๊ตฌ๊ธ ์ง๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ ๊ณตํ๋ ๊ฒ๋ค์ ๋งํ๋ค.
REST API๋ ์น ๋ธ๋ผ์ฐ์ ๋ฟ๋ง ์๋๋ผ ์ฑ ๋ฑ ๋ค์ํ ํด๋ผ์ด์ธํธ๊ฐ ๋ฑ์ฅํ๋ฉด์ ๊ทธ๋ฌํ ํด๋ผ์ด์ธํธ๋ค์๊ฒ ๋์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๊ธฐ ์์ํ๋ค.
์๋น์ค ์ ์ฒด๋ค์ด ๋ค์ํ REST API๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ, ํด๋ผ์ด์ธํธ๋ ์ด๋ฌํ REST API๋ค์ ์กฐํฉํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๊ฒ ๋์๋ค.
์ด๊ฒ์ ๋งค์์ (Mashup)์ด๋ผ๊ณ ํ๋ค.
์ด๋ ๊ฒ REST API๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋๊ฒ ๋์์ง๋ง, REST๋ฅผ ๋ ผ๋ฌธ์ผ๋ก ์ต์ด ์๊ฐํ ๋ก์ดํ๋ฉ์ ๋๋ถ๋ถ์ REST API๋ผ๊ณ ํ๋ ๊ฒ๋ค์ด REST API๊ฐ ์๋๋ผ๊ณ ๋งํ๋๋ฐ, ๊ทธ ์ด์ ๋ ์ํด์ ๊ฐ์ ์คํ์ผ์ ์งํค์ง ๋ชปํ ๊ฒฝ์ฐ๊ฐ ๋ง์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ, ์์์ ์ธ๊ธํ ๋ด์ฉ์ ์ ์ง์ผ์ผ๋ง REST๋ผ๊ณ ๋งํ ์ ์๋ค.
GraphQL์ ํ์ด์ค๋ถ์์ ๋ง๋ ์ฟผ๋ฆฌ ์ธ์ด์ด๋ค.
gql์ ์น ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก๋ถํฐ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ค.
gql์ ๋ฌธ์ฅ์ ์ฃผ๋ก ํด๋ผ์ด์ธํธ ์์คํ ์์ ์์ฑํ๊ณ ํธ์ถ ํ๋ค.
์๋ ์ฌ์ง์ ์ข์ธก์ ์ฟผ๋ฆฌ๋ฌธ์ด๊ณ , ์ฐ์ธก์ ์๋ต์์ดํฐ ํ์์ด๋ค.
gql์์๋ ๊ตณ์ด ์ฟผ๋ฆฌ์ ๋ฎคํ ์ด์ ์ ๋๋๋๋ฐ ๋ด๋ถ์ ์ผ๋ก ๋ค์ด๊ฐ๋ฉด ์ฌ์ค์ ์ด ๋์ ๋ณ ์ฐจ์ด๊ฐ ์๋ค.
์ฟผ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋๋ฐ(R) ์ฌ์ฉํ๊ณ , ๋ฎคํ ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ์กฐ(CUD) ํ๋๋ฐ ์ฌ์ฉํ๋ค๋ ๊ฐ๋ ์ ์ธ ๊ท์ฝ์ ์ ํด ๋์ ๊ฒ ๋ฟ์ด๋ค.
https://www.boostcourse.org/web316/lecture/16740?isDesc=false
https://tech.kakao.com/2019/08/01/graphql-basic/