요약

내용

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
  • 중복을 피해라.

참고