리팩터링이란 겉으로 드러나는 코드의 기능은 바꾸지 않으면서 내부 구조를 개선하는 방식으로 소프트웨어 시스템을 수정하는 과정이다. 설계가 나쁜 시스템은 수정하기 어렵다. 원하는 동작을 수행하도록 하기 위해 수정해야 할 부분을 찾고, 기존 코드와 잘 맞물려 작동하게 할
리팩터링이란 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법이다. 리팩터링을 하면 소프트웨어 설계가 좋아진다. 아키텍처를 충분히 이해하지 못한 채 단기 목표만을 위해 코드를 수정하다 보면 기반 구조가 무너지기
기이한 이름 함수, 모듈, 변수, 클래스 등 그 이름만 보고도 각각이 무슨 일을 하고 어떻게 사용해야 하는 지 명확히 알 수 있도록 신경 써어 이름을 지어야 한다. 마땅한 이름이 떠오르지 않는다
리팩터링을 제대로 하려면 테스트가 뒷받침돼야 한다. 자주 테스트하라. 작성 중인 코드는 최소한 몇 분 간격으로 테스트하고, 적어도 하루에 한 번은 전체 테스트를 돌려보자. 테스트는 위험 요인을 중심으로 작성하라. 테스트의 목적은 어디까지나 현재 혹
함수 추출하기 코드 조각을 찾아 무슨 일을 하는지 파악한 다음, 독립된 함수로 추출하고 목적에 맞는 이름을 붙인다. 절차 함수를 새로 만들고 목적을 잘 드러내는 이름을 붙인다. 추출할 코드를 원본 함수에서 복사해 새 함수에 붙여넣
모듈을 분리하는 가장 중요한 기준은 시스템에서 각 모듈이 자신을 제외한 다른 부분에 드러내지 않아야 할 부분을 얼마나 잘 숨기느냐에 있다. 레코드를 캡슐화하는 이유는 변수 자체는 물론 그 내용을 조작하는 방식도 통제
프로그램 요소를 다른 클래스나 모듈 등으로 옮기는 리팩터링 기법들을 살펴보자.
데이터 구조에 관련된 리팩터링 기법들을 살펴보자.
조건부 로직을 이해하기 쉽게 바꾸는 리팩터링 기법에 대해 살펴보자.
API 개선을 위한 리팩터링 기법들을 알아보자.
상속과 관련된 리팩터링 기법들을 살펴보자.