워밍업 클럽 2기(클린코드, 테스트코드) 과제

워밍업 클럽 2기(클린코드, 테스트코드) 과제

image

Readable Code: 읽기 좋은 코드를 작성하는 사고법(링크)

이 글은 위의 강의중 제가 중요하다고 생각한 부분과, 저만의 의견을 덧붙여서 정리해보았습니다.

모든 내용과 정확한 내용을 보고싶다면 위의 강의를 수강하여 들으시는 것을 제안 드립니다.

 

SOLID

SRP

  • Single Responsibility Principle (단일 책임의 원칙)

  • 하나의 객체는 하나의 역할만 해야 한다.

  • 하나의 객체에서 하나의 역할만 처리하기 때문에 높은 응집도와 낮은 결합도를 유지하게 된다.

    • 하나의 기능을 하나의 객체에서만 처리하기 때문에 처리에 필요한 요소는 하나의 클래스에 존재하여 응집도가 향상된다.

    • 하나의 객체에서만 처리하기 때문에 다른 클래스와의 결합도는 약해진다.

       

OCP

  • Open-Closed Principle (개방 폐쇄 법칙)

  • (기능)확장에는 열려있고, (코드) 수정에는 닫혀있는 방식, 즉, 코드를 수정하지 않고 기능 추가를 할 수 있는 방식

  • 인터페이스와 다형성을 이용하여 구현한다.

LSP

  • Liskov Substitution Principle

  • 상속 관계에서 자식이 부모 클래스의 역할을 변경하거나 영향을 주면 안된다.

ISP

  • Interface Segregatin Principle (인터페이스 분리 원칙)

  • 인터페이스의 구현한 클래스는 인터페이스의 모든 메소드를 사용해야 한다.

  • 문법 상으로 전부 사용해야 하지만, 사용하면 예외(Unsupport Opeartion Exception)를 발생시키는 방식으로 사용하지 않을 수 있다.

DIP

  • Dependency Inversion Principle (의존성 역전 방식)

  • 높은 추상화 객체에서 낮은 낮은 추상화 객체로 의존해야 하지만, 모든 객체는 높은 추상화 객체를 의존해야 한다.

  • 낮은 추상화 객체를 참조하면, 구현이 달라졌을 경우 의존하는 모든 객체에 영향이 생긴다.

댓글을 작성해보세요.

채널톡 아이콘