02.리펙터링 원칙
리팩터링 정의
리팩터링하면
소프트웨어 설계가 좋아진다
소프트웨어를 이해하기 쉬워진다 (버그를 찾기 쉬워진다)
버그를 쉽게 찾을 수 있다
프로그래밍 속도를 높일 수 있다
언제 리팩터링해야 할까?
준비를 위한 리팩터링 : 기능을 쉽게 추가하게 만들기
이해를 위한 리팩터링 : 코드를 이해하기 쉽게 만들기
쓰레기 줍기 리팩터링
계획된 리팩터링과 수시로 하는 리팩터링
오래 걸리는 리팩터링
코드 리뷰에 리팩터링 활용하기
리팩터링 시 고려할 문제
새 기능 개발 속도 저하
리팩터링은 개발 기간을 단축하고자 하는 것이다.
기능 추가 시간을 줄이고, 버그 수정 시간을 줄여준다.
코드 소유권
코드 소유권을 팀에 두는 것을 선호한다.
브랜치
팀원마다 코드베이스의 branch를 하나씩 맡아서 작업하다 결과물이 쌓이면 master branch에 통합해서 공유하자. (지속적 통합 적용, CI)
테스팅
자가 테스트 코드를 갖추자.
레거시 코드
테스트를 보강하자.
데이터베이스
리팩터링과 성능
리팩터링은 성능 좋은 소프트웨어를 만드는 데 기여한다.
빠른 소프트웨어를 작성하는 방법
시간 예산 분배 방식
설계를 여러 컴포넌트로 나눠서 컴포넌트마다 자원 예산을 할당
끊임없이 관심을 기울이자
의도적으로 성능 최적화에 돌입하기 전까지 성능에 신경 쓰지 않고 코드를 다루기 쉽게 만드는 데 집중하자.
리펙터링과 최적화의 관계
리팩터링을 잘 해두면 서능 튜닝에 투입할 시간을 벌 수 있다.
리팩터링이 잘 되어 있는 프로그램은 성능을 더 세밀하게 분석할 수 있다.
참고 도서
Last updated