ETC

리팩토링 개정판 _ Chapter 02 리팩터링 원칙 : 두번째

minquu 2025. 9. 16. 00:37
반응형

1. 리팩터링 정의

    소프트웨어의 겉보기 동작은 그대로 유지, 여러가지 리팩터링 기법을 적용해서 재구성

    리팩터링을 하다가 코드를 깨져서 고생한다 => 이것은 리팩터링이 아님! 

    코드의 구조를 바꾸는 것은 재구성이고, 리팩터링은 잘게잘게 이것을 하는 것임

    

2. 두 개의 모자

     만약 우리가 무언가 작업을 할 때 / 기능 개발 모자와 리팩터링 모자를 두 개를 가지고 진행하고

     기능 개발 모자일 때는 오로지 기능 개발에 몰두하고, 이후 리팩터링 모자를 쓰면 오직 코드 재구성에만 전념함

 

3. 리팩터링하는 이유

    코드를 건강한 상태로 유지하는 데 도와주는 약!

    리팩터링을 하면 소프트웨어를 이해하기 쉬워진다!

    버그를 쉽게 찾을 수가 있다!

    프로그래밍 속도를 높여준다!

 

4. 언제 리팩터링을 해야할까?

    가장 좋은 시점은 코드베이스에 기능을 새로 추가하기 직전!

    구조를 살짝 바꾸면 다른 작업을 하기 쉬워질 만한 부분을 찾는다.

    쓰레기 줍기 리팩터링 -> 개발 중 너무 많은 리팩터링 부분이 보일때, 약간의 절충이 필요함 -> 전체적으로 바꾸는건 기존 작업의 방해가 되어짐 / 필자는 간단한건 바로 수정하고, 시간이 걸리는 건 메모 후 여유가 있을 때 수정

    보기 싫은 코드를 발견하면 리팩터링하자, 하지만 잘 작성된 코드 역시 수많은 리팩터링을 거쳐야한다.

    뛰어난 개발자는 새 기능을 추가하기 쉽도록 코드를 수정하는 것이 가장 빠른 길임을 늘 인지함

     코드 리뷰에 리팩터링 활용하기 -> 코드 리뷰는 깔끔한 코드를 작성하는데 도움이 된다. (내 눈에는 명확한 코드가 팀원에게는 아닐수도 있다)

 

5. 리팩터링 시 고려할 문제

    리팩터링은 쉽게 생각하면 속도  저하 적이라고 볼수있지만, 넓게 보면 결국에는 더 빠른 속도를 줌

    브랜치는 짧게 가져갈수록 좋음 

    레거시 코드는 리팩터링에 큰 도움이 된다! -> 문제는 테스팅 보강이 중요함 / 큰 프로젝트 일수록 테스트가 중요함

    

6. 리팩터링, 아키텍쳐, 애그니

    

7. 리팩터링과 스프트웨어 개발 프로세스

   

 

     

 

반응형