구어체로 설명하는 다이어리
06 기본적인 리팩터링 본문
카탈로그의 첫머리는 가장 기본적이고 많이 사용해서 제일 먼저 배워야 하는 리팩터링들로 시작한다.
내가 가장 많이 사용하는 리팩터링은 함수 추출하기와 변수 추출하기다. 리팩터링은 본래 코드를 변경하는 작업인 만큼, 이 두 리팩터링을 반대로 진행하는 함수 인라인하기와 변수 인라인하기도 자주 사용한다.
추출은 결국 이름 짓기이며, 코드 이해도가 높아지다 보면 이름을 바꿔야 할 때가 많다. 함수 선언 바꾸기는 함수의 이름을 변경할 때 많이 쓰인다. 함수의 인수를 추가하거나 제거할 때도 이 리팩터링을 적용한다. 바꿀 대상이 변수라면 변수 이름 바꾸기를 사용하는데, 이는 변수 캡슐화하기와 관련이 깊다. 자주 함께 뭉쳐 다니는 인수들은 매개변수 객체 만들기를 적용해 객체 하나로 묶으면 편리할 때가 많다.
함수 구성과 이름 짓기는 가장 기본적인 저수준 리팩터링이다. 그런데 일단 함수를 만들고 나면 다시 고수준 모듈로 묶어야 한다. 이렇게 함수를 그룹으로 묶을 때는 여러 함수를 클래스로 묶기를 이용한다. 이때 이 함수들이 사용하는 데이터도 클래스로 함께 묶는다. 또 다른 방법으로 여러 함수를 변환 함수로 묶기도 있는데, 읽기전용 데이터를 다룰 때 특히 좋다. 나는 한 걸음 더 나아가, 한데 묶은 모듈들의 작업 처리 과정을 명확한 단계phase로 구분 짓는 단계 쪼개기를 적용할 때도 많다.
[출처]
리팩터링 2판 - 마틴 파울러
[정리]
기본적인 리팩터링의 종류에 대해 설명한다. 함수 추출하기, 변수 추출하기 같은 가장 기본적인 리팩터링부터 여러 함수를 클래스로 묶기까지 다양한 리팩터링을 설명한다.
'읽을거리 > 리팩터링' 카테고리의 다른 글
06 기본적인 리팩터링 - 변수 인라인하기 (0) | 2024.11.05 |
---|---|
06 기본적인 리팩터링 - 변수 추출하기 (0) | 2024.11.05 |
06 기본적인 리팩터링 - 함수 인라인하기 (0) | 2024.11.05 |
06 기본적인 리팩터링 - 함수 추출하기 (0) | 2024.11.04 |
리팩터링을 읽기 전에 (2) | 2024.10.13 |