๐ ์ค๋์ ํ์ต ํค์๋
- SOLID
๐ฅ SOLID(๊ฐ์ฒด์งํฅ ์ค๊ณ์์น)
- ๋จ์ผ ์ฑ ์ ์์น (Single Responsibiity Principle - SRP)
- ๊ฐ๋ฐฉ-ํ์ ์์น (Open/Closed Principle - OCP)
- ๋ฆฌ์ค์ฝํ ์นํ ์์น (Liskov Substitution Principle - LSP)
- ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น (Interface Segregaion Principle - ISP)
- ์์กด ์ญ์ ์์น (Dependency Inversion Principle - DIP)
๐ฅ ๋จ์ผ ์ฑ ์ ์์น (SRP)
: ์ด ์์น์ ํด๋์ค๋ ๋ชจ๋์ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ค๋ ๊ฒ์ ๊ฐ์กฐํฉ๋๋ค.
: ์ฆ, ํด๋์ค๊ฐ ๋ณ๊ฒฝ๋์ด์ผ ํ๋ ์ด์ ๋ ํด๋น ํด๋์ค๊ฐ ๋ด๋นํ๋ ์ฑ ์ ๋๋ฌธ์ด์ด์ผ ํฉ๋๋ค.
: ์ด๋ ์ฝ๋์ ์์ง์ฑ์ ๋์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฝ๊ฒ ๋ง๋ค์ด์ค๋๋ค.
๐ฅ ๊ฐ๋ฐฉ-ํ์ ์์น (OCP)
: ์ํํธ์จ์ด ์ํฐํฐ๋ ํ์ฅ์ ๋ํด ์ด๋ ค ์์ด์ผ ํ๊ณ , ๋ณ๊ฒฝ์ ๋ํด์๋ ๋ซํ ์์ด์ผ ํฉ๋๋ค.
: ์ด๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋๋ผ๋ ๊ธฐ์กด์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ํ์ฅํ ์ ์๋๋ก ํ๋ ์์น์ ๋๋ค.
: ์ฃผ๋ก ์ธํฐํ์ด์ค์ ์ถ์ํ๋ฅผ ํตํด ์ด๋ฅผ ๋ฌ์ฑํฉ๋๋ค.
๐ฅ ๋ฆฌ์ค์ฝํ ์นํ ์์น (LSP)
: ์ด ์์น์ ์์ ๊ด๊ณ์์ ํ์ ํด๋์ค๋ ์์ ํด๋์ค๋ฅผ ๋์ฒดํ ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ๊ฐ์กฐํฉ๋๋ค.
: ์ฆ, ์ฝ๋์์ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๊ณณ์ ์์ ํด๋์ค๋ฅผ ๋์ ์ฌ์ฉํด๋ ๋ฌธ์ ๊ฐ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๐ฅ ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น (ISP)
: ํด๋ผ์ด์ธํธ๋ ์์ ์ด ์ฌ์ฉํ์ง ์๋ ๋ฉ์๋์ ์์กดํ์ง ์์์ผ ํฉ๋๋ค.
: ํฐ ์ธํฐํ์ด์ค๋ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๋ค์ด ๋ค์ํ ๊ธฐ๋ฅ์ ์์กดํ๊ฒ ๋ง๋ค๊ธฐ๋ณด๋ค,
: ์์ ์ธํฐํ์ด์ค๋ฅผ ๋๋์ด ๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ํ์๋ก ํ๋ ๋ถ๋ถ๋ง ์ฌ์ฉํ๋๋ก ํ๋ ๊ฒ์ด ์ด ์์น์ ํต์ฌ์ ๋๋ค.
๐ฅ ์์กด ์ญ์ ์์น (DIP)
: ๊ณ ์์ค ๋ชจ๋์ ์ ์์ค ๋ชจ๋์ ์์กดํด์๋ ์๋๋ฉฐ, ์์ชฝ ๋ชจ๋ ์ถ์ํ์ ์์กดํด์ผ ํฉ๋๋ค.
: ์ด๋ ์์กด์ฑ ์ฃผ์ ๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ, ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ์ ์ค์ฌ ์์คํ ์ ๋ ์ ์ฐํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.
๐ ์ค๋์ ํ๊ณ
SOLID ์์น ๋ฟ์ ๋ฒ๋ ค
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
03/13(์) ๋ด์ผ๋ฐฐ์์บ ํ Java 55์ผ์ฐจ TIL - Spring AOP (0) | 2024.03.13 |
---|---|
03/12(ํ) ๋ด์ผ๋ฐฐ์์บ ํ Java 54์ผ์ฐจ TIL - QueryDSL (0) | 2024.03.12 |
03/08(๊ธ) ๋ด์ผ๋ฐฐ์์บ ํ Java 52์ผ์ฐจ TIL - @OneToOne (0) | 2024.03.08 |
03/07(๋ชฉ) ๋ด์ผ๋ฐฐ์์บ ํ Java 51์ผ์ฐจ TIL - Cascade, orphanRemoval (0) | 2024.03.07 |
03/06(์) ๋ด์ผ๋ฐฐ์์บ ํ Java 50์ผ์ฐจ TIL - ORM (0) | 2024.03.06 |