Arthur's Blog
๊ฐ์ฒด์งํฅ 5๋ ์์น ๋ณธ๋ฌธ
๐ ์ ์
SRP(Single Responsiblity Principle) ๋จ์ผ ์ฑ ์ ์์น
์ํํธ์จ์ด์ ์ค๊ณ ๋ถํ(ํด๋์ค, ํจ์ ๋ฑ)์ ๋จ ํ๋์ ์ฑ ์๋ง์ ๊ฐ์ ธ์ผ ํ๋ค.
์ฑ ์์ ๊ธฐ๋ฅ์ผ๋ก ํด์ํ๋ฉด ๋๋ค.
OCP(Open-Closed Pinciple) ๊ฐ๋ฐฉ-ํ์ ์์น
๊ธฐ์กด์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ (Closed), ๊ธฐ๋ฅ์ ์์ ํ๊ฑฐ๋ ์ถ๊ฐํ ์ ์๋๋ก(Open) ์ค๊ณํด์ผ ํ๋ค.
๋ณ๊ฒฝ๋๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์ด์ ์ ๋ง์ถ๋ค. ์ฆ, ์์ฃผ ๋ณ๊ฒฝ๋๋ ๋ด์ฉ์ ์์ ํ๊ธฐ ์ฝ๊ฒ ์ค๊ณํ๊ณ , ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ๊ฒ์ ์์ ๋๋ ๋ด์ฉ์ ์ํฅ์ ๋ฐ์ง ์๋ ๊ฒ.์ด๋ฅผ ์ํด ์ธํฐํ์ด์ค๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ค.
LSP(Liskov Substitution Principle) ๋ฆฌ์ค์ฝํ ์นํ ์์น
์์ํด๋์ค๋ ๋ถ๋ชจํด๋์ค์์ ๊ฐ๋ฅํ ํ์๋ฅผ ์ํํ ์ ์์ด์ผ ํ๋ค.
์์ ๊ด๊ณ์์๋ ์ผ๋ฐํ ๊ด๊ณ(IS-A)๊ฐ ์ฑ๋ฆฝํด์ผ ํ๋ค. ์ผ๋ฐํ ๊ด๊ณ์ ์๋ค๋ ๊ฒ์ ์ผ๊ด์ฑ์ด ์๋ค๋ ๊ฒ์ด๋ค.
DIP(Dependency Inversion Principle) ์์กด ์ญ์ ์์น
์์กด ๊ด๊ณ๋ฅผ ๋งบ์ ๋, ๋ณํํ๊ธฐ ์ฌ์ด ๊ฒ๋ณด๋จ ๋ณํํ๊ธฐ ์ด๋ ค์ด ๊ฒ์ ์์กดํด์ผ ํ๋ค๋ ์์น์ด๋ค.
DIP๋ฅผ ๋ง์กฑํ๋ค๋ ๊ฒ์ ์์กด๊ด๊ณ๋ฅผ ๋งบ์ ๋, ๊ตฌ์ฒด์ ์ธ ํด๋์ค๋ณด๋ค ์ธํฐํ์ด์ค๋ ์ถ์ํด๋์ค์ ๊ด๊ณ๋ฅผ ๋งบ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
ISP(Interface Segregation Principle)
์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์นํ ํด๋์ค๋ ์์ ์ด ์ฌ์ฉํ์ง ์๋ ์ธํฐํ์ด์ค๋ ๊ตฌํํ์ง ๋ง์์ผ ํ๋ค. ํ๋์ ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค๋ณด๋ค๋, ์ฌ๋ฌ ๊ฐ์ ๊ตฌ์ฒด์ ์ธ ์ธํฐํ์ด์ค๊ฐ ๋ซ๋ค.
'OOP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DI(Dependency Injection)๋? (0) | 2023.07.01 |
---|---|
DI vs IoC vs DIP (0) | 2023.07.01 |
์๋น์ค ๋ก์ผ์ดํฐ(SL)๋? (0) | 2023.07.01 |
๋์ ์์ง๋์ ๋ฎ์ ๊ฒฐํฉ๋ (0) | 2023.06.28 |
๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ (0) | 2023.06.26 |