‘리팩토링’ 이란 용어의 유래와 중요성
- 리팩토링이라는 용어의 탄생을 정확히 파악하지 못했다.
- 실력 있는 프로그래머들은 자신의 코드를 정리하는 데 항상 어느 정도의 시간을 사용해왔다.
- 복잡한 코드보다 깨끗한 코드가 유지보수하기 쉽고, 처음부터 완벽한 코드를 작성하기 어렵기 때문이다.
리팩토링과 소프트웨어 개발
- 이 책에서 리팩토링을 소프트웨어의 전체과정에서 핵심 요소로 제안한다.
- 리팩토링의 중요성을 가장 먼저 인식한 인물 중 두 명은 Ward Cunningham과 Kent Beck이다.
- 1980년대부터 Smalltalk를 사용하며 리팩토링을 연구했다.
Smalltalk과 리팩토링의 발전 과정
Smalltalk
- Smalltalk는 1970년대 초 제록스 팰러 앨토 연구소에서 개발한 순수 객체 지향 프로그래밍 언어다.
- 짧은 컴파일-링크-실행 주기를 갖춰 변경을 빠르게 적용할 수 있는 환경을 제공했다.
- 이러한 환경 속에서 Ward Cunningham과 Kent Beck은 소프트웨어 개발 방식을 연구하며 익스트림 프로그래밍(XP)을 발전시켰으며, 리팩토링의 중요성이 강조되었다.
리팩토링의 발전 과정
flowchart TD
A["리팩토링 개념의 발전"] --> B["Ralph Johnson
& Bill Opdyke의 연구"]
B --> C["1.Opdyke의 박사 논문"]
C --> D["의미론적 일관성을 유지하는
리팩토링을 수학적으로 증명하고
도구로 구현하는 방법을 연구
-> 리팩토링에 대한
최초 본격적인 연구"]
B --> E["2.John Brant & Don Roberts"]
E --> F["최초의 리팩토링 도구
Refactoring Browser 개발"]
F --> G["현업 개발자들이
참고할 수 있는 책이 없었음"]
G --> H["그들의 도움을 받아
이 책의 첫번째 판이 나옴"]
H --> L["리팩토링 개념은
업계에서 널리 받아들여짐"]
H --> M["많은 리팩토링 도구 등장,
JAVA용 도구가 많이 개발됨"]
H --> N["단순 코드 변경을
리팩토링이라고 부르는
문제 발생"]
H --> O["현대 소프트웨어 개발에서
중요한 실천법으로 자리잡음"]