-
소프트웨어 악취를 제거하는 리팩토링후기/Book Review 2017. 12. 23. 23:58728x90반응형
더 나은 설계, 더 나은 개발을 위해 보았다.
저자들의 다양한 경험과 분석을 통해 나온 25가지 설계 악취에 대해 하나씩 설명한다(악취의 예시로 등장하는 클래스 중 다수가 JDK...). 25개의 악취는 아래와 같다.
- 추상화 악취
- 누락된 추상화
- 명령 추상화
- 불완전한 추상화
- 다면적인 추상화
- 불필요한 추상화
- 미활용 추상화
- 중복된 추상화
- 캡슐화 악취
- 부족한 캡슐화
- 누설된 캡슐화
- 누락된 캡슐화
- 미활용 캡슐화
- 모듈화 악취
- 망가진 모듈화
- 불충분한 모듈화
- 순환 의존성이 있는 모듈화
- 허브와 같은 모듈화
- 계층 악취
- 누락된 계층
- 불필요한 계층
- 팩토링되지 않은 계층
- 넓은 계층
- 추측에 근거한 계층
- 깊은 계층
- 반체제적인 계층
- 망가진 계층
- 다중 경로 계층
- 순환 계층
아직까지 대규모의 프로젝트나 여러 프로젝트 경험이 없기에 25가지 해당 악취들을 다 공감하지는 못했다. 하지만 이런 악취들을 인지하고 있는 것과 없는 것은, 앞으로 개발하는데 있어 큰 차이가 될 것이다.
악취들의 예시와 리팩토링의 예시뿐만 아니라 '현실적인 고려사항'도 있다. 설계와 개발, 유지보수는 항상 같은 정답이 있는 것이 아니라 상황과 때, 조건 등에 따라서 달라질 수 있음을 알게 해 주는 부분이었다. 모든 것은 trade-off라 여러가지 득실을 잘 따져본 후 최종적인 선택은 개발자에게 있는 것이다.
리팩토링, 디자인패턴, 설계 등은 다 떼려야 뗄 수 없는 관계라는 것을 다시 한 번 느끼게 되었다. 단순히 높은 성능이 나오는 코드를 짜는 것이 중요한 것이 아니라 유지보수성, 이해가능성, 테스트가능성 등 다양한 부분들을 충족시키는 설계&개발이 진정한 고수로 가는 길이 아닌가 싶다. 그렇게 되려면 올바른 설계 및 지속적인 리팩토링, 디자인패턴 적용이 필요한 것이다.
자주 등장하는 클래스 다이어그램을 보면서 내가 아직 UML도 잘 모른 다는 것을 깨닫게 되었다. 다음 책은 UML 실전에서는 이것만 쓴다를 읽어 봐야지!
읽으면서 부족하거나 다시 찾아봐야겠다고 느낀 부분들
- composite pattern
- LSP(리스코프 치환원칙)
- is-A, has-A 관계
- 메서드 순환 복잡도
- 정적 분석 도구
- WMC(Weighted Method per Class)
- 회귀테스트
- 클래스 다이어그램 보는 법(UML)
소프트웨어 악취를 제거하는 리팩토링: 구조적 설계 문제를 풀어내는 최선의 실천법, 길벗(기리쉬 서야나라야나 , 가네쉬 사마스얌 , 터셔 샤르마)
반응형'후기 > Book Review' 카테고리의 다른 글
러닝 HTTP/2 (0) 2018.02.10 UML 실전에서는 이것만 쓴다 (0) 2018.01.27 도메인 주도 설계 핵심 (0) 2017.11.30 HTTP 완벽 가이드 (0) 2017.10.23 테스트 주도 개발 (0) 2017.09.07