팀플 종료 후 다시 쓰는 TIL이다. 금일 챌린지반 수업으로 예전에 쓰다 말은 Solid원칙을 다뤘기 때문에 금일 TIL은 Solid원칙을 리마인드 한다는 느낌으로 적어볼 것이다.
Single Responsibility Principle(단일 책임 원칙)
- 한 클래스는 하나의 역할만 가져야 한다.
- '하나의 역할' 이라는 개념이 매우 주관적이라 사람, 팀 마다 다름.
Open/Closed Principle(개방/폐쇠 원칙)
- 확장에는 열려있고, 수정에는 닫혀 있어야 한다
-> 기존 코드를 고치지 않고 기능을 추가할 수 있어야 한다.
Liskov Substitution Principle(리스코프 치환 원칙, 리스코프는 사람 이름임)
- 자식 클래스는 부모 클래스처럼 쓸 수 있어야 한다.
-> 부모 타입을 자식 트압으로 바꿔도 정상 동작해야 함.
Interface Segregation Principle(인터페이스 분리 원칙)
- 하나의 큰 인터페이스보다 여러 개의 작은 인터 페이스가 낫다.
-> 의존을 줄이기 위해, 이 또한 작은 인터 페이스의 기준이 주관적이라 팀, 사람마다 다름.
Dependency Inversion Principle(의존 역전 원칙)
- 구체가 아니라 추상에 의존
-> 클래스가 직접 다른 클래스에 의존하지 않도록, 인터페이스나 추상 클래스로 연결
객체지향 언어의 기본 원칙 내용 자체가 주관적인 부분이 좀 있어 정확하게 정의를 내리기에 애매하다.
객체지향언어의 정의를 내리기 애매하다는 사실을 듣고 약간 충격이었다. 그리고 무조건 솔리드 원칙을 지키는 것이 좋은 것이다 라는 것이 아니라는 것 또한 충격이었다.