10. ํด๋ž˜์Šค

· โ˜• 4 min read · ๐Ÿ‘€... views

10. ํด๋ž˜์Šค

ํด๋ž˜์Šค ์ฒด๊ณ„

๊ณต๊ฐœ์—์„œ ๋น„๊ณต๊ฐœ ํ˜•์‹์œผ๋กœ ์ง„ํ–‰๋˜์–ด ์ถ”์ƒํ™” ๋‹จ๊ณ„๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚ด๋ ค๊ฐ„๋‹ค.

์บก์Šํ™”

๋ณ€์ˆ˜์™€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋Š” ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š” ํŽธ์ด ๋‚ซ์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ์ˆจ๊ฒจ์•ผ ํ•œ๋‹ค๋Š” ๋ฒ•์น™๋„ ์—†๋‹ค.

ํ…Œ์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด protected ๋„ ๊ณ ๋ คํ• ๋งŒํ•˜๋‹ค. ํ•˜์ง€๋งŒ, ๊ทธ ์ „์— ๋น„๊ณต๊ฐœ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์˜จ๊ฐ– ๋ฐฉ๋ฒ•์„ ๊ฐ•๊ตฌํ•œ๋‹ค.

์บก์Šํ™”๋ฅผ ํ’€์–ด์ฃผ๋Š” ๊ฒฐ์ •์€ ์–ธ์ œ๋‚˜ ์ตœํ›„์˜ ์ˆ˜๋‹จ์ด๋‹ค.

ํด๋ž˜์Šค๋Š” ์ž‘์•„์•ผ ํ•œ๋‹ค.

ํด๋ž˜์Šค๋Š” ์ž‘์•„์•ผ ํ•œ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ๋„ ํ•จ์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ‘์ž‘๊ฒŒ’ ๊ฐ€ ๊ธฐ๋ณธ ๊ทœ์น™์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์–ผ๋งˆ๋‚˜ ์ž‘์•„์•ผ ํ• ๊นŒ? ํ•จ์ˆ˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ํ–‰ ์ˆ˜๋กœ ํฌ๊ธฐ๋ฅผ ์ธก์ •ํ–ˆ๋‹ค.

ํด๋ž˜์Šค์—์„œ๋Š” ํด๋ž˜์Šค๊ฐ€ ๋งก์€ ์ฑ…์ž„์„ ์„ผ๋‹ค.

ํด๋ž˜์Šค ์ด๋ฆ„์€ ํ•ด๋‹น ํด๋ž˜์Šค ์ฑ…์ž„์„ ๊ธฐ์ˆ ํ•ด์•ผ ํ•œ๋‹ค.

์‹ค์ œ๋กœ ์ž‘๋ช…์€ ํด๋ž˜์Šค ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ์ฒซ ๋ฒˆ์งธ ๊ด€๋ฌธ์ด๋‹ค. ๊ฐ„๊ฒฐํ•œ ์ด๋ฆ„์ด ๋– ์˜ค๋ฅด์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ•„์‹œ ๋งก์€ ์—ญํ• ์ด ๋„ˆ๋ฌด ๋งŽ์ด ๋•Œ๋ฌธ์ด๋‹ค.

๋‹จ์ผ ์ฑ…์ž„ ์›์น™(SRP : Single Responsibility Principle)

ํด๋ž˜์Šค๋‚˜ ๋ชจ๋“ˆ์„ ๋ณ€๊ฒฝํ•  ์ด์œ ๊ฐ€ ํ•˜๋‚˜, ๋‹จ ํ•˜๋‚˜๋ฟ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค.

์ฑ…์ž„, ์ฆ‰ ๋ณ€๊ฒฝํ•  ์ด์œ ๋ฅผ ํŒŒ์•…ํ•˜๋ ค ์• ์“ฐ๋‹ค ๋ณด๋ฉด ์ฝ”๋“œ๋ฅผ ์ถ”์ƒํ™”ํ•˜๊ธฐ๋„ ์‰ฌ์›Œ์ง„๋‹ค. ๋” ์ข‹์€ ์ถ”์ƒํ™”๊ฐ€ ๋” ์‰ฝ๊ฒŒ ๋– ์˜ค๋ฅธ๋‹ค.

