– 면접봤던 질문 내용에 대해 간략하게 정리합니다.–
SOLID (객체 지향 설계)
두문자 | 약어 | 개념 | 설명 |
---|---|---|---|
S | SRP | 단일 책임 원칙 (Single responsibility principle) | 한 클래스는 하나의 책임만 가져야 함. |
O | OCP | 개방-폐쇄 원칙 (Open/closed principle) | 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 함 |
L | LSP | 리스코프 치환 원칙 (Liskov substitution principle) | 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야함. |
I | ISP | 인터페이스 분리 원칙 (Interface segregation principle) | 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 나음. |
D | DIP | 의존관계 역전 원칙 (Dependency inversion principle) | 프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안됨 |
YAGNI
You aren’t gonna need it