๊ฐ์ฒด์งํฅ 5๋์์น SOLID
- Single Responsibility Principle
- Open CLosed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
SRP
- Single Responsibility Principle
- ๋จ์ผ ์ฑ ์ ์์น
- ์ํํธ์จ์ด ์ค๊ณ ๋ถํ(ํด๋์ค,ํจ์ ๋ฑ)์ ๋จ ํ๋์ ์ฑ ์(๊ธฐ๋ฅ)๋ง์ ๊ฐ์ ธ์ผ ํ๋ค
- → ์์ง๋๋ ๋๊ณ , ๊ฒฐํฉ๋๋ ๋ฎ๊ฒ
OCP
- Open CLosed Principle
- ๊ฐ๋ฐฉ ํ์ ์์น
- ๊ธฐ์กด ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ธฐ๋ฅ์ ์ถ๊ฐ/์์ ํ ์ ์๋๋ก ์ค๊ณํด์ผ ํ๋ค.
- ex. ์ธํฐํ์ด์ค
LSP
- Liskov Substitution Principle
- ๋ฆฌ์ค์ฝํ ์นํ ์์น
- ๋ถ๋ชจ ํด๋์ค์ ์์ ํด๋์ค ์ฌ์ด ํ์์๋ ์ผ๊ด์ฑ์ด ์์ด์ผ ํ๋ค. (== ๋ถ๋ชจ ํด๋์ค ์ธ์คํด์ค ๋์ ์์ ํด๋์ค ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํด๋ ๋ฌธ์ ๊ฐ ์๋๋ก ์ค๊ณ)
DIP
- Dependency Inversion Principle
- ์์กด ์ญ์ ์์น
- ์์กด ๊ด๊ณ๋ฅผ ๋งบ์ ๋, ๋ณํํ๊ธฐ ์ฌ์ด ๊ฒ(๊ตฌ์ฒดํ ๋ ํด๋์ค) ๋ณด๋ค ๋ณํํ๊ธฐ ์ด๋ ค์ด ๊ฒ(์ถ์ํด๋์ค/์ธํฐํ์ด์ค)์ ์์กดํด์ผ ํ๋ค.
- ex. ์์กด์ฑ ์ฃผ์
ISP
- Interface Segregation Principle
- ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น
- ํ ํด๋์ค๋ ์์ ์ด ์ฌ์ฉํ์ง ์๋ ์ธํฐํ์ด์ค๋ ๊ตฌํํ์ง ์์์ผ ํ๋ค. → ํ๋์ ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค๋ณด๋ค ์ฌ๋ฌ๊ฐ์ ๊ตฌ์ฒด์ ์ธ ์ธํฐํ์ด์ค๊ฐ ๋ซ๋ค.
- → ์์ ์ด ์ฌ์ฉํ์ง ์๋ ๊ธฐ๋ฅ์๋ ์ํฅ์ ์๋ฐ์์ผ ํจ
- ๋ด๋ถ ์์กด์ฑ์ ์ฝํ์์ผ ๋ฆฌํฉํ ๋ง, ์์ , ์ฌ๋ฐฐํฌ๋ฅผ ์ฝ๊ฒ ์ค๊ณ
'BE > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Use gradlew, not gradle ! (0) | 2022.01.20 |
---|---|
MapStruct with Kotlin (0) | 2021.06.09 |