๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Basics/Concepts

ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ์—ฐ๊ด€ ๊ด€๊ณ„ ์ข…๋ฅ˜์™€ ํ‘œํ˜„

by IworldT 2022. 3. 28.
๋ฐ˜์‘ํ˜•

 

์•ˆ๋…•ํ•˜์„ธ์š”!

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ , ๊ทธ ํด๋ž˜์Šค ๊ฐ„์˜ ๋…ผ๋ฆฌ์ /๋ฌผ๋ฆฌ์  ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์—ฐ๊ด€ ๊ด€๊ณ„์˜ ์ข…๋ฅ˜์™€ ์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ์˜ ํ™”์‚ดํ‘œ ๋“ฑ ํ‘œํ˜„ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 


ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ ๋ถ„์„

ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์€ ํด๋ž˜์Šค ๋„ค์ž„(Class name)๊ณผ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๊ทธ๋ฆฌ๊ณ  ์˜คํผ๋ ˆ์ด์…˜์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์„ธ ๊ฐ€์ง€๊ฐ€ ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์กด์žฌํ•˜๊ณ  ํด ๋ž˜์Šค ๋„ค์ž„, ์–ดํŠธ๋ฆฌ๋ทฐํŠธ, ์˜คํผ๋ ˆ์ด์…˜ ์ˆœ์œผ๋กœ ์œ„์—์„œ ์•„๋ž˜๋กœ ๋ฐฐ์น˜๋œ๋‹ค.

 

ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ ์˜ˆ์‹œ

 

์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ์†์„ฑ, ์˜คํผ๋ ˆ์ด์…˜์€ ๊ทธ ์†์„ฑ๋“ค๋กœ ์ˆ˜ํ–‰ํ•  ํ•จ์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 


ํด๋ž˜์Šค ๊ฐ„์˜ ์—ฐ๊ด€

์—ฐ๊ด€์€ ํด๋ž˜์Šค ๊ฐ„์˜ ๋…ผ๋ฆฌ์ /๋ฌผ๋ฆฌ์  ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์„ ๊ณผ ์„  ๋์˜ ๋จธ๋ฆฌ ๋ชจ์–‘์„ ํ†ตํ•ด ๊ด€๊ณ„๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

 

1. Dependency ์˜์กด ์—ฐ๊ด€ ๊ด€๊ณ„

ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์™€์˜ ์˜์กด์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ์˜์กด ํด๋ž˜์Šค์˜ ์ƒํƒœ ๋ณ€ ํ™”๋Š”, ์ฆ‰ ์ด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค์˜ ์ƒํƒœ ๋ณ€ํ™”(์˜์กด)๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

Dependency ์˜์กด ์—ฐ๊ด€

 

 

2. Association / Directed Association ์—ฐ๊ด€ ๊ด€๊ณ„ / ์ง์ ‘ ์—ฐ๊ด€ ๊ด€๊ณ„

Association์€ ๊ฐ์ฒด ๊ฐ„์˜ ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ์—์„œ Association ์€ ๋ณดํ†ต ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋กœ์˜ ์ฐธ์กฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ์ƒ๋Œ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋กœ ๊ฐ€์งˆ ๋•Œ Association Relationship(์—ฐ๊ด€ ๊ด€๊ณ„)์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด๋•Œ์˜ ๊ด€๊ณ„๋Š” ๋ช…๋ฃŒํ•œ ๋ชจ๋ธ๋ง์„ ํ•„์š”๋กœ ํ•˜๋ฉฐ, ๋ณดํ†ต ์–‘๋ฐฉํ–ฅ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” Association(Standard)๊ณผ ๋‹จ๋ฐฉํ–ฅ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” Directed Assocation์ด ์‚ฌ์šฉ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ๋‹ค.

Association / Directed Association ์—ฐ๊ด€ ๊ด€๊ณ„ / ์ง์ ‘ ์—ฐ๊ด€ ๊ด€๊ณ„

 

 

