Previous chapter
๊ฐ์ฒด์งํฅ
๊ฐ ๊ฐ์ฒด๋ ์ํ์ ๋์์ ๊ฐ์ง๋ฉฐ, ์๋ก ๋ฉ์ธ์ง๋ฅผ ํตํด ์ํธ์์ฉํ๋ค.
์ฌ์ฌ์ฉ์ฑ์ ์ํ 4๊ฐ์ง
โข
์บก์ํ
๊ฐ์ฒด ๋ด๋ถ์ ๊ตฌํ๋ ์ ๋ณด๋ฅผ ์ธ๋ถ๋ก ๋
ธ์ถํ์ง ์๊ณ ๋ฉ์๋๋ฅผ ํตํ์ฌ ๊ฒฐ๊ณผ๊ฐ๋ง ์ป๋๋ค.
ํธํ๊ณ ์ฝ๊ฒ ์ฝ๋์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํจ.
โข
์ถ์ํ
๊ฐ์ฒด์ ์์ธํ ์ฑ์ง์ ๋ฌด์ํ๊ณ ์ผ๋ฐ์ ์ธ ์ฑ์ง์ ๋ํ๋ธ๋ค.
์๋ก์ด ํด๋์ค๋ ๋์ผํ ์ฝ๋๋ฅผ ๋ค์ ์ ์ํ ํ์๊ฐ ์๋ค.
โข
๋คํ์ฑ
๊ฐ์ ๋ฉ์์ง์ ๋ํด ํด๋์ค์ ๋ฐ๋ผ ๋ค๋ฅธ ํ์๋ฅผ ํ๋ค.
โข
์์
๋ถ๋ชจ ํด๋์ค๋ก๋ถํฐ ์ ์๋ ์ฝ๋์ ๊ธฐ๋ฅํ์ฅ์ ํ ์ ์๋ค.
์ฅ์ ๋ค
โข
๋ณํ๊ฐ๋ฅํ ์ฝ๋์ ๊ทธ๋ ์ง ์์ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํด ์ ์ง๋ณด์ ๋์ด๋๋ฅผ ๋ฎ์ถ๊ณ , ์ดํด๋๋ฅผ ๋์
โข
๋ถ๋ช
ํํ ํด๋์ค์ ๊ธฐ๋ฅ, ๊ฐ์ฒด๊ฐ์ ๋ถ์ ์ ํ ์ฐ๊ด๊ด๊ณ๋ฅผ ์ ๊ฑฐํด ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํจ.
โข
ํ์ฅ์ฑ์ ํฅ์์ํค๋ฉฐ, ๋ณํํ๋ ๋น์ฆ๋์ค ์๊ตฌ์ ๋ฐ์ํ ์ ์์.
โข
๊ฐ๋ฐ๊ธฐ๊ฐ ๋จ์ถ
๊ฒฐ๊ตญ์ ์ฌ์ฌ์ฉ์ฑ์ ๋ชฉ์ ์ ์๊ฐํ์.
SOLID
SRP || Single Responsibility Principle
ํ๋์ ํด๋์ค๋ ํ๋์ ์ฑ
์๋ง ๊ฐ์ ธ์ผ ํ๋ค.
ํด๋์ค๊ฐ 2๊ฐ์ง ์ด์์ ์ฑ
์์ ๋งก์ผ๋ฉด ์์ง๋๊ฐ ๋ฎ์์ง๊ฒ ๋๋ค.
โข
์์ง๋๋ ํ๋์ ํด๋์ค๊ฐ ์จ์ ํ ์๋๋๊ฒ ์ฑ
์์ง๋์ง์ ์ ๋
โข
๊ฒฐํฉ๋๋ ํด๋์ค๊ฐ์ ์ํธ์์กด๋
์์ง๋๊ฐ ๋์ ์๋ก ์ข์ ์ค๊ณ๋ค.
OCP || Open-Closed Principle
ํ์ฅ๋๋ ๊ธฐ๋ฅ์ ์ด๋ ค์์ด์ผ ํ๊ณ , ๋ณ๊ฒฝ๋๋ ๊ธฐ๋ฅ์ ๋ซํ์์ด์ผ ํ๋ค.
โข
OPEN
โฆ
ํด๋์ค ์์ง๊ด๊ณ(is-a)์์๋ ์ด๋ ค์์ด์ผ ํ๋ค.
โฆ
๊ธฐ๋ฐ ํด๋์ค์์ ํ์ ํด๋์ค๋ก์ ํ์ฅํ๋ ๊ฒฝ์ฐ์ ํด๋นํ๋ค.
โข
CLOSE
โฆ
ํด๋์ค ์ํ๊ด๊ณ(has-a)์์๋ ๋
๋ฆฝ์ ์ธ ๊ด๊ฒ๊ฐ ํ์ฑ๋์ด์ผ ํ๋ค.
โฆ
์๋น์ค ์ ๊ณต์์ ์์ ์ ์๋น์ค ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์์์ผ ํ๋ค.
OCP๋ฅผ ์ ์ฉํจ์ผ๋ก์จ ์ ์ง๋ณด์์ ๊ฐํ๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๊ทน๋ํํ ์ ์๋ค.
HOW? : ์ถ์ํ ๋์
๋ณํ๋ ๊ฒ๊ณผ ๋ณํ์ง ์์์ผ ํ๋ ๊ฒ์ ์๊ฒฉํ๊ฒ ๊ตฌ๋ถํ๋ค.
1.
ํด๋์ค ์ฌ์ด์ ์กด์ฌํ๋ ๊ณตํต์ ์ธ ์์ฑ ์ถ์ถ
2.
์ถ์ถ๋ ์์ฑ์ ํ๋์ ์ธํฐํ์ด์ค ๋๋ ์ถ์ ํด๋์ค๋ก ๋์์ธ
3.
๋์์ธ๋ ์ธํฐํ์ด์ค ๋๋ ์ถ์ ํด๋์ค ์์
์ ๋ตํจํด์ด ํ๋์ ์๊ฐ ๋๋ค.
์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค ์ค ํ๋๋ฅผ ์ธ ์ ์๋ค.
LSP || Liskov Substitution Principle
์์ ํ์
๋ค์ ๋ถ๋ชจ ํ์
์ผ๋ก ์นํ๋ ์ ์์ด์ผ ํ๋ค.
LSP๋ ์ถ์์ ์ธ ํด๋์ค๋ฅผ ํตํด ๊ตฌ์ฒด์ ์ด ํด๋์ค๋ฅผ ์ ์ดํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ค.
์์กด์ ์ผ๋ก ๋ฉ์๋์์ ์ฌ์ฉ๋ ๋, ๋ฉ์๋์ ์ธ์๋ ์ถ์ ํด๋์ค๋ ์ธํฐํ์ด์ค๋ฅผ ๋ฐ์์ ์ฌ์ฉํ๋ค.
์นํํ๋ ๋์์ ๊ตฌ์ฒด์ ์ธ ํด๋์ค์์ ์ถ์์ ์ธ ํด๋์ค๋ก ์นํํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ฆ, ๋ค์๊ณ ๊ฐ๋ค.
๋ถ๋ชจ ํด๋์ค๋ฅผ ์์ํ ๋, ๋ถ๋ชจ ํด๋์ค๊ฐ ์ฌ์ฉ๋๋ ๊ณณ์ ์๋ฌด ๋ฌธ์ ์์ด ์์๋ ์ธ ์ ์์ด์ผ ํ๋ค.
ISP || Interface Segregation Principle
ํนํ๋ ์ฌ๋ฌ ๊ฐ์ ์ธํฐํ์ด์ค๊ฐ ํ๋์ ๋ฒ์ฉ ์ธํฐํ์ด์ค๋ณด๋ค ๋ซ๋ค.
ํ์ ํด๋์ค ์
์ฅ์์ ์ฌ์ฉํ ๋, 100% ๊ตฌํํ ์ ์๋ ์ธํฐํ์ด์ค๋ง ์ฌ์ฉํด์ผํ๋ค.
SRP๋ ํด๋์ค์ ๋จ์ผ์ฑ
์, ISP๋ ์ธํฐํ์ด์ค์ ๋จ์ผ์ฑ
์์ ๊ฐ์กฐํ๋ค.
DIP || Dependency Inversion Principle
์ถ์ ํด๋์ค๋ ํ์ ํด๋์ค๋ฅผ ์ฐธ์กฐํด์๋ ์๋๋ฉฐ, ํ์ ํด๋์ค๋ ์ถ์ ํด๋์ค๋ ์ค์ง ์ถ์ ํด๋์ค๋ง์ ์ฐธ์กฐํด์ผํ๋ค.
ใ ใ
๋์ค๊ฒ ์ฃ ?
Next chapter