๊ฐ์ฒด์ง€ํ–ฅ ๋ถ„์„(OOA, Object Orientied Analysis)๋Š” ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ถ„์„ํ•˜์—ฌ

์š”๊ตฌ๋œ ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํด๋ž˜์Šค(๊ฐ์ฒด) ์ด์™€ ๊ด€๋ จ๋œ ์†์„ฑ, ์—ฐ์‚ฐ, ๊ทธ๋“ค ๊ฐ„์˜ ๊ด€๊ณ„ ๋“ฑ์„ ์ •์˜ํ•˜์—ฌ ๋ชจ๋ธ๋งํ•˜๋Š” ์ž‘์—…

 

๊ฐ์ฒด์ง€ํ–ฅ ๋ถ„์„์˜ ๋ฐฉ๋ฒ•๋ก 

  • Rumbaugh(๋Ÿผ๋ฐ”์šฐ) ๋ฐฉ๋ฒ•๐ŸŽŠ
  • Booch(๋ถ€์น˜) ๋ฐฉ๋ฒ• - ๋ฏธ์‹œ์ , ๊ฑฐ์‹œ์  ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉ
  • Jacobson ๋ฐฉ๋ฒ• - Use Case๋ฅผ ๊ฐ•์กฐ
  • Coad์™€ Yourdon ๋ฐฉ๋ฒ• - E-R ๋‹ค์ด์–ด๊ทธ๋žจ ์‚ฌ์šฉ
  • Wirfs-Brock ๋ฐฉ๋ฒ• - ๊ณ ๊ฐ ๋ช…์„ธ์„œ๋ฅผ ํ‰๊ฐ€ํ•ด์„œ ์„ค๊ณ„๊นŒ์ง€ ์—ฐ์†์œผ๋กœ ์ˆ˜ํ–‰

 

๋Ÿผ๋ฐ”์šฐ(Rumbaugh)์˜ ๋ถ„์„ ๊ธฐ๋ฒ•

๋Ÿผ๋ฐ”์šฐ์˜ ๋ถ„์„ ๊ธฐ๋ฒ•์€ ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ทธ๋ž˜ํ”ฝ ํ‘œ๊ธฐ๋ฒ•๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชจ๋ธ๋ง

  • ๊ฐ์ฒด ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ•(OMT, Object-Modeling Technique)
  • ๋ถ„์„ํ™œ๋™์€ ๊ฐ์ฒด→๋™์ →๊ธฐ๋Šฅ ๋ชจ๋ธ๋ง ์ˆœ์œผ๋กœ ์ด๋ค„์ง

 

1. ๊ฐ์ฒด ๋ชจ๋ธ๋ง

์‹œ์Šคํ…œ์—์„œ ์š”๊ตฌ๋˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐพ์•„๋‚ด ์†์„ฑ๊ณผ ์—ฐ์‚ฐ ์‹๋ณ„ ๋ฐ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ทœ์ •ํ•˜์—ฌ ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ํ‘œ์‹œ

๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ (์ถœ์ฒ˜:์œ„ํ‚ค๋ฐฑ๊ณผ)

 

2. ๋™์  ๋ชจ๋ธ๋ง

์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ด์šฉํ•˜์—ฌ ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ฅธ ๊ฐ์ฒด ๊ฐ„์˜ ์ œ์–ด ํ๋ฆ„, ์ƒํ˜ธ ์ž‘์šฉ, ๋™์ž‘ ์ˆœ์„œ ๋“ฑ ๋™์ ์ธ ํ–‰์œ„ ํ‘œํ˜„ 

์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ (๋ฌธ์—ด๊ธฐ์™€ ๋‹ซ๊ธฐ, ์ถœ์ฒ˜: ์œ„ํ‚ค๋ฐฑ๊ณผ)

 

3. ๊ธฐ๋Šฅ ๋ชจ๋ธ๋ง