3. Aggregation ์ง‘ํ•ฉ ์—ฐ๊ด€

Association ๊ฐœ๋…์—์„œ ์กฐ๊ธˆ ๋” ํ™•์žฅ๋œ ๊ฐœ๋…์œผ๋กœ ์ „์ฒด์™€ ๋ถ€๋ถ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€ ๋‚ธ๋‹ค. ๋‘ ๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ์„œ๋กœ ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋ฉฐ ์ „์ฒด - ๋ถ€๋ถ„ ๊ด€๊ณ„๋ฅผ ๊ฐ€์งˆ ๋•Œ Aggregation์œผ๋กœ ํ‘œ๊ธฐํ•œ ๊ฒƒ์„ ํ™•์ธํ•œ๋‹ค.

Aggregation ์ง‘ํ•ฉ ์—ฐ๊ด€

 

 

4. Composition ํ•ฉ์„ฑ ์—ฐ๊ด€

Composition์€ Aggregation์ฒ˜๋Ÿผ ์ „์ฒด์™€ ๋ถ€๋ถ„์˜ ๊ด€๊ณ„๋ฅผ ๋„๊ณ  ์žˆ์ง€๋งŒ ๋ถ€๋ถ„์— ํ•ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์ด ์ „์ฒด๋ฅผ ์˜๋ฏธํ•˜๋Š” ํด๋ž˜์Šค์˜ ๋ผ์ดํ”„์‚ฌ์ดํด๊ณผ ๋™์ผํ•˜๋‹ค๋Š” ์ ์—์„œ ์ฐจ์ด์ ์„ ๋ณด์ด๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ๋‹ค.

Composition ํ•ฉ์„ฑ ์—ฐ๊ด€

 

 

5. Generalization ์ผ๋ฐ˜ํ™” ์—ฐ๊ด€ ๊ด€๊ณ„

Generalization์€ "is A" ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ๋‘ ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ์—์„œ๋Š” Generalization(์ผ๋ฐ˜ํ™”)๋ฅผ ๋ถ€๋ชจ ํด๋ž˜์Šค์™€ ์ž์‹ ํด๋ž˜์Šค๊ฐ„์˜ "์ƒ์†" ๊ด€๊ณ„๋กœ ํ•ด์„๋œ๋‹ค. ์ž์‹ ํด๋ž˜์Šค๋“ค์€ ๋ถ€๋ชจ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๋Š” ๊ณตํ†ต ํŠน์ง•(์†์„ฑ or ํ–‰๋™)์„ ๊ฐ€์ง„ ๊ฒƒ์„ ํ™•์ธํ•œ๋‹ค.

Generalization ์ผ๋ฐ˜ํ™” ์—ฐ๊ด€

 

 

6. Realization ์‹ค์ฒดํ™” ์—ฐ๊ด€ ๊ด€๊ณ„

๊ฐ์ฒด์ง€ํ–ฅ์—์„œ Realization์€ ๋ช…์„ธํ™”๋œ ํ˜น์€ ์ •์˜๋งŒ ๋œ ์˜คํผ๋ ˆ์ด์…˜์„ ์‹ค์ฒดํ™”ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ์ธํ„ฐํŽ˜์ด์Šค(Interface)๋กœ ๋ช…์„ธํ™”๋œ ๊ธฐ๋Šฅ์„ ์‹ค์ œ ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•˜๋Š”๋ฐ, ์ธํ„ฐํŽ˜์ด์Šค์˜ Implement๋กœ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

Realization ์‹ค์ฒดํ™” ์—ฐ๊ด€

 

 

 

์ด ๊ธ€์˜ ๋ชจ๋“  ์ถœ์ฒ˜๋Š” NCS ํ•™์Šต๋ชจ๋“ˆ ๊ต์œก์ž๋ฃŒ์— ์žˆ์Šต๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€