๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring

๐Ÿค” @RequestBody - DTO, Map ๋ฌด์—‡์„ ์„ ํƒํ• ๊นŒ?

๐Ÿ—ฃ ์„œ๋ก 

์ด๋ฉ”์ผ ์ค‘๋ณต ์ฒดํฌํ•˜๋Š” API๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์—ˆ๋‹ค. EmailCheckRequest DTO๋Š” email๋งŒ ์žˆ๋Š” DTO์ด๋‹ค.
์ตœ๊ทผ ๋ฌด์˜์‹์ ์œผ๋กœ DTO๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค. Map์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋Š”๋ฐ ๋‚˜๋งŒ์˜ ๊ธฐ์ค€์„ ์ •ํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๋‹ค.

public ApiResult<Boolean> checkEmail(@RequestBody EmailCheckRequest emailCheckRequest) {
...

 

๐Ÿ“Œ DTO, Map ์žฅ๋‹จ์ 

  DTO Map
์žฅ์  ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ถ”๊ฐ€์ ์ธ class๊ฐ€ ํ•„์š”์—†๋‹ค.
๋‹จ์  ํด๋ž˜์Šค๋ฅผ ๋งค๋ฒˆ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค.
DTD์— ๋Œ€ํ•œ ๋„ค์ด๋ฐ์„ ์ œ๋Œ€๋กœ ํ‘œํ˜„ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์šธ(?) ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ง์ ‘ key ๊ฐ’์„ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํœด๋จผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€๊ธˆ์ฒ˜๋Ÿผ 1๊ฐœ์ธ ๊ฒฝ์šฐ Map์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋‚ซ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์š”์ฒญ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ Map์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํŒŒ์•…ํ•˜๊ธฐ๋„ ์—ฌ๋Ÿฝ๊ณ , key๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๋‹ค ๋ณด๋ฉด ์‹ค์ˆ˜ํ•  ์—ฌ์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์œผ๋ฉด Map์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋‚ซ๊ณ , ๋งŽ๋‹ค๋ฉด DTO๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งž์ง€ ์•Š์„๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•œ๋‹ค.