[์ํฐํด ๋ฆฌ๋ทฐ] ํ ์ค ํ์ด๋จผ์ธ -๋ฉฑ๋ฑ์ฑ์ด ๋ญ๊ฐ์?
ํด๋น ๊ธ์ ๊ฐ๋ฐ, ๊ธฐ์ ๊ด๋ จ ์ํฐํด์ด๋ ๋ธ๋ก๊ทธ ๊ธ ํน์ ์ ํ๋ธ ์์์ ๋ด์ฉ์ ์ ๋ฆฌํ๊ฑฐ๋ ํ๊ธฐ๋ฅผ ์ ๋ ๊ธ์ ๋๋ค.
๋ฆฌ๋ทฐํ ๊ธ: tosspayments velog ์ '๋ฉฑ๋ฑ์ฑ์ด ๋ญ๊ฐ์?'
๊ธ์ ์์ฝ
- ๋ฉฑ๋ฑํ๋ค๋ ๊ฒ์ ๋ฌด์์ธ๊ฐ?
- ์ฒซ ๋ฒ์งธ ์ํ์ ํ ๋ค, ์ฌ๋ฌ ์ฐจ๋ก ์ํํด๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๊ฒฝ์ํค์ง ์๋ ๊ฒ
- ๋ฉฑ๋ฑ์ฑ์ ์ฅ์
- ๋์ผํ ์์ฒญ์ ๋ ๋ฒ ํ๋๋ผ๋ ์๋ฒ์ ๋ฐ์ดํฐ ์ํ๋ฅผ ํ ๋ฒ๋ง ๋ณ๊ฒฝํ๊ธฐ์ ์๋ํ์ง ์์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๋๋ค
- ์์ ํ API ๋ฅผ ๋ง๋๋ ๊ธธ
- ๋ฉฑ๋ฑํค๋ฅผ ์ด์ฉํด์ API ์์ ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅํ๋ค
- ๋ฉฑ๋ฑํค์ ๋ํ ๊ธฐ๋ก์ ํตํด์ ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅ
- ํด๋ผ์ด์ธํธ ๋จ์์ ๋ฉฑ๋ฑํค๋ฅผ ์์ฑํด์ ํค๋์ ๋ถ์
- ๋ฉฑ๋ฑํค์ ์ ์ฅ๋ ์๋ต์ ๋ฐํํจ
- ๋ฉฑ๋ฑํค์ ๋ํ ๊ธฐ๋ก์ ํตํด์ ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅ
๋ฆฌ๋ทฐ์ ๋์ ํด์
- ์๊ฒ๋ ๊ฒ
- get ๊ณผ put ์ ๋ฉฑ๋ฑํ์ง๋ง post ๋ patch ๋ ๋ฉฑ๋ฑํ์ง ์๋ค
- ๊ทธ๋ฌ๋ฏ๋ก ๋ฉฑ๋ฑ์ ์ ๊ณตํ๊ณ ์ถ๋ค๋ฉด ์๋ฒ์์ ๋ฉฑ๋ฑํจ์ ๊ตฌํํด์ผ ํ๋ค
- HTTP ๋ฉ์๋์ ์์ ์ฑ๊ณผ ๋ฉฑ๋ฑ์ฑ์ ์๋ก ๋ค๋ฅด๋ค
- ์ด๊ฒ์ด ๋ฐ๋ก ์ฐธ์กฐ ํฌ๋ช ์ฑ
- get ๊ณผ put ์ ๋ฉฑ๋ฑํ์ง๋ง post ๋ patch ๋ ๋ฉฑ๋ฑํ์ง ์๋ค
- ์๊ฒ๋ ํค์๋
- ๋ฉฑ๋ฑํค
- 422 Unprocessable Entity : ์ฌ์๋๋ ์์ฒญ์ด ์ฒ์ ์์ฒญ๊ณผ ๋ค๋ฅธ๋ฐ ๊ฐ์ ๋ฉฑ๋ฑํค๋ฅผ ์ฌ์ฉํ์ ๋
- 409 Conflict : ์ด์ ์์ฒญ ์ฒ๋ฆฌ๊ฐ ์์ง ์งํ์ค์ธ๋ฐ ๊ฐ์ ๋ฉฑ๋ฑํค๋ก ์๋ก์ด ์์ฒญ์ด ๋ค์ด์ฌ ๋
ํ๊ธฐ
์ฐ์ ์ด ๊ธ์ ์ฝ๊ณ ๊ฐ์ฅ ๋จผ์ ์๊ฐ๋ฌ๋ ๊ฒ์ 'ํ ์ค๋ฑ ํฌ ๋ฉด์ ' ์ด์๋ค
๊ณผ๊ฑฐ ํ ์ค๋ฑ ํฌ ๋ฉด์ ๋ ๋๋ ์ด๋ฐ ์ง๋ฌธ์ ๋ฐ์๋ ์ ์ด ์๋ค
ํ๋ถ ๋ชจ๋์ ๋ง๋์
จ๋ค๊ณ ํ์
จ๋๋ฐ, ๋์ผํ ์์ฒญ์ด ์ฐ์ํด์ ๋ค์ด์ค๋ฉด ์ด๋ป๊ฒ ํ์ง์?
์ด ์ง๋ฌธ์ ๋ฃ๊ณ ๋๋ ๋ฐ๋ก ๋ฉฑ๋ฑ์ฑ์ ๋ํด์ ์ฃผ์ ์์ด ์ด์ผ๊ธฐํ๊ณ ๊ฐ์กฐํ์ง๋ง ์ค์ ๋ก ์ด๋ป๊ฒ ๊ตฌํํ ๊ฒ์ธ๊ฐ? ์ ๋ํ ๋ต์ ํ์ง ๋ชปํ์๋ค.
๊ทธ๋ฅ ๋ฉฑ๋ฑํ api ๊ฐ ์ค์ํฉ๋๋ค! ์ด์ ๋ ๋ฉฑ๋ฑํ api ๊ฐ ์ค์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค! ๋ผ๋ ์์ผ๋ก ๋๋ตํ๋๊ฒ ๊ฐ๋ค
์ด ๊ธ์์๋ ์ค์ ๋ก ๋ฉฑ๋ฑํ API ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ how to ๋ฅผ ์๋ ค์ฃผ๋ ๊ธ์ด์๋๊ฒ ๊ฐ๋ค.
๋ฉฑ๋ฑ์ฑ๊ณผ ์ฐธ์กฐ ํฌ๋ช ์ฑ
๋ํ ๋๋ ๋ฉฑ๋ฑ์ฑ๊ณผ ์ฐธ์กฐ ํฌ๋ช ์ฑ ์ฌ์ด์ ๊ด๊ณ์ ๋ํด์ ๋ชจํธํ ๋ถ๋ถ์ด ์์๋ค.
์ฐธ์กฐ ํฌ๋ช ์ฑ์ ๋ํด์๋ ํด๋น ๋ธ๋ก๊ทธ ๊ธ์ธ Spring Data ๋ชจ๋์ save() ๋ CQS ๋ฅผ ์งํค์ง ์๋ ๊ฒ์ผ๊น? with ์ฐธ์กฐํฌ๋ช ์ฑ ์์ ํ์ธํ ์ ์๋ค.
์ด ๊ธ์ ์ฝ๊ณ ์ฐธ์กฐํฌ๋ช ์ฑ๊ณผ ๋ฉฑ๋ฑ์ฑ์ ๋ํ ์ฐจ์ด๋ฅผ ํ์คํ ์ดํดํ๋ค.
์ฐธ์กฐํฌ๋ช ์ฑ์ ์คํ๋ ค ์์ ์ฑ๊ณผ ๊ด๋ จ์ด ๊น๊ตฌ๋..