Home > Spring > ๐Ÿƒ[Spring] API ์ŠคํŽ™, HTTP Body๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ DTO๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š”๊ฒŒ ์ข‹์„๊นŒ์š”?

๐Ÿƒ[Spring] API ์ŠคํŽ™, HTTP Body๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ DTO๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š”๊ฒŒ ์ข‹์„๊นŒ์š”?
Spring Framework

๐Ÿƒ[Spring] API ์ŠคํŽ™, HTTP Body๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ DTO๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š”๊ฒŒ ์ข‹์„๊นŒ์š”?

  • API ์ŠคํŽ™๊ณผ HTTP Body๊ฐ€ ์™„์ „ํžˆ ๋™์ผํ•˜๋”๋ผ๋„ DTO๋ฅผ ์žฌํ™œ์šฉํ• ์ง€ ์ƒˆ๋กœ ๋งŒ๋“ค์ง€๋Š” ๋‹ค์Œ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

1๏ธโƒฃ ์˜๋ฏธ์™€ ์ฑ…์ž„์˜ ๋ถ„๋ฆฌ.

  • ๋‘ API๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์˜๋ฏธ์™€ ๋ชฉ์ ์„ ๊ฐ€์ง„๋‹ค๋ฉด, ์˜ˆ๋ฅผ ๋“ค์–ด ํ•˜๋‚˜๋Š” ์‚ฌ์šฉ์ž ๋“ฑ๋ก์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์‚ฌ์šฉ์ž ์—…๋ฐ์ดํŠธ์ผ ๊ฒฝ์šฐ, ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๋ณ„๋„์˜ DTO๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    • ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ API์˜ ๋ชฉ์ ๊ณผ ์ปจํ…์ŠคํŠธ๊ฐ€ ๋ช…ํ™•ํ•ด์ง€๊ณ , ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ ํ™•์žฅ์„ฑ๊ณผ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ.

  • ํ•˜๋‚˜์˜ DTO๋ฅผ ์—ฌ๋Ÿฌ API์—์„œ ๊ณต์œ ํ•˜๋ฉด, ํ•œ์ชฝ์˜ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋‹ค๋ฅธ API์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํŠนํžˆ ํ•˜๋‚˜์˜ API๋งŒ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ ๊ณต์œ  DTO๋ฅผ ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ ๋‹ค๋ฅธ API์— ์˜๋„์น˜ ์•Š์€ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ๋…๋ฆฝ์ ์ธ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ DTO๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ ๊ฒ€์ฆ ๋กœ์ง ์ฐจ์ด.

  • DTO์— ๊ฒ€์ฆ ๋กœ์ง์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด, API๋งˆ๋‹ค ๊ฒ€์ฆ ๋ฐฉ์‹์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋”๋ผ๋„ ๊ฒ€์ฆ์ด ๋‹ค๋ฅด๋ฉด DTO๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

4๏ธโƒฃ ๊ฐ„๋‹จํ•œ ๊ฒฝ์šฐ ์žฌํ™œ์šฉ ๊ฐ€๋Šฅ.

  • ๋‘ API๊ฐ€ ๋งค์šฐ ์œ ์‚ฌํ•œ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ํ˜„์žฌ์™€ ๋ฏธ๋ž˜์—๋„ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ์ด ์ ๋‹ค๊ณ  ํŒ๋‹จ๋œ๋‹ค๋ฉด DTO๋ฅผ ์žฌํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5๏ธโƒฃ ๋งˆ๋ฌด๋ฆฌ.

  • ๋”ฐ๋ผ์„œ API์˜ ๋ชฉ์ ๊ณผ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ๋ฐฉ์‹์ด ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„๋˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด DTO๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ , ๊ทธ๋ ‡๊ธฐ ์•Š์€ ๊ฒฝ์šฐ ์žฌํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.