Backend
home
🖊️

SOLID 원칙

원칙
설명
예시
S (Single Responsibility Principle)
단일 책임 원칙 - 하나의 클래스는 하나의 책임만 가져야 함
UserService가 인증, 회원가입, 이메일 전송까지 다 하면 SRP 위배
O (Open/Closed Principle)
확장에는 열려 있고 수정에는 닫혀야 함
새로운 할인 정책 추가 시 기존 코드를 수정하지 않고 새 클래스로 확장
L (Liskov Substitution Principle)
부모 객체를 자식 객체로 교체해도 시스템이 동작해야 함
BirdPenguin은 날 수 없으므로 fly() 메서드는 분리 필요
I (Interface Segregation Principle)
클라이언트는 사용하지 않는 메서드에 의존하면 안 됨
Animal 인터페이스에 fly(), swim() 다 있으면 ISP 위배
D (Dependency Inversion Principle)
상위 모듈은 하위 모듈에 의존하면 안 되며, 둘 다 추상화에 의존해야 함
EmailService를 구현체가 아닌 인터페이스로 의존