OOP

๐Ÿ“Œ Object Oriented Programming, ํ”„๋กœ๊ทธ๋žจ์„ Object ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ

  • Program = Object์˜ ์ƒํ˜ธ์ž‘์šฉ
    • Object = ๊ด€๋ จ ์žˆ๋Š” ํ•จ์ˆ˜(์—ฐ์‚ฐ)์™€ ๋ฐ์ดํ„ฐ์˜ Set, Program์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ถ€ํ’ˆ
  • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ โžก๏ธ Good Independence (๋…๋ฆฝ์„ฑ)
    1. Readability (๊ฐ€๋…์„ฑ): ํ•œ ๋ชจ๋“ˆ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์„ ์ดํ•ดํ•  ํ•„์š” ์—†์Œ
    2. Safety (์•ˆ์ „์„ฑ): ๋ชจ๋“ˆ ์•ˆ์˜ ๋ฐ์ดํ„ฐ์— ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์ด ์ ‘๊ทผํ•˜์ง€ ์•Š์•˜์Œ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Œ
  • ์„ค๊ณ„๋Š” Top-down, ๊ตฌํ˜„์€ Bottom-up
    โ†” Procedural (์ ˆ์ฐจ ์ง€ํ–ฅ)

๋ฐœ์ „ ์ˆœ์„œ

  1. Unstructured
  2. Procedural
    • Program = ๋ฐ์ดํ„ฐ + ํ•จ์ˆ˜ ํ˜ธ์ถœ์˜ Sequence
    • ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์–ด Reusability (์žฌ์‚ฌ์šฉ์„ฑ)๋ฅผ ๋†’์ž„
  3. Modular (Structured)
  4. OOP

๋ชฉ์ 

๋ฐฐ๊ฒฝ๊ณผ ๋™์ผ

  • ๊ธ‰๊ฒฉํžˆ ๋†’์•„์ง„ SW Complexity (SW Crisis)์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•จ

๊ฐœ๋…

  1. Abstraction (์ถ”์ƒํ™”), Data Abstraction, Encapsulation (์บก์Аํ™”), Information Hiding (์ •๋ณด ์€๋‹‰)
  2. Inheritance (์ƒ์†)
  3. Polymorphism (๋‹คํ˜•์„ฑ)