ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소프트웨어 악취를 제거하는 리팩토링
    후기/Book Review 2017. 12. 23. 23:58

      더 나은 설계, 더 나은 개발을 위해 보았다.

      저자들의 다양한 경험과 분석을 통해 나온 25가지 설계 악취에 대해 하나씩 설명한다(악취의 예시로 등장하는 클래스 중 다수가 JDK...). 25개의 악취는 아래와 같다.


    1. 추상화 악취
      1. 누락된 추상화
      2. 명령 추상화
      3. 불완전한 추상화
      4. 다면적인 추상화
      5. 불필요한 추상화
      6. 미활용 추상화
      7. 중복된 추상화
    2. 캡슐화 악취
      1. 부족한 캡슐화
      2. 누설된 캡슐화
      3. 누락된 캡슐화
      4. 미활용 캡슐화
    3. 모듈화 악취
      1. 망가진 모듈화
      2. 불충분한 모듈화
      3. 순환 의존성이 있는 모듈화
      4. 허브와 같은 모듈화
    4. 계층 악취
      1. 누락된 계층
      2. 불필요한 계층
      3. 팩토링되지 않은 계층
      4. 넓은 계층
      5. 추측에 근거한 계층
      6. 깊은 계층
      7. 반체제적인 계층
      8. 망가진 계층
      9. 다중 경로 계층
      10. 순환 계층

      아직까지 대규모의 프로젝트나 여러 프로젝트 경험이 없기에 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

    댓글

Designed by Tistory.