it 책/오브젝트: 코드로 이해하는 객체지향 설계

오브젝트: 코드로 이해하는 객체지향 설계 나아가기를 읽으며

lgvv 2024. 11. 25. 10:15

오브젝트: 코드로 이해하는 객체지향 설계 나아가기를 읽으며

 

느낀점

패턴에 대해서 더 상세히 알게 되었음. 컴포넌트 재사용과 합성이 이상적으로는 좋지만 현실에서는 아쉬웠다는 포인트에서 합성은 정말 좋은 방법이지만 모든 문제를 이 형태로 강제하여 해결하려는 건 어렵다고 생각하게 되었음

 

 

나아가기

새로운 기술을 학습하기 위해서는 3가지 단계를 거침

  • 따라하는 수준
    • 적합한 열 가지 절차가 있더라도 모든 절차를 한번에 습득하는건 불가하여 한 가지 절차를 학습하고 그대로 모방
  • 분리 수준
    • 단 하나의 절차만으로는 모든 문제를 해결할 수 없는 사실을 깨닫고 다양한 절차를 학습하고 트레이드오프 함.
    • 모든 경우에 올바른 절차란 존재하지 않는다는 사실을 이해하고 각 상황에 따라 판단력과 유연함을 익힘.
  • 거침없는 수준
    • 이제 절차는 중요하지 않은 수준
    • 많은 학습과 경험을 통해 즉시 적절한 해법을 직관적으로 떠올릴 수 있을뿐만 아니라 때로는 자신만의 방법에 따라 문제를 해결하기도 함
    • 모든 절차를 트레이드오프 하는 수준을 벗어나 자신에게 가장 적합한 절차를 정하게 됨

동일한 요구사항이라도 소프트웨어 설계하는 절차와 방법, 결과물은 수행하는 사람에 따라 모두 다르며, 심지어 환경과 도메인에 따라서도 달라짐

  • 실무자들은 정해진 절차를 완전히 따르지 않음
  • 설계자들은 거침없는 수준에서 완료한 작업을 역으로 분리 수준 관점에서 트레이드 오프한 후 따라 하는 수준에 있는 사람들도 이해할 수 있도록 문서로 풀어서 설명