--- id: P-REINFORCE-AI-DTO category: "10_Wiki/๐Ÿ’ก Topics/AI" confidence_score: 0.99 tags: [SoftwareEngineering, DesignPatterns, DTO, Performance] last_reinforced: 2026-04-20 --- # [[Data-Transfer-Object-Design]] (๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ์ฒด ์„ค๊ณ„) ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > "๋ฐฐ๋‹ฌ ๋ฐ•์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํฌ์žฅํ•˜์—ฌ ์™•๋ณต ํšŸ์ˆ˜๋ฅผ ์ค„์ด๋Š” ์ผ." ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด์„œ ์ „๋‹ฌํ•จ์œผ๋กœ์จ ๋„คํŠธ์›Œํฌ ๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๊ณ  ๋ ˆ์ด์–ด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ์ˆœ์ˆ˜ ๋ฐ์ดํ„ฐ ๋ฐ”๊ตฌ๋‹ˆ๋‹ค. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **Definition**: - ๋กœ์ง(Behavior)์„ ๊ฐ€์ง€์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ(Properties)๋งŒ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด. - ์ฃผ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„, ๋˜๋Š” ์„œ๋น„์Šค ๋ ˆ์ด์–ด์™€ ์ปจํŠธ๋กค๋Ÿฌ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. - **Role**: - **Contract Separation**: DB ์—”ํ‹ฐํ‹ฐ(Entity)๋ฅผ ์™ธ๋ถ€์— ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ๊ณจ๋ผ ๋‹ด์•„ ๋ณด์•ˆ ๋ฐ ๊ตฌ์กฐ์  ์œ ์—ฐ์„ฑ ํ™•๋ณด. - **Performance**: ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ํ˜ธ์ถœ(Fine-grained)์„ ํ•œ ๋ฒˆ์˜ ๋ญ‰ํ……์ด ํ˜ธ์ถœ(Coarse-grained)๋กœ ๋ฐ”๊ฟ” ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ์ตœ์†Œํ™”. - **Comparison**: **Entity**(DB์™€ 1:1 ๋งค์นญ, ๋กœ์ง ํฌํ•จ ๊ฐ€๋Šฅ) vs **DTO**(์ „์†ก์šฉ, ์ง๋ ฌํ™” ํ•„์ˆ˜). ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (RL Update) - ์—”ํ‹ฐํ‹ฐ์™€ DTO๊ฐ€ ๊ฑฐ์˜ ๋™์ผํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ '์ค‘๋ณต ์ฝ”๋“œ'๋ผ๋Š” ๋น„ํŒ์„ ๋ฐ›๊ธฐ๋„ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์‹œ์Šคํ…œ์ด ์ปค์งˆ์ˆ˜๋ก ์—”ํ‹ฐํ‹ฐ์˜ ๋ณ€๊ฒฝ์ด API ์ŠคํŽ™์„ ๊ฐ•์ œ๋กœ ๋ฐ”๊พธ๋Š” ๋Œ€์ฐธ์‚ฌ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ์ด ๋ถ„๋ฆฌ๋Š” ํ•„์ˆ˜์ ์ธ ๋ณดํ—˜์ด๋‹ค. ์ตœ๊ทผ์—๋Š” AutoMapper ๊ฐ™์€ ๋„๊ตฌ๋กœ ์ด ๋ณ€ํ™˜ ๊ณผ์ •์„ ์ž๋™ํ™”ํ•˜๊ฑฐ๋‚˜, Java์˜ `record` ๊ฐ™์€ ๊ฐ„๊ฒฐํ•œ ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•œ๋‹ค. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - Related: Domain-Driven-Design (DDD) , Software-Architecture - Contra: Active-Record-Pattern