๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋ก ํŠธ ๊ธฐ์ดˆ์ง€์‹

[ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์ง€์‹] HTTP๋ž€? (feat. REST API)

by ๋‰ด์ชผ๋ฏธ 2024. 2. 18.

HTTP๋ž€?

HTTP(HyperText Transfer Protocol)๋Š” ์›น์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ ์›น ๋ฌธ์„œ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ๋„ ์žˆ๊ณ , ๋ชจ๋ฐ”์ผ, ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์—์„œ๋„ ๋‹ค์–‘ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ์ด ๋œ๋‹ค. 

 

ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญํ• ๋•Œ ๋ชฉ์ ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

HTTP ๋ฉ”์„œ๋“œ
๋‚ด์šฉ
์‚ฌ์šฉ ์˜ˆ์‹œ
CRUD
GET
๋ฐ์ดํ„ฐ ์กฐํšŒ ์š”์ฒญ
ํŠน์ • ํŽ˜์ด์ง€ ์ ‘์†, ์ •๋ณด ๊ฒ€์ƒ‰
Read
POST
๋ฐ์ดํ„ฐ ์ƒ์„ฑ ์š”์ฒญ
ํšŒ์›๊ฐ€์ž…, ๊ธ€์“ฐ๊ธฐ
Create
PUT
๋ฐ์ดํ„ฐ ์ˆ˜์ • ์š”์ฒญ
ํšŒ์› ์ •๋ณด ์ˆ˜์ •, ๊ธ€์ˆ˜์ •
Update
DELETE
๋ฐ์ดํ„ฐ ์‚ญ์ œ ์š”์ฒญ
ํšŒ์› ์ •๋ณด ์‚ญ์ œ, ๊ธ€์‚ญ์ œ
Delete

 

HTTP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋ง์€ ํด๋ผ์ด์–ธํŠธ์—์„œ HTTP๋กœ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•œ๋’ค ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฐ๋‹ค. ์ด๋กœ ์ธํ•ด ์„œ๋ฒ„์ž…์žฅ์—์„œ๋Š” ์ ‘์† ์œ ์ง€์— ๋Œ€ํ•œ ์š”๊ตฌ๊ฐ€ ์ ์–ด, ๋ถˆํŠน์ • ๋‹ค์ˆ˜๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์„œ๋น„์Šค์— ์ ํ•ฉํ•˜๋‹ค.

 

์œ„์™€ ๊ฐ™์ด ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜๋‹ค๋ณด๋ฉด REST API๋„ ๊ฐ™์ด ์—ฐ๊ฒฐ๋˜์„œ ์ด์•ผ๊ธฐํ•ด๋ณด๋ฉด ๋” ์ข‹์„๊ฑฐ ๊ฐ™๋‹ค. 

 

 

REST API๋Š” (Representational State Transfer) ๋กœ ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ด๋‹ค.

api๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๊ฐœ๋ฐœ์ž๋“ค๊ฐ„์˜ ์˜์‚ฌ์†Œํ†ต์— ์˜คํ•ด์—†์ด ์“ฐ๊ธฐ์œ„ํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์ด๋‹ค.

  • ๋ง ๊ทธ๋Œ€๋กœ ํŠน์ •ํ•œ ์ž์›(resource)์— ๋Œ€ํ•˜์—ฌ, ์ž์›์˜ ์ƒํƒœ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฐœ๋ฐœ ๋ฐฉ์‹

๊ฐ ๋ฉ”์„œ๋“œ๋งˆ๋‹ค์˜ ๊ธฐ๋Šฅ์ด ์žˆ์ง€๋งŒ POST ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ์ด ์•„๋‹Œ ์ˆ˜์ •์œผ๋กœ ์“ฐ๊ฑฐ๋‚˜ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋ณด๋‹ˆ ์†Œํ†ตํ•˜๋Š”๋ฐ ์˜คํ•ด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

REST๋Š” ๋ฆฌ์†Œ์Šค(์ž์›)๋ฅผ ๊ณ ์œ ํ•œ URI๋กœ ํ‘œํ˜„ํ•˜๊ณ , HTTP๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

REST์˜ ๊ตฌ์„ฑ ์š”์†Œ

์ž์›(resource)
URI๋ฅผ ์ด์šฉ
ํ–‰์œ„(verb)
HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉ
ํ‘œํ˜„(representation) ํŽ˜์ด๋กœ๋“œ(payload)์ด์šฉ