๐Ÿ”„ PUT๊ณผ PATCH๊ฐ€ ๊ฐ™์€ ์ค„ ์•Œ์•˜๋Š”๋ฐโ€ฆ ํ‹€๋ ธ๋‹ค

๋ฐœํ–‰: (2026๋…„ 1์›” 7์ผ ์˜ค์ „ 03:03 GMT+9)
4 ๋ถ„ ์†Œ์š”
์›๋ฌธ: Dev.to

Source: Dev.to

๐Ÿง  ์™œ ์ด HTTP ๋ฉ”์„œ๋“œ๋“ค์ด ์ค‘์š”ํ•œ๊ฐ€

REST API์—์„œ HTTP ๋ฉ”์„œ๋“œ๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ๋ฒ•์ด ์•„๋‹ˆ๋‹ค.
์ด๋“ค์€ ๋‹ค์Œ์„ ์ •์˜ํ•œ๋‹ค:

  • API ๋™์ž‘
  • ํด๋ผ์ด์–ธํŠธ ๊ธฐ๋Œ€์น˜
  • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ
  • ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

์ž˜๋ชป๋œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด API๊ฐ€ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ , ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์ง„๋‹ค.

โœ๏ธ PUT ๋งคํ•‘ โ€” ์ „์ฒด ์—…๋ฐ์ดํŠธ

PUT์€ ์ „์ฒด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ต์ฒดํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•ต์‹ฌ ์•„์ด๋””์–ด:
PUT์€ ์ „์ฒด ๊ฐ์ฒด๋ฅผ ๊ธฐ๋Œ€ํ•œ๋‹ค, ๋ถ€๋ถ„ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋‹ค.

ํ•„๋“œ๊ฐ€ ๋ˆ„๋ฝ๋˜๋ฉด:

  • ํ•ด๋‹น ํ•„๋“œ๊ฐ€ ๋ฎ์–ด์จ์งˆ ์ˆ˜ ์žˆ๋‹ค
  • ํ˜น์€ ์˜๋„์น˜ ์•Š๊ฒŒ ์ดˆ๊ธฐํ™”๋  ์ˆ˜ ์žˆ๋‹ค

๊ทธ๋ž˜์„œ PUT์€ ์‹ ์ค‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿงฉ PATCH ๋งคํ•‘ โ€” ๋ถ€๋ถ„ ์—…๋ฐ์ดํŠธ

PATCH๋Š” ํŠน์ • ํ•„๋“œ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•ต์‹ฌ ์•„์ด๋””์–ด:
PATCH๋Š” ์ œ๊ณต๋œ ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค:

  • ๋‹จ์ผ ํ•„๋“œ๋งŒ ์—…๋ฐ์ดํŠธํ•  ๋•Œ
  • ์‹ค์ˆ˜๋กœ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  • ์œ ์—ฐํ•œ API๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์‹ถ์„ ๋•Œ

์ด ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋‹ˆ ์—…๋ฐ์ดํŠธ API๊ฐ€ ์ด์ƒํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋˜ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ๋‹ค.

๐Ÿ—‘๏ธ DELETE ๋งคํ•‘ โ€” ๋ฆฌ์†Œ์Šค ์‚ญ์ œ

DELETE๋Š” ์‹œ์Šคํ…œ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

๊ฐ„๋‹จํ•ด ๋ณด์ด์ง€๋งŒ, ์—ฌ๊ธฐ์„œ ๋งŽ์€ ์ดˆ๋ณด์ž(๋‚˜ ํฌํ•จ)๊ฐ€ ์‹ค์ˆ˜ํ•œ๋‹ค.

ํ”ํ•œ ์‹ค์ˆ˜:

  • ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„๋„ ํ•ญ์ƒ ์„ฑ๊ณต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค

์ข‹์€ DELETE API๋Š” ๋‹ค์Œ์„ ํ•ด์•ผ ํ•œ๋‹ค:

  • ๋ฆฌ์†Œ์Šค ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค
  • ์˜๋ฏธ ์žˆ๋Š” ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค
  • ์˜ค๋ฅ˜๋ฅผ ์šฐ์•„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค

DELETE๋Š” ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์˜ฌ๋ฐ”๋ฅธ API ๋™์ž‘์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

โš ๏ธ ๋‚ด๊ฐ€ ์ €์ง€๋ฅธ ์‹ค์ˆ˜

