카테고리 없음

[WIP] [리팩터링 개정판] 02. 리팩터링 원칙

리버김 2023. 12. 25.

 

  • 리팩터링: [명사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법
  • 리팩터링(하다): [동사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러 가지 리팩터링 기법을 적용해서 소프트웨어를 재구성하다. - p.79
  • 나는 소프트웨어를 개발할 때 목적이 '기능 추가'냐, 아니면 '리팩터링'이냐를 명확히 구분해 작업한다. 켄트 벡은 이를 두 개의 모자에 비유했다. 기능을 추가할 때는 '기능 추가'모자를 쓴 다음 기존 코드는 절대 건드리지 않고 새 기능을 추가하기만 한다...반면 리팩터링할 때는 '리팩터링' 모자를 쓴 다음 기능 추가는 절대 하기로 다짐한 뒤 오로지 코드 재구성에만 전념한다...소프트웨어를 개발하는 동안 나는 두 모자를 자주 바꿔 쓴다...코드 구조가 어느 정도 개선되면 다시 모자를 바꿔 쓰고 기능 추가를 이어간다...코드가 이해하기 어렵게 짜였다면 다시 모자를 바꿔 쓰고리팩터링한다...항상 내가 쓰고 있는 모자가 무엇인지와 그에 따른 미묘한 작업 방식의 차이를 분명하게 인식해야 한다. - p.81
  • 리팩터링하는 이유: 소프트웨어 설계가 좋아진다, 소프트웨어를 이해하기 쉬워진다, 버그를 쉽게 찾을 수 있다. 프로그래밍 속도를 높일 수 있다.
  • 나는 프로그래밍할 때 거의 한 시간 간격으로 리팩터링한다...처음에는 그냥 한다. 비슷한 일을 두 번째로 하게 되면, 일단 계속 진행한다. 비슷한 일을 세 번째 하게 되면 리팩터링한다. (3의 법칙) -p.85
  •  

반응형

댓글