RSS DEV ์ปค๋ฎค๋‹ˆํ‹ฐ

๐ŸŒณ ์ปดํฌ์ง€ํŠธ ๋””์ž์ธ ํŒจํ„ด โ€” ์ž๋ฐ” LLD + UML + ์‹ค์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€

์ปดํฌ์ง€ํŠธ ํŒจํ„ด์€ ๊ตฌ์กฐ์  ์„ค๊ณ„ ํŒจํ„ด์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐœ๋ณ„ ๊ฐ์ฒด์™€ ๊ฐ์ฒด ๊ทธ๋ฃน์„ ๊ท ์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ, UI, ์กฐ์ง๋„ ๋“ฑ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, 'has-a' ๊ด€๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ๊ท€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌํ”„ ๋…ธ๋“œ์™€ ์ปดํฌ์ง€ํŠธ ๋…ธ๋“œ๋ฅผ ๊ท ์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ปดํฌ์ง€ํŠธ ํŒจํ„ด์—์„œ๋Š” ๊ฐœ๋ณ„ ๊ฐ์ฒด์™€ ์ปดํฌ์ง€์…˜์„ ๊ท ์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜์—ฌ ์žฌ๊ท€์  ๊ตฌ์„ฑ๊ณผ ๊ณ„์ธต์  ํƒ์ƒ‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์€ ๊ท ์ผ์„ฑ, ์žฌ๊ท€์  ๊ตฌ์„ฑ, ์˜คํ”ˆ/ํด๋กœ์ฆˆ๋“œ ์›์น™์„ ๋”ฐ๋ฅด๋ฏ€๋กœ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋Œ€๊ทœ๋ชจ ํŠธ๋ฆฌ์—์„œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์˜ ๊นŠ์€ ํƒ์ƒ‰์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ปดํฌ์ง€ํŠธ ํŒจํ„ด์€ ํŒŒ์ผ ์‹œ์Šคํ…œ, ๋ฉ”๋‰ด, UI ํŠธ๋ฆฌ, ์กฐ์ง๋„ ๋“ฑ ํŠธ๋ฆฌ์™€ ๊ฐ™์€ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” java.awt.Component์™€ javax.swing.JComponent์—์„œ ์ปดํฌ์ง€ํŠธ ํŒจํ„ด์˜ ์˜ˆ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์€ ๋ฌธ์ œ ๋„๋ฉ”์ธ์ด ์žฌ๊ท€์  ํƒ์ƒ‰ ๋˜๋Š” ๊ทธ๋ฃน-๋ฆฌํ”„ ๊ด€๊ณ„๋ฅผ ์š”๊ตฌํ•  ๋•Œ ์œ ์šฉํ•˜๋ฉฐ, ์ปดํฌ์ง€ํŠธ ์›์น™์— ๋”ฐ๋ผ ๊ฐœ๋ณ„ ๊ฐ์ฒด์™€ ์ปดํฌ์ง€ํŠธ๋ฅผ ๊ท ์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ปดํฌ์ง€ํŠธ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐœ๋ณ„ ๊ฐ์ฒด์™€ ๊ฐ์ฒด ๊ทธ๋ฃน์„ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์œ ์—ฐํ•˜๊ณ  ์ค‘์ฒฉ๋œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
favicon
dev.to
๐ŸŒณ Composite Design Pattern โ€” Java LLD + UML + Real Use Cases