๋‚˜๋Š” ์ด์ „์—:

  • ๋ชจ๋“  ๊ณณ์— PUT์„ ์‚ฌ์šฉํ–ˆ๋‹ค
  • PATCH๋ฅผ ์™„์ „ํžˆ ๋ฌด์‹œํ–ˆ๋‹ค
  • DELETE๋ฅผ ๋‹จ์ˆœํ•œ ๋”๋ฏธ ์ž‘์—…์œผ๋กœ ์ทจ๊ธ‰ํ–ˆ๋‹ค

๋ฐ๋ชจ์—์„œ๋Š” ๋™์ž‘ํ–ˆ์ง€๋งŒ ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์‹คํŒจํ–ˆ๋‹ค.
๊ฐ ๋ฉ”์„œ๋“œ ๋’ค์— ์žˆ๋Š” ์˜๋„๋ฅผ ์ดํ•ดํ•˜๋ฉด์„œ API ์„ค๊ณ„ ๋ฐฉ์‹์ด ๋ฐ”๋€Œ์—ˆ๋‹ค.

โœ… ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ ์šฉํ•œ ๋’ค ๋ณ€ํ™”

์ด ๋งคํ•‘๋“ค์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ๋‚˜๋‹ˆ:

  • API๊ฐ€ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‘๋‹ต์„ ์‹ ๋ขฐํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค
  • ๋ฒ„๊ทธ๊ฐ€ ๊ฐ์†Œํ–ˆ๋‹ค
  • ์ฝ”๋“œ๊ฐ€ ์ „๋ฌธ์ ์œผ๋กœ ๋А๊ปด์กŒ๋‹ค

์ด๋•Œ๋ถ€ํ„ฐ Spring Boot API๊ฐ€ ํ”„๋กœ๋•์…˜ ์ˆ˜์ค€์œผ๋กœ ๋‹ค๊ฐ€์™”๋‹ค.

๐Ÿš€ ๋งˆ๋ฌด๋ฆฌ ์ƒ๊ฐ

PUT, PATCH, DELETE๋Š” ๊ฐ„๋‹จํ•ด ๋ณด์ด์ง€๋งŒ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค.

Spring Boot์„ ๋ฐฐ์šฐ๋ฉด์„œ API๊ฐ€:

  • ๋ถˆ๋ช…ํ™•ํ•˜๊ณ 
  • ์ผ๊ด€์„ฑ์ด ์—†์œผ๋ฉฐ
  • ๋””๋ฒ„๊น…์ด ์–ด๋ ค์šธ ๋•Œ

์—ฌ๊ธฐ์„œ ์‹œ์ž‘ํ•˜๋ผ. ์ด ์ดํ•ด๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ํฐ ๋ฐœ๊ฑธ์Œ์ด๋‹ค.

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

REST API์™€ ์ผ๋ฐ˜์ ์ธ HTTP ๋ฉ”์„œ๋“œ

REST API๋Š” ์–ด๋””์—๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ์›น ์•ฑ๋ถ€ํ„ฐ ๋ชจ๋ฐ”์ผ ์•ฑ, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊นŒ์ง€. ๋ฐฑ์—”๋“œ ๋˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋ฐฐ์šฐ๊ณ  ์žˆ๋‹ค๋ฉด, REST API์™€ HTTP๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

REST vs GraphQL: ๋‘ ๊ฐ€์ง€ ์ฒ ํ•™, ๋‘ ์‹œ๋Œ€, ํ•˜๋‚˜์˜ ๋์—†๋Š” ๋…ผ์Ÿ

์•„๋ž˜ ์งˆ๋ฌธ๋“ค์— ๋Œ€๋ถ€๋ถ„ ํ˜น์€ ๋ชจ๋‘ โ€˜์˜ˆโ€™๋ผ๊ณ  ๋‹ตํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด ๊ธ€์€ ๋‹น์‹ ์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค: ์ด์ „์— API๋ฅผ ์ง์ ‘ ๊ตฌ์ถ•ํ–ˆ๊ฑฐ๋‚˜ ์ตœ์†Œํ•œ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. โ€˜REST vs Gโ€ฆโ€‹

์˜ค์šฉํ•˜๊ธฐ ์–ด๋ ค์šด API ์„ค๊ณ„

๋Œ€๋ถ€๋ถ„์˜ ๋ฐฑ์—”๋“œ ๋ฒ„๊ทธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ถ€์ฃผ์˜ํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, API๊ฐ€ ์˜ค์šฉํ•˜๊ธฐ ์‰ฌ์›Œ์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. API๊ฐ€ ์ž˜๋ชป๋œ ๋™์ž‘์„ ํ—ˆ์šฉํ•œ๋‹ค๋ฉด, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์‹ฌ์ง€์–ดโ€ฆ