๐ PUT๊ณผ PATCH๊ฐ ๊ฐ์ ์ค ์์๋๋ฐโฆ ํ๋ ธ๋ค
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๊ฐ:
- ๋ถ๋ช ํํ๊ณ
- ์ผ๊ด์ฑ์ด ์์ผ๋ฉฐ
- ๋๋ฒ๊น ์ด ์ด๋ ค์ธ ๋
์ฌ๊ธฐ์ ์์ํ๋ผ. ์ด ์ดํด๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํ ํฐ ๋ฐ๊ฑธ์์ด๋ค.