ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리팩터링 2판 - 2. 리팩토링 원칙
    Books/리팩터링 2판 2022. 6. 15. 13:07

    2-1. 리펙토링이란 무엇인가?

    Refactoring

    - 결과 / 행동 변경 없이 코드의 구조를 재조정

    - 소프트웨어 기능을 보존하면서 설계, 구조 및 구현을 개선

     

    목표

        ㆍ복잡성 감소

        ㆍ가독성 향상

        ㆍ유지 보수성을 개선

        ㆍ확장성을 높임

    → 더 단순하고, 깔끔하고 표현력이 뛰어난 코드, 내부 아키텍처 / 객체 모델을 만든다.

     

    금지

        ㆍ기능 변경/추가

        ㆍ버그 수정

        ㆍ성능 개선

        ㆍ버전 업데이트

     

    - 리팩터링 : 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법

    - 리팩터링은 코드를 깨끗하게 만드는( 개선하는 ) 작업

     

    2-2. 리펙터링은 왜 필요할까?

    - 개발 초기 단계부터 완벽한 코드/시스템 설계의 어려움

    - 프로그램의 요구사항은 꾸준히 변경됨 ( 기능 추가 / 변경 )

    - 더럽고 복잡한 코드는 이해하기 어려움

    - 예상하지 못한 에러가 발생하기 쉬움

    - 복잡한 코드의 유지보수는 어려움 ( 수정 시간이 오래걸림 )

     

    결과

    - 소트프웨어 설계가 좋아짐

    - 소프트웨어를 이해하기 쉬워짐

    - 버그를 쉽게 찾을 수 있음

    - 프로그래밍 속도를 높일 수 있음

     

    2-3. 어떻게 리펙토링을 하는걸까?

    - code의 test 코드를 통해 여러 리펙토링 기법을 점진적으로 적용해 나감

     

    2-4. 언제 리펙토링을 하는걸까?

    - 수시로!

     

    프로젝트 시작단계

    - 좋은 디자인 패턴으로 코드를 깔끔하게 작성

    - 기능 구현을 위한 코드를 작성

              → 테스트 코드를 작성

    - 3의 법칙 : 비슷한 일을 세번째 하게 되면 리팩토링한다.

    - 코드리뷰 : 코드를 이해하기 쉽게 만들기 → 좋은 문서화

    - 기능추가 : 기능을 쉽게 추가하게 만들기 → 재사용성, 모듈성

     

    프로젝트 유지보수 단계

    - 버그수정 : 버즈를 검증할 수 있는 테스트 코드

                                → 코드를 이해하기 쉽게, 변경하기 쉽게 변경 → 기능 추가

    - 디펜던시 마이그레이션

     

    오래된 프로젝트

    - 버그 수정 및 기능 추가시에만 : 수정이 필요한 모듈/코드 한정적으로 테스트 추가 → 코드 수정 또는 기능 추가

    - 때론, 새로운 코드를 작성하는 것이 빠름

     

    2-5. 리펙토링의 중요한 포인트!

    - " 무결점 클린코드, 완벽한 설계는 존재하지 않는다 "를 인정!

    - YAGNI : You Ain't Gonna Need It

        ㆍ깨끗하게 / 변경이 쉽게 / 유지보수 용이

        ㆍ필요하지 않는 기능 X / 사용하지 않는 기능 X / 지나치게 미래지향적 X

    댓글

Designed by Tistory.