본문 바로가기

Refactoring

리팩토링

반응형

리팩토링 개론

리팩토링

-겉으로는 드러나는 기능은 그대로 둔채, 알아보기 쉽고 수정하기 간편하게 소프트웨어 내부를 수정하는 작업(명사적)

-리팩토링 기법을 연달아 적용해서 겉으로 들어나는 기능은 그대로 둔 채 소프트웨어 구조를 변경하는 것(동사적)


리팩토링의 목적

1. 소프트웨어를 더 이해하기 쉽고 수정하게 쉽게 만드는 것.

2. 겉으로 드러나는 소프트웨어 기능에 영향을 주지 않고


기능을 추가할때는 코드를 수정하지말고 기능만 추가해야한다.

리팩토링을 할때는 코드를 추가하지 말고 코드 구조 개선만 해야한다.


리팩토링은 왜?

리팩토링을 실시하지 않으면 프로그램 설계는 점점 노후된다.

코드를 수정하거나 코드의 설계를 완벽히 이해하지 않고 코드를 수정하면, 코드 구조가 뒤죽박죽되어 그 코드를 보고 설계를 파악하기 어려워진다.

리팩토링은 산만해진 코드를 정리하는 작업이다. 즉 부적절한 위치에 있는 코드를 제거하는 것이다.


보통 기능이 같은 코드가 여기저기 중복되어 있어서 쓸데 없이 코드만 길어진다.

설계를 개선하는 주요 비법 중 하나는 중복 코드를 없애는 것이다.


1. 소프트웨어를 이해하기가 더 쉬워짐

2. 버그를 찾기가 쉬워짐

3. 프로그래밍 속도가 빨라짐 (깔끔한 설계가 곧 소프트웨어 개발 속도를 높이기 위한 핵심)


리팩토링 언제 필요?

1.같은 작업의 삼진아웃 

- 처음할 때는 그냥하고, 비슷한 작업을 두번째 해야될때 중복 작업이라 망설여져도 그냥하고, 세번째 하게 되면 그때 리팩토링을 실시

2. 기능추가할 때

- 소프트웨어에 새 기닝을 추가해야 할 때. 이유는 코드를 이해하기 쉽게 만들기 위해서이다.

3. 버그를 수정할 때

- 버그를 수정할 때 주로 코드를 이해하기 쉽게 만들려고 리팩토링 한다. 

4. 코드를 검수할 때

- 코드 검수를 통해 개발 팀원 모두가 코드를 파악하게 되며, 더 많은 사람이 이해하게 된다.


리팩토링을 하면 다른 사람이 개발한 코드를 검수하기도 쉬어진다.

그리고 검수 공정을 위해선 소규모 검수팀을 조직해야한다.

검수팀은 검수자 한명과 최초 코드 작성자들로 구성하는게 좋다.

검수자의 임무는 수정할 부분을 제안하고 그 수정 사항이 무리 없이 리팩토링될 수 있는지 판단하고, 문제가 없다면 수정 작업을 진행하는 것이다.


[익스트림 프로그래밍](인사이트) 페어 프로그래밍 연습을 참조


-출처 리팩토링 코드의 품질을 개선하는 객체지향 사고법 (마틴 파울러)







반응형

'Refactoring' 카테고리의 다른 글

리팩토링 관련 문제  (0) 2018.03.06