๋‹จ์ผ ์ฑ…์ž„ ์›์น™์€ ์„ค๊ณ„์ž๊ฐ€ ๊ฐ€์žฅ ๋ฌด์‹œํ•˜๋Š” ๊ทœ์น™์ค‘ ํ•˜๋‚˜์ด๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋Œ์•„๊ฐ€๊ฒŒ ๋งŒ๋“œ๋Š” ํ™œ๋™๊ณผ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ํ™œ๋™์€ ์™„์ „ํžˆ ๋ณ„๊ฐœ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ฃผ๋กœ ‘๊นจ๋—ํ•œ’ ๋ณด๋‹ค๋Š” ‘๋Œ์•„๊ฐ€๋Š”’ ์— ์ดˆ์ ์„ ๋งž์ถ”๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋ฌผ๋ก  ์ค‘์š”ํ•˜๊ธด ํ•˜์ง€๋งŒ, ๋ฌธ์ œ๋Š” ๋Œ์•„๊ฐ€๋Š” ๋ฐ์—์„œ ๋๋‚ธ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ ๊ด€์‹ฌ์‚ฌ์ธ ๊นจ๋—ํ•œ ์—๋Š” ๊ด€์‹ฌ์„ ๊ธฐ์šธ์ด์ง€ ์•Š๋Š”๋‹ค.

๊ทœ๋ชจ๊ฐ€ ์–ด๋Š์ •๋„ ๋˜๋Š” ์‹œ์Šคํ…œ์€ ๋…ผ๋ฆฌ๊ฐ€ ๋งŽ๊ณ  ๋ณต์žกํ•˜๋‹ค.

์ด๋Ÿฐ ๋ณต์žก์„ฑ์„ ๋‹ค๋ฃจ๋ ค๋ฉด ์ฒด๊ณ„์ ์ธ ์ •๋ฆฌ๊ฐ€ ํ•„์ˆ˜๋‹ค.

๊ทธ๋ž˜์•ผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ด๋””์— ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฝ์„ ํ–ˆ์„ ๋•Œ ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ปดํฌ๋„ŒํŠธ๋งŒ ์•Œ์•„๋„ ์ถฉ๋ถ„ํ•˜๋‹ค.

ํฐ ํด๋ž˜์Šค ๋ช‡ ๊ฐœ๋กœ ์ด๋ค„์ง„ ๊ฒƒ๋ณด๋‹ค ์ž‘์€ ํด๋ž˜์Šค ์—ฌ๋Ÿฟ์œผ๋กœ ์ด๋ค„์ง„ ์‹œ์Šคํ…œ์ด ํ›จ์”ฌ ๋ฐ”๋žŒ์งํ•˜๋‹ค

์‘์ง‘๋„

ํด๋ž˜์Šค๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ˆ˜๊ฐ€ ์ž‘์•„์•ผ ํ•œ๋‹ค.

๊ฐ ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”์„œ๋“œ๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ• ์ˆ˜๋ก ๋ฉ”์„œ๋“œ์™€ ํด๋ž˜์Šค๋Š” ์‘์ง‘๋„๊ฐ€ ๋” ๋†’๋‹ค.

‘ํ•จ์ˆ˜๋ฅผ ์ž‘๊ฒŒ, ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก์„ ์งง๊ฒŒ’ ๋ผ๋Š” ์ „๋žต์„ ๋”ฐ๋ฅด๋‹ค๋ณด๋ฉด ๋•Œ๋•Œ๋กœ ๋ช‡๋ช‡ ๋ฉ”์„œ๋“œ ๋งŒ์ด ์‚ฌ์šฉํ•˜๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ,

์ด๋Š” ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋กœ ์ชผ๊ฐœ์•ผ ํ•œ๋‹ค๋Š” ์‹ ํ˜ธ๋‹ค.

์‘์ง‘๋„๋ฅผ ์œ ์ง€ํ•˜๋ฉด ์ž‘์€ ํด๋ž˜์Šค ์—ฌ๋Ÿฟ์ด ๋‚˜์˜จ๋‹ค.

๋ณ€๊ฒฝํ•˜๊ธฐ ์‰ฌ์šด ํด๋ž˜์Šค

๋Œ€๋‹ค์ˆ˜ ์‹œ์Šคํ…œ์€ ์ง€์†์ ์ธ ๋ณ€๊ฒฝ์ด ๊ฐ€ํ•ด์ง„๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ญ”๊ฐ€ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ์‹œ์Šคํ…œ์ด ์˜๋„๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์œ„ํ—˜์ด ๋”ฐ๋ฅธ๋‹ค.

์ƒˆ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•  ๋•Œ ๊ฑด๋“œ๋ฆด ์ฝ”๋“œ๊ฐ€ ์ตœ์†Œ์ธ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋žŒ์งํ•˜๋‹ค.

์ด์ƒ์ ์ธ ์‹œ์Šคํ…œ์ด๋ผ๋ฉด ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์‹œ์Šคํ…œ์„ ํ™•์žฅํ•  ๋ฟ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

๋ณ€๊ฒฝ์œผ๋กœ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌ

์š”๊ตฌ์‚ฌํ•ญ์€ ๋ณ€ํ•˜๊ธฐ ๋งˆ๋ จ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋„ ๋ณ€ํ•˜๊ธฐ ๋งˆ๋ จ์ด๋‹ค.

