리팩토링
- 겉 동작은 바뀌지 않으면서 내부구조를 개선하는 방식으로 소프트웨어를 수정하는 과정이다.
- 코드를 작성하고 난 뒤에 설계를 개선하는 일이다.
리팩토링하는 개발자의 자세
- 소프트웨어 개발이 공학에서 해킹으로 넘어가지 않게 하리라.
리팩토링의 각 단계를 자세히 보면, 아주 단순한 과정이 연속이다.
- A클래스의 필드를 B클래스로 옮긴다.
- 일부 코드를 메소드 밖으로 뺀다.
- 상속 구조를 위 아래로 올리거나 내린다.
리팩토링 용어를 아는 일은 협업에 있어서 아주 중요한 시작점이 된다.
- 이 부분 코드를 독립함수로 추출하세요 => 리팩토링 - 함수 추출
- 이 계산을 별도 구문으로 나누세요 => 리팩토링 - 단계 나누기
리팩토링에는 위험이 따른다.
- 제대로 된 연습 없이 즉흥적으로 실시하는 리팩토링 만큼 위험한 게 없다.
- 리팩토링은 반드시 계획적이며 체계적으로 해야 한다.
- 잘 된 리팩토링을 적용한 결과는 코드에 대한 확신과 스트레스 감소를 낳는다
- 리팩토링 할 때는 버그가 생길 가능성을 최소로 줄이면서 코드를 정리하는 정제 된 방법으로 코딩해야 한다.
리팩토링은?
리팩토링은 프레임워크의 필수요소 이다.
리팩토링은 소프트웨어 품질을 개선한다.
리팩토링은 이해하기 쉽고 수정하기 쉽게하는 열쇠이다.
리팩토링은 코드에 집중하지만 사실 설계에 미치는 영향이 크다. 리팩토링은 설계를 갖추기 보단 개발을 진행하면서 지속적으로 설계하는 방향으로 일의 흐름을 바꿀 수 있다.
코드 작성 횟수 보다 코드 읽고 수정하는 횟수가 훨씬 많으므로 리팩토링은 중요하다.
출처 : 리팩토링 2판 - 마틴 파울러
리팩토링을 잘 하려면 암기력이 좋아야 한다. ( 갓스틴 )
두 번 읽어, 세번 읽어, 네번 읽어, 연습해
'Level Up > Refactoring' 카테고리의 다른 글
리팩토링 - 소프트웨어 개발 프로세스 (0) | 2020.09.04 |
---|---|
리팩토링 - 리팩터링, 아키텍처, 애그니(YAGNI) (0) | 2020.09.04 |
리팩토링 - 고려할 문제 (0) | 2020.09.04 |
리팩토링 - 원칙과 상황 (0) | 2020.09.03 |
리팩토링 - 기초 단계, 단계와 분리, 다형성 (0) | 2020.09.02 |