가독성 및 유지보수성 향상
- 더 나은 코드를 만드는것
- 코드가 하는 일은 변경하지 않는다.
가독성
의도를 전달하기 위한 코드의 성질
유지보수성
취약하다 (fragile)
- 어떤 시스템에서 한군데서 무언가를 수정하면, 관련 없어 보이는 다른 곳에서 문제가 발생
전역상태 (global state)
- 취약성의 근원
- 전역은 우리가 고려한 범위(scope)를 벗어난 것을 의미
불변속성의 범위제한 (localizing invariants)
함께 변하는 것은 함께 있어야 한다.
리팩터링 세가지 핵심
- 의도를 전달함으로써 가독성 향상
- 불변솏성의 범위제한을 통한 유지보숫성 향상
- 범위 밖의 코드에 영향을 주지 않고 1항과 2항을 수행
속도, 유연성 및 안정성 확보
상속보다는 컴포지션 사용하라
- 범위가 제한되지 않은 불변속성을 도입하는
상속(inheritance)
을 권장하지 않음. 👎
수정이 아니라 추가로 코드를 변경
- 컴포지션의 가장 큰 장점은
추가
로 코드 변경이 가능하다.
- OCP (Open-Closed Principle)
보이스카우트 규칙
항상 여러분이 왔을 때보다 더 좋게 만들어 놓고 떠나세요
요약
- 리팩터링은 기능 변경 없이 코드의 의도를 전달하고 불변속성의 범위를 제한하는 것
- 상속보다는 컴포지션을 사용함으로써, 추가를 통한 변경으로 개발 속도, 유연성, 안정성을 확보
- 리팩터링을 일상 업무에 포함시켜 기술 부채가 쌓이지 않도록 해야 합니다.
- 리팩터링을 연습하면 코드에 대한 독특한 관점을 얻을 수 있으며, 이로 인해 더 나은 해결책을 찾을 수 있다.