요약
내용
SOLID
- Single Responsibility: 한 클래스는 하나의 책임만 가져야 함
- Open-Closed: 소프트웨어 객체(클래스, 모듈 등)는 확장에는 개방적이지만 수정에는 폐쇄적이어야 예측 가능하고 유지 관리 가능한 코드를 만들 수 있음
- Liskov Substitution: 하위 유형은 프로그램의 정확성에 영향을 주지 않으면서 기본 유형으로 대체할 수 있어야 함
- Interface Segregation: 코드가 모든 것을 사용하지 않는 거대한 인터페이스에 종속되어서는 안 됨. 대신 패키지는 더 작은 특정 인터페이스를 포함하고 임포트할 수 있도록 허용해야 함
- Dependency Inversion: 상위 레벨 모듈이 하위 레벨 모듈에 종속되어서는 안 되며, 둘 다 추상화에 종속되어 보다 유연하고 분리된 시스템 설계를 촉진해야 함
KISS
- Keep It Simple, Stupid.
- 심플하고 멍청하게 유지하라.
YAGNI
- You Ain’t Gonna Need it.
- 지금 필요없는 기능을 만들지 말라.
DRY
- Don’t Repeat Yourself
- 중복을 피해라.
참고