리팩토링의 개념..!

[What] 리팩토링이란?

코드를 깨끗하게 만드는 작업

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

리팩터링:v. 소프트웨어의 겉보기 동작은 그대로 유지한 채 여러가지 리팩터링 기법을 적용해서 소트웨어를 재구성하다

위키피디아 says… 결과/행동 변경 없이 코드의 구조를 재조정

한마디로 말하면 소프트웨어 기능을 보존하면서 설계, 구조 및 구현을 개선하는 것

[Goals] 리팩토링의 목표

  • 복잡성 감소
  • 유지 보수성을 개선
  • 확장성을 높임
  • 가독성 향상

=> 더 단순하게, 깔끔하고 표현력이 뛰어난 코드, 내부 아키텍쳐/객체 모델을 만듬

[Don’t] 리팩토링할때 금지사항

  • 기능 변경/추가
  • 버그 수정 (리팩토링이 끝나고 나서 해당 버그에 대해 따로 수정)
  • 성능개선
  • 라이브러리 또는 dependency 버전 업데이트

[Why] 그렇다면 왜 리팩토링을 하지? (Why?)

  • 개발 초기 단계부터 완벽한 코드/시스템 설계의 어려움
  • 복잡한 코드는 이해하기 어렵고 유지보수도 어려움
  • 프로그램의 요구사항은 꾸준히 변경될 것.
  • 예상하지 못한 에러 예방.
  • 버그를 쉽게 찾을 수 있다.
  • 프로그래밍 속도를 높일 수 있다.

[How] 어떻게 하는 걸까?

  1. 기존 코드에서 동작하는 기능을 유지(함수, 기능, UI, 성능, API 스펙)해야 한다.
  2. 그 검증을 위해 테스크 코드를 작성해서 테스트 한다.
  3. 코드의 부족한 부분에 따라서 여러 리팩토링 기법을 조금씩 적용 시킨다.

[When] 언제 해야 할까? => 수시로

프로젝트 시작단계유지보수 단계
기능 구현을 위한 코드 작성⬇️ 버그수정 / ⬇️ 기능 추가 or 라이브러리 디펜던시 업데이트
테스트 코드 작성버그 검증할 테스트 코드 / 기존 기능들의 테스트 확인
리팩토링코드를 이해하기 쉽게 변경하기 쉽게 만듬 / 코드를 쉽게 변경
코드리뷰 => 이해하기 쉽게 만들기리팩토링 / 리팩토링
기능 추가 => 재사용성, 모듈화버그 수정 / 기능 추가

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

중요 포인트 정리

  1. 코드를 깨끗하게
  2. 결과/행동 변경 없이 코드의 구조를 재조정
  3. 소프트웨어 기능 보존하면서 설계, 구조 및 구현을 개선.
  4. 소프트웨어 기능 보존 검증을 위한 테스트 코드 작성!
  5. 무결점 , 완벽한 설계는 존재하지 않는다…!
  6. 3의 법칙

© 2021. All rights reserved.

----------Powered by Hydejack----------

woobaeh