์ž๋ฃŒ ํ๋ฆ„๋„๋ฅผ์ด์šฉํ•˜์—ฌ ๋‹ค์ˆ˜์˜ ํ”„๋กœ์„ธ์Šค๋“ค ๊ฐ„์˜ ์ž๋ฃŒํ๋ฆ„์„ ์ค‘์‹ฌ์œผ๋กœ ์ฒ˜๋ฆฌ๊ณผ์ •์„ ํ‘œํ˜„

์ž๋ฃŒํ๋ฆ„๋„(์ถœ์ฒ˜:์œ„ํ‚ค๋ฐฑ๊ณผ)

 

 

๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ (SOLID ์›์น™)

SRP, Single Responsibility Principle ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ ๊ฐ์ฒด๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ฑ…์ž„
(์‘์ง‘๋„ โฌ† , ๊ฒฐํ•ฉ๋„ โฌ‡)
OCP, Open-Closed Principle ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ ๊ธฐ์กด์˜ ์ฝ”๋“œ ์ˆ˜์ •์— ํ์‡„โŽ ๊ธฐ๋Šฅ ํ™•์žฅโœ…
(๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ฌถ์–ด ์บก์Аํ™”)
LSP, Liskov Substitution Principle ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ ์ž์‹ ํด๋ž˜์Šค๋Š” ์ตœ์†Œํ•œ ์ž์‹ ์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ ๊ฐ€๋Šฅํ•œ ํ–‰์œ„๋Š” ์ˆ˜ํ–‰ (์ž์‹ ํด๋ž˜์Šค๋Š” ํ™•์žฅ๋งŒ ์ˆ˜ํ–‰) ๐Ÿ‘ฉ๐Ÿ‘ถ
ISP, Interface Segregation Principle ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™ ์ž์‹ ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ธํ„ฐํŽ˜์ด์Šค์™€ ์˜์กด ๊ด€๊ณ„ โŒ
(SRP๋Š” ๊ฐ์ฒด ํ•˜๋‚˜, ISP๋Š” ์ธํ„ฐํŽ˜์ด์Šค ํ•˜๋‚˜์˜ ์ฑ…์ž„)
DIP, Dependency Inversion Principle ์˜์กด ์—ญ์ „ ์›์น™ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๊ฐ€ ์„ฑ๋ฆฝ๋  ๋•Œ, ์ถ”์ƒ์„ฑ์ด ๋†’์€ ํด๋ž˜์Šค์™€์˜ ์˜์กด๊ด€๊ณ„๋ฅผ ๋งบ๋Š”๋‹ค. (์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ) ๐Ÿš—/๐Ÿš“๐ŸšŒ๐Ÿš–

 

* ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™๊ณผ ์˜์กด ์—ญ์ „ ์›์น™์€ ๊ฐœ๋ฐฉ ํ์‡„ ์›์น™์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐฉ ํ์‡„ ์›์น™์€ ๋ณ€ํ™”๋˜๋Š” ๋ถ€๋ถ„์„ ์ถ”์ƒํ™”ํ•˜๊ณ  ๋‹คํ˜•์„ฑ์„ ์ด์šฉํ•จ์œผ๋กœ์จ ๊ธฐ๋Šฅ ํ™•์žฅ์„ ํ•˜๋ฉด์„œ๋„ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์•Š๋„๋ก ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ, ๋ณ€ํ™”๋˜๋Š” ๋ถ€๋ถ„์„ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์›์น™์ด ๋ฐ”๋กœ ์˜์กด ์—ญ์ „ ์›์น™์ด๊ณ , ๋‹คํ˜•์„ฑ์„ ๋„์™€์ฃผ๋Š” ์›์น™์ด ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

(์ถœ์ฒ˜-https://steady-coding.tistory.com/388)

 

 

์ฐธ์กฐ 

- 2021 ์‹œ๋‚˜๊ณต ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ (๊ธธ๋ฒ—)

+ Recent posts