객체지향 설계 SOLID 원칙
  • 객체지향 설계 SOLID 원칙을 공부하는 스터디
  • 클린 코더스 강의
    • 클린 코더스 강의 12. SOLID Foundation
    • 클린 코더스 13. SRP(Single Responsibility Principle)
    • 클린 코더스 강의 14.1. OCP(Open-Closed Principle)
    • 클린 코더스 강의 14.2. LSP(Liskov Substitution Principle)
    • 클린 코더스 강의 14.3. ISP(Interface Segregation Principle)
Powered by GitBook
On this page
  • 소프트웨어 공학에서 말하는 설계란 무엇인가?
  • 코드가 곧 설계다
  • 설계가 잘못되었을때 나타나는 징후
  • Needless Complexity

Was this helpful?

  1. 클린 코더스 강의

클린 코더스 강의 12. SOLID Foundation

https://www.youtube.com/watch?v=HIWJ8sF8lO8&list=PL7pUrjEGbG8ZMPQ-XukPJsFyMeyvtGcnV&index=14

Previous객체지향 설계 SOLID 원칙을 공부하는 스터디Next클린 코더스 13. SRP(Single Responsibility Principle)

Last updated 5 years ago

Was this helpful?

소프트웨어 공학에서 말하는 설계란 무엇인가?

코드가 곧 설계다

1992 Jack W Reeves "What is Software Design?"

건설에서는 설계는 문서지만 소프트웨어에서는 설계는 소스코드이다.

설계가 잘못되었을때 나타나는 징후

Rigidity

시스템의 의존성으로 인해 변경하기 어려워진다. 많은 시간이 소요되는 테스트 빌드 작은 변화로 인해 전체 리빌드를 유발함

Fragility

한 모듈의 수정이 다른 모듈에 영향을 미칠때 발생한다. 모듈간의 의존성을 제거하기 위해 노력해야 한다.

Immobility

재사용을 할 수 없는 모듈이다. DB, UI, Framewrok 결합도를 없애기 위해 노력해야 한다.

Needless Complexity

우리는 미래를 알 수 없기 때문에 미래를 예측해서 구현한다면 불필요한 복잡성이 생긴다. 현재 요구사항에 집중해서 개발해야 한다.

https://brunch.co.kr/@cleancode/18

로버트 C 마틴은 우리는 미래를 예측할 수 있는 크리스탈 볼이 없다고 한다. 우리는 마법의 구술이 없기 때문에 요구사항을 확정하고 이후에 변경을 불허하는 전략을 취할 수 없다.

즉, 변화를 예측하는 것이 아니라 대응하는 것이다.

https://www.developerdotstar.com/mag/articles/reeves_design.html