๊ฐ์ฒด์งํฅ (2) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [OOP] ๊ฐ์ฒด์งํฅ ์ค๊ณ ์๋ฆฌ ๊ฐ์ฒด์งํฅ ์ค๊ณ ์๋ฆฌ 1. SOLID SOLID๋ ๊ฐ์ฒด์งํฅ ์ค๊ณ ์๋ฆฌ ์ค ๊ฐ์ฅ ์ค์ํ ๋ค์ฏ๊ฐ์ง ์๋ฆฌ SRP(Single Responsibility Principle), OCP(Open-Closed Principle), LSP(LIskov Substitution Principle), ISP(Interface Substitution Principle), DIP(Dependency Inversion Principle)๋ฅผ ๋งํ๋ค. 1.1 SRP ๋จ์ผ ์ฑ ์ ์๋ฆฌ A class should have only one reason to change. ์ํํธ์จ์ด์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ค๊ณ ์๋ฆฌ ์ค ํ๋๋ ๋ชจ๋์ ์์ง์ฑ์ด ๋์์ผ ํ๋ค๋ ๊ฒ์ด๋ค. (high-cohesion) ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ๊ธฐ๋ณธ ๋ชจ๋์ ํด๋์ค์ด๋ค. SRP์.. [OOP]๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ 1. ์ญ์ฌ ๊ฐ์ฒด์งํฅ(OO, Object-Oriented) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ง๋ฐฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์๋ฆฌ์ก๊ธฐ ์ด์ ์ ๋๋ฆฌ ์ฌ์ฉ๋ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ FORTRAN, COBOL ๋ฑ์ด๋ค. C ์ธ์ด๋ 1972๋ ์ Bell Labs์ Dennis Ritchie๊ฐ ๊ฐ ๋ฐํ ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค. C ํ์ค์ 1983๋ ์ ์์๋์ด 1988๋ ์ ์ฒ์์ผ๋ก ํ์คํ๋์์ผ๋ฉฐ, ์ด๋ฅผ ANSI C ๋๋ ISO C๋ผ ํ๋ค. ๊ทธ ์ดํ C99, C11์ผ๋ก ํ์ค์ด ์ผ๋ถ ๊ฐ์ ๋์๋ค. C ์ธ์ด๋ ์ด์์ฒด์ ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์ธ์ด๋ก ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด์ง๋ง ํ๋์จ์ด์ ๋ฐ์ ํ ์์ค์ ์์๋ ํฌํจ๋์ด ์๋ค. ๋ํ ๋น์ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋ฐํ๋ ์์ฉ์ด ๋งค์ฐ ์ ํ์ ์ด์๋ค. ์ง๊ธ์ 4์ฐจ ์ฐ์ ํ๋ช , .. ์ด์ 1 ๋ค์