๊ธฐ์ตํด ๋๊ฑฐ๋ผ. ์ถ์ํ, ์์, ๋คํ์ฑ์ด๋ ๊ฐ๋
์ ์์๋ค๊ณ ํด์ ๋ค๊ฐ ํ๋ฅญํ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์๊ฐ ๋๋ ๊ฒ์ ์๋์ง์ด๋ค. ์ง์ ํ ๊ตฌ๋ฃจ๋ ์ด๋ป๊ฒ ํ๋ฉดย ์ ์ฐ์ฑ์ ๊ฐ๋๋ก ์ค๊ณ๋ฅผ ํ์ฌ,ย ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๊ณ ย ๋ณํ์ ๋ฅ๋์ ์ผ๋ก ๋์ํ ์ง์ ๊ดํด ๊ณ ๋ฏผ์ ํ๋ค. (์๊ฒ ๋๋จ?)
Remember, knowing concepts abstraction, inheritance, and polymorphism do not make you a good object oriented designer. A design guru thinks about how to createย flexibleย designs that areย maintainableย and that can cope withย change.
guruํฑํ ์์ธ๋ก ์์์๋ ์ด๋ค ์ธ๋์ฌ์ ์(in Head First Design Pattern)
Stroustrup ์ด C๋ฅผ ์ ๊ปด๋๊ณ C++๋ฅผ ๋ง๋ค ๋ ์ถ๊ตฌํ๋ ๋ชฉํ ์ค ํ๋๋ ์๋ ํฅ์์ด ์๋๋ผ ์ ์ง๋ณด์์ฑ ํฅ์์ด ์๋์์๊น? ๋ค์ ๋งํ์๋ฉด ๊ทธ์ ๋ชฉํ๋ C๋ณด๋ค ๋์ ์ ์ง๋ณด์์ฑ์ ๊ฐ์ถ ์ธ์ด๋ฅผ ๋ง๋๋ ๊ฒ์ ์์ง ์์์๊น?
์๋ ์ข๋ ์ผ๋ฐํํ์ฌ, Object Oriented Programming์ด๋ผ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ํ์ ๋ฐฐ๊ฒฝ์๋ ๋ณด๋ค ๋์ ์ ์ง๋ณด์์ฑ์ ๊ฐ์ถ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ๋ก ์ด๋ผ๋ ๋ชฉํ๊ฐ ๋ด๊ฒจ์์ง ์์์๊น?
๊ทธ๋ฌํ ์ต์ข
๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ๊ทธ๋ค(OOP์ ์ ๊ตฌ์๋ค)์ ์ฝ๋ ๊ฐ๋
์ฑ(readibility)์ ๋์ด๋ ๋ฐ ๋ ๋ง์ ์ ๊ฒฝ์ ์ฐ์ง ์์์๊น?
์ ์ฅ.. ๋น์ฅ์ ์ฐ๊ณ ์๋ ์ธ์ด, ๋ด ๋ฐฅ์ค์ ์ก๊ณ ์๋ ์ธ์ด.. ์ฌ๊ธฐ์ ๋ด๊ธด ์ ์์์ ์๋๋ฅผ ์ด์ ์์ผ ํ์
ํ๋ ค ํ๊ณ ์๋ค.. ํํ..
p.s. ๋ง์ฝ ๋์ ์๊ฐ์ด ๋ง๋ค๋ฉด.. ๊ทธ๋ค ์ญ์ ๋์ฒ๋ผ ์ ์ง๋ณด์ํ๋ ๋ฐ์ ๋ฅ๋น ์ง๋๋ก ๊ณ ์ํ์์ ๊ฒ์ด ๋ถ๋ช
ํ๋ค.. ์ค์ฃฝ ๊ณ ์ํ์ผ๋ฉด ์๋๊ฐ๋ ์ธ์ด(C)๋ฅผ ๋๋๊ณ ์๋ก ๋ง๋ค ์๊ฐ๊น์ง๋ ํ๊ฒ ์ด?




