마무리
오브젝트 마지막장 요약한 내용 입니다.
오브젝트 마지막장 요약한 내용 입니다.
엘리스터 코어번은 사람들이 새로운 기술을 학습하기 위해서는 일반적으로 세 가지 단계를 거치게 된다고 설명한다. 코어번은 이 세 가지 단계를 '따라 하는 수준
', '분리 수준
', '거침없는 수준
'이라고 부른다.
'따라 하는 수준' : 적합한 열 가지의 절차가 있더라도 모든 절차를 한번에 습득하는 것은
불가능
하기 때문에 가장 쉽게 배울 수 있는 단 한 가지 절차를 학습하고 그대로 모방한다.'분리 수준' : 오직 단 하나의 절차 만으로는 모든 문제를 해결할 수 없다는 사실을 깨닫고
다양한 절차
를 학습하고트레이드 오프
한다.'거침없는 수준' : 이른 사람은 많은 학습과 경험을 통해 즉시
적절한 해법
을 직관적으로 떠올릴 수 있을 뿐만 아니라 때로는자신만의 방법
에 따라 문제를 해결하기도 한다.
따라서 이 책에서 설명하는 원칙과 기법들을 여러분의 실무에 적용하기 위해서는 다양한 상황을 트레이드 오프할 수 있는 능력을 길러야 한다.
이 책에서 설명하는 특정한 절차와 원칙을 따르면 훌륭한 객체지향 설계를 할 수 있고, 더 나아가 유연한 객체지향 프로그램을 작성할 수 있다고 생각할 것이다. 안타깝게도 여러분이 '따라 하는 수준
'에 머물러 있다면 이 책에서 다루는 다양한 원칙
과 기법
들을 적용하기가 생각보다 쉽지 않다는 사실을 알 수 있을 것이다. 따라서 다음과 같은 방법들을 통해 다양한 설계 기법을 익히고 통찰력을 길러 '분리 수준
'을 향해 나아가야 한다.
디자인 패턴 : 반복적으로 발생하는 문제와 해법의 쌍을 담고 있기 때문에 문제에 적합한
디자인 패턴
을 고른다면 고품질의 설계를짧은 시간
에 얻을 수 있는 지름길을 제공한다.리팩터링 : 리팩터링은 코드의 행동은 변경하지 않은 채
코드의 구조
를 개선하는 활동을 의미한다. 설계는 코드의 배치 이므로 코드의 구조를 개선한다는 것을 곧설계를 개선
한다는 것을 의미한다.테스트-주도 개발 : 테스트-주도 개발은 마지막 단계인 '
거침없는 수준
'에 이른 사람들이 제시한 독창적인 설계 방법 중 하나다. 테스트-주고 개발은 전통적인설계
-구현
-테스트
의 순서로 수행되는 구현 절차를테스트
-구현
-설계
의 순서로 바뀐다.
어떤 경우에도 이 책에서 배운 캡슐화
, 응집도
, 결합도
의 정의와 원칙은 유효하며 객체지향 패러다임의 중심에는 역할
, 책임
, 협력
이 위치한다는 것이다. 우리가 해야할 일은 이 책에서 제시하는 원칙이 적합하지 않은 지점을 만났을 때 이상
이 현실
안에 안전하게 정착하도록 설계를 약간 비트는 것뿐이다.
Last updated