Refactoring #1

Gyus·2021년 9월 9일
0

리팩터링

목록 보기
1/1

리팩터링 정의

  • [명사] 소프트웨어의 겉보기동작은 그대로 유지한채, 코드를 이해하고 수정하기 쉽도록 변경하는 기법
  • [동사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러 가지 리팩터링 기법을 적용하여 소프트웨어를 재 구성한다.
  • 리팩터링하기 전 후의 코드가 똑같이 작동해야한다.

두개의 모자

  • 소프트웨어를 개발하는 동안은 기능추가를 하느냐 리팩터링을 하느냐에 따라 모자를 바꿔써야한다.
  • 기능추가 할때는 기능추가만 하고, 리팩터링할때는 리팩터링만 해야한다는 원칙이다.

리팩터링 하는 이유?

  • 리팩터링이 모든 문제를 해결하는 만병통치는 아니지만 건강한 상태로 유지하는데는 훌륭한 기법이다.

소프트웨어 설계가 좋아진다.

  • 리팩터링하지 않으면 소프트웨어의 내부 설계가 복잡해진다.
  • 아키텍쳐를 충분히 이해하지 못하고 성능위주의 코딩을 하면 설계를 파악하기 힘들다. 그러므로 중복코드를 제거해야한다.

소프트웨어의 이해가 쉽다.

  • 다른사람 뿐만 아니라 내가 코드를 다시볼때 수정이 쉬워야 한다.

버그를 쉽게 찾는다.

  • 코드를 이해하기 쉽다 == 버그를 쉽게 찾는다.

프로그래밍 속도를 높일 수 있다.

  • 좋은 설계 코드의 누적은 기능추가시에 점점 속도를 높이게 만들어준다.

언제 리팩토링해야 할까?

  • 한시간 간격으로 하는게 좋다. 그럼 법칙으로는?

3의 법칙

  1. 그냥하기
  2. 중복시에도 일단 그냥하기
  3. 중복이 다시한번 나오면 그때 리팩토링

준비를 위한 리팩터링 : 기능을 쉽게 추가하게 만들기

  • 리팩터링의 최적시점은 새로운 기능을 추가하기 직전.
  • 복사 붙여넣기 식으로 하기보다는 함수 매개변수화 해서 호출하는게 좋다.
  • 버그가 나더라도 여러곳에서 나는것보다 한곳에서 나는것이 수정하기 편하기때문.

이해를 위한 리팩터링 : 코드 이해하기 쉽게 만들기.

  • 변수를 쉽게 바꿔주고 긴함수를 나눠주는 과정을 거치면 설계가 보이기 시작한다.
profile
푸로구래머

0개의 댓글