๊ฐ์ฒด ์ง€ํ–ฅ์—์„œ ๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค๋Š” ์ƒ์„ธํ•œ ๊ตฌํ˜„์„ ํฌํ•จํ•˜๋ฉฐ ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๊ฐœ๋…๋งŒ ํฌํ•จํ•œ๋‹ค๊ณ  ๋ฐฐ์› ๋‹ค.

์ƒ์„ธํ•œ ๊ตฌํ˜„์ด ์˜์กดํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ํด๋ž˜์Šค๋Š” ๊ตฌํ˜„์ด ๋ฐ”๋€Œ๋ฉด ์œ„ํ—˜์— ๋น ์ง„๋‹ค.

๊ทธ๋ ‡๊ธฐ์— ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ๊ฒฉ๋ฆฌํ•œ๋‹ค.

์‹œ์Šคํ…œ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋ฉด ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ๋„ ๋”์šฑ ๋†’์•„์ง„๋‹ค.

๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ๋‹ค๋Š” ์†Œ๋ฆฌ๋Š” ๊ฐ ์‹œ์Šคํ…œ ์š”์†Œ๊ฐ€ ๋‹ค๋ฅธ ์š”์†Œ๋กœ๋ถ€ํ„ฐ ๊ทธ๋ฆฌ๊ณ  ๋ณ€๊ฒฝ์œผ๋กœ๋ถ€ํ„ฐ ์ž˜ ๊ฒฉ๋ฆฌ๋˜์–ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋‹ค.

๊ฒฐํ•ฉ๋„๋ฅผ ์ตœ์†Œ๋กœ ์ค„์ด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋˜ ๋‹ค๋ฅธ ํด๋ž˜์Šค ์„ค๊ณ„ ์›์น™์ธ

DIP (Dependency Inversion Principle) ๋ฅผ ๋”ฐ๋ฅธ ํด๋ž˜์Šค๊ฐ€ ๋‚˜์˜จ๋‹ค.

์ด ์›์น™์€ ์ƒ์„ธํ•œ ๊ตฌํ˜„์ด ์•„๋‹ˆ๋ผ ์ถ”์ƒํ™”์— ์˜์กดํ•ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค.

์‚ฌ๊ฒฌ์„ ๋ง๋ถ™์ด๋ฉด…?

์ด๋ฒˆ ์žฅ์€ ์ง์ ‘ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ”๋“œ๊ฐ€ ๋งŽ์€ ์žฅ์ด๋‹ค. ์‚ด์ง ๊ณ ๋ฏผ์„ ํ•˜๊ธด ํ–ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋„ฃ์„์ง€ ๋ง์ง€.

ํ•˜์ง€๋งŒ, ์ด ์ •๋ฆฌ๋ฅผ ํ•  ๋•Œ ‘์ตœ๋Œ€ํ•œ ๊ธ€ ์œ„์ฃผ๋กœ ํ•˜์ž’ ๋ž€ ์ƒ๊ฐ์„ ํ–ˆ๊ธฐ์—..

์„œ๋ก ์€ ๋„˜์–ด๊ฐ€๊ณ , ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ํ•ญ์ƒ ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์–ด๋””์— ์œ„์น˜ํ•˜๋ฉด ์ข‹์„์ง€, ์ด ํด๋ž˜์Šค๊ฐ€ ์–ด๋Š๋ถ€๋ถ„๊นŒ์ง€ ์—ญํ• ์„ ๋งก์•„์•ผ ํ•˜๋Š”์ง€ ๊ณ ๋ฏผํ•˜๋Š” ๋‚˜์—๊ฒ

์ด๋ฒˆ ๋‹จ์ผ์ฑ…์ž„์›์น™ ์€ ๊ณ ๊ฐœ๋ฅผ ๋„๋•์ด๊ฒŒ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์•„์ง๊นŒ์ง€ ๊ตฌํ˜„์ด ์šฐ์„ ์ธ ์ƒํ™œ์„ ํ•˜๋Š” ๋‚˜์—๊ฒ ์ •๋ฆฌ๊ฐ€ ์‰ฝ์ง„ ์•Š๋‹ค.

๊ทธ๋ž˜๋„ ์–ด๋Š์ •๋„ ์ฑ…์œผ๋กœ ๋ฐฐ์šด ์˜ˆ์ธก ํ†ตํ•ด ํ‰์†Œ์— ์กฐ๊ธˆ์กฐ๊ธˆ์”ฉ ์ˆ˜์ •ํ•˜๋Š” ๋งˆ์Œ๊ฐ€์ง์„ ๊ฐ€์ ธ์•ผ๊ฒ ์ง€

Share on

snack
WRITTEN BY
snack
Web Programmer


What's on this Page