https://blog.naver.com/raveneer/221820790399
Automapper! ์๋นํ ๊ฐ๋ ฅํ ๋งคํ ์๋ฃจ์ ์ธ๋ฐ. ์จ๋ณด๋ ์ ์๋๋ค ์ถ์ด์ ๋์์ ์ฐพ์๋ณด์๋ค.

์ ๊น. ๋งคํ์ด๋?
- ๋ฐ์ดํฐ ์ ์ฅ์ด๋ ํต์ ๋ฑ์ ํ ๋ ์๋ฆฌ์ผ๋ผ์ด์ง์ด ์ ๋๋ ๋ฐ์ดํฐ ๊ฐ์ฒด๋ฅผ ์ธ ๋๊ฐ ๋ง๋ค. ์ด๋ค์ DTO ๋ผ๊ณ ํ๋๋ฐ (DataTransferObject),ย ์ด DTO๋ฅผ ์ฃผ๊ฑฐ๋ ๋ฐ์ ๋, ํด๋์ค์ ๊ฐ์ DTO์ ๋ฃ์ด์ค์ผ ํ๋ค. ์ด๋ฅผ Mapping ์ด๋ผ ํจ.
Automapper ๊ฐ ์ ์ํฐํจํด์ธ๊ฐ?
Mapping ์ด ์๋๋ ๋๋ก ์ํ๋๋ค๋ ๋ณด์ฅ์ด ์๋ค!
class A {
public string Name;
}
class B{
public string name;
}
์ ๋ ํด๋์ค์ ๋งคํ์ ์๋ํ๋ฉด ์์ธ์์ด ์ํ๋๋ค.
๊ทธ๋ฌ๋ Name ๊ณผ name ์ ๊ธ์๊ฐ ๋ค๋ฅด๋ฏ๋ก, ์ค์ ๋ก๋ ๋งคํ๋์ง ์๋๋ค!!!
์๋๋ฉด Automapper๋ Reflection์ ์ด์ฉํด์ ๊ฐ ๋ณ์์ ์ด๋ฆ์ผ๋ก ๋งคํํ๊ธฐ ๋๋ฌธ์, Name != name ์ธ ๊ฒ.
๋ํ IDE ์์์ ๋งคํ์ด ์ผ์ด๋๋ ๊ฑธ ์ถ์ ํ ์๋ ์๋ค.ย
๋ฐ๋ผ์ Automapper๋ฅผ ์ฐ๋ฉด '๊ฐ์ฅ ์ด์์ ์ธ ๊ฒฝ์ฐ' ์๋ง ์ ์์๋ํ๊ณ , ์์์น ๋ชปํ ๋ฒ๊ทธ๊ฐ ์๊ธธ ์ฐ๋ ค๊ฐ ์ธ์ ๋ ์๋ค.
์ด๋ฐ ๊ฑธ ๋ณผ๋ Automappr๋ ์ํฐํจํด์ด๋ผ ์๊ฐํ๋ค.
๊ทธ๋ ๋ค๋ฉด ๋์์?
MappingGenerator ๋ผ๋ ๋๊ฒ์ด ์๋ค.
์ด๊ฒ์ vs ์ Roslyn ์ ์ด์ฉํ์ฌ ๋งคํ ์ฝ๋๋ฅผ ์์ฑํด๋ด๋ ๊ฒ์ธ๋ฐ (์ค๋ํซ์ฒ๋ผ)
์จ๋ณด๋ ๊ฐ๋ ฅํ๊ณ ํธํ๋ค.
https://github.com/cezarypiatek/MappingGenerator

PDD ์งํ์ค.
Post Apocalypse Driven Develop
๋๊ธ 1