Model Mapper

์‰ฝ๊ฒŒ ๊ฐ์ฒด์˜ ํ•„๋“œ ๊ฐ’์„ ๋‹ค๋ฅธ ํด๋ž˜์Šค(๊ฐ์ฒด)๋กœ ๋ณต์‚ฌ(mapping)์„ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

Entity๋ฅผ ํ†ตํ•ด DB์—์„œ ๋ฐ›์•„์˜จ ๊ฐ’ ์ค‘ ์š”์ฒญ์— ๋„˜๊ฒจ์ฃผ๊ธฐ ์‹ซ์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ผ๋˜์ง€, ์š”์ฒญ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ค‘ Entity๋กœ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋„˜๊ฒจ์ฃผ๊ธฐ ์œ„ํ•ด JackSon Json ์–ด๋…ธํ…Œ์ด์…˜ ๋‚ด๋ถ€์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ๋กœ ํŠน์ • ํ”„๋กœํผํ‹ฐ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ณด๋‚ด์ค„ ์ˆ˜ ์žˆ๊ณ , DTO๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด DTO๊ฐ์ฒด๋กœ convert ์‹œํ‚จ ํ›„์— ๋„˜๊ฒจ ์ค„ ์ˆ˜๋„ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๋•Œ, DTO๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋‚ด๋ ค๊ณ  ํ•œ๋‹ค๋ฉด, ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ผ์ผํžˆ ๋ณต์‚ฌ ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋…ธ๊ฐ€๋‹ค๊ฐ€ ๋ฐœ์ƒ์„ ํ•˜๊ฒŒ ๋˜์–ด ์ด๋ฅผ mapํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์†์‰ฝ๊ฒŒ ๋งตํ•‘ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

์‚ฌ์šฉ๋ฒ•

  1. ์˜์กด์„ฑ ์ถ”๊ฐ€

    maven์ด๋‚˜ gradle์— ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

  2. @bean์œผ๋กœ ModelMapper์„ ๋งŒ๋“ค์–ด ์„ค์ •ํ•œ๋‹ค

  3. Controller์—์„œ ์˜์กด์„ฑ์„ ์ฃผ์ž…๋ฐ›์•„ modelMapper๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

Event event = modelMapper.map(eventDto,Event.class);

๋‹จ์ 

๋ฆฌํ”Œ๋ ‰์…˜์ด ๋ฐœ์ƒํ•ด ์ง์ ‘ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ๋ณด๋‹จ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค.

๋ฆฌํ”Œ๋ ‰์…˜ ๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค ํƒ€์ž…์„ ์•Œ์ง€ ๋ชปํ•ด๋„, ๊ทธ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ/ํƒ€์ž…/๋ณ€์ˆ˜๋“ค์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ž๋ฐ” API

๋Œ€ํ‘œ์ ์œผ๋กœ DI,Proxy,ModelMapper,Hibernate,JackSon์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. ์ปดํŒŒ์ผํ•œ ํด๋ž˜์Šค ์ •๋ณด๋ฅผ ํ™œ์šฉํ•ด ๋™์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์ง€์›ํ•˜๋Š” API

Last updated