โœ๐Ÿป [Code Camp_TIL] 3์ผ์ฐจ: API, JSON, CRUD

code_Jยท2023๋…„ 3์›” 19์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
4/41
post-thumbnail

API๋ž€?

API๋ž€ HTTP ์š”์ฒญ์„ ๋ฐฑ์—”๋“œ ์ปดํ“จํ„ฐ์— ๋ณด๋ƒˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ๋ฐฑ์—”๋“œ ๊ธฐ๋Šฅ์ด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜์ด๊ณ , ๋ธŒ๋ผ์šฐ์ €์—์„œ ํด๋ฆญํ•˜๋Š” ๋ฒ„ํŠผ๋งˆ๋‹ค API๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.


API ์ข…๋ฅ˜

API ์ข…๋ฅ˜๋Š” ํฌ๊ฒŒ rest-API, graphql-API๋กœ ๋‚˜๋‰œ๋‹ค.


rest-API

๊ธฐ์กด์—๋Š” ๋Œ€๋ถ€๋ถ„ rest-API๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. open-API(๊ฐœ์ธ์ด ๋งŒ๋“ค์–ด๋†“๊ณ  ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ public API)์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Rest๋ฅผ ์ œ๊ณตํ•œ๋‹ค. rest-API๋Š” API ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์ฃผ์†Œ์ฒ˜๋Ÿผ ์ƒ๊ฒผ๋‹ค. ๋˜ํ•œ rest-API์— ์ „์†ก์„ ์š”์ฒญํ•˜๋Š” ์š”์ฒญ๋‹ด๋‹น์ž๋Š” axios์ด๋‹ค.


graphql-API

graphql-API๋Š” ์ตœ์‹  ๊ธฐ์ˆ ์ด๋‹ค. rest-API์™€ ๋‹ฌ๋ฆฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ณจ๋ผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋ชจ๋‘ ๋ฐ›๋Š” ๊ฒƒ๋ณด๋‹ค ์šฉ๋Ÿ‰์ด ์ž‘๊ณ  ๋น ๋ฅด๋‹ค. ํŽ˜์ด์Šค๋ถ, ์—์–ด๋น„์•ค๋น„ ๋“ฑ ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. graphql-API๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์ผ๋ฐ˜ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์ƒ๊ฒผ๋‹ค. ๋˜ํ•œ graphql-API์— ์ „์†ก์„ ์š”์ฒญํ•˜๋Š” ์š”์ฒญ๋‹ด๋‹น์ž๋Š” apollo-client์ด๋‹ค.

๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ API์— ์ „์†ก์„ ์š”์ฒญํ•˜๋Š” ์š”์ฒญ๋‹ด๋‹น์ž๊ฐ€ ์žˆ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์š”์ฒญ๋‹ด๋‹น์ž๋Š” ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์„ค์น˜ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. rest-API๋Š” axios๋ฅผ, graphql-API๋Š” apollo-client๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋œ๋‹ค.


JSON

JSON(JavaScript Object Notation)์€ JS์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค. ์‹ค์ œ ๊ฐ์ฒด๋Š” ์•„๋‹ˆ๊ณ , ๊ฐ์ฒด๋ฅผ ๋‹ด์€ ๋ฌธ์ž์—ด์„ ๋œปํ•œ๋‹ค.

์ปดํ“จํ„ฐ์—์„œ๋Š” ์‹ค์ œ ๊ฐ์ฒด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์—†๊ณ , ํ…์ŠคํŠธ๋งŒ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ JSON ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ฆ‰, ๋ฐฑ์—”๋“œ์—์„œ ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒƒ์ด JSON์ด๊ณ , ๋ฐ›์•„์˜จ JSON ๋ฐ์ดํ„ฐ๋Š” ํ”„๋ก ํŠธ์—์„œ ๋ฌธ์ž์—ด์„ ๋ฒ—๊ฒจ ๊ฐ์ฒด๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.


API์™€ CRUD

API๋Š” ํฌ๊ฒŒ 4๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ทธ 4๊ฐ€์ง€๋ฅผ ํ†ตํ‹€์–ด CRUD๋ผ๊ณ  ํ•œ๋‹ค.

Create: ๋“ฑ๋ก(์ƒ์„ฑ)
Read: ์กฐํšŒ
Update: ์ˆ˜์ •
Delete: ์‚ญ์ œ


rest-API์—์„œ์˜ CURD์™€ graphql-API์—์„œ์˜ CRUD๋Š” ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ ์˜ต์…˜(post, mutation ๋“ฑ)์„ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

VS Code์—์„œ ์ด๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

profile
Web FE ๊ฐœ๋ฐœ์ž ์ทจ์ค€์ƒ

0๊ฐœ์˜ ๋Œ“๊ธ€