리펙토링이란?
리팩토링이란 무엇인가?
리팩토링은 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법으로 소프트웨어 시스템을
변경하는 프로세스이다. 이것은 버그가 끼어 들 가능성을 최소화 하면서 코드를 정리하는 정형화된 방법이다.
본질적으로 우리가 리팩토링을 할 때, 우리는 코드가 작성된 후에 코드의 디자인을 개선하는 것이다.
리팩토링의 정의
리랙토링(Refactoring) - 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록
겉으로 보이는 동작의 변화 없이 내부 구조를 변경하는 것
리랙토링 하다(Refactoring) - 일련의 리펙토링을 적용하여 겉으로 보이는 동작의 변화 없이 소프트웨어 구조를 바꾸다.
첫째 리팩토링의 목적은 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것이다
둘째 리팩토링은 겉으로 보이는 소프트웨어의 기능을 변경하지 않는다는 것이다
두 개의 모자
두가지 구별된 작업(기능 추가와 리팩토링)을 위해 시간을 나눠야 한다
기능을 추가할 때는 기존 코드를 건드려서는 안되고 단지 새로운 기능만 추가해야 한다
리팩토링을 할 때는 기능을 추가해서는 안되고 단지 코드의 구조에만 신경써야 한다.
왜 리팩토링을 해야 하는가?
리팩토링은 소프트웨어의 디자인을 개선 시킨다.
리팩토링은 소프트웨어를 더 이해하기 쉽게 만든다.
리팩토링은 버그를 찾도록 도와준다.
리팩토링은 프로그램을 빨리 작성하도록 도와준다.
언제 리팩토링을 하는가?
삼진규칙 - 3번 중복되면 그때 리팩토링을 한다.
기능을 추가할 때 리팩토링을 하라
버그를 수정할 때 리팩토링을 하라
코드검토(code review)를 할 때 리팩토링을 하라
관리자에게는 뭐라 말해야 하나?
리팩토링을 할 때의 문제
데이터베이스
인터페이스 변경
리팩토링이 어려운 디자인 변경
언제 리팩토링을 하지 말아야 하는가?
이제 리팩토링이 어떻게 돌아가는지 잘 알게 되었을 것이다 리팩토링을 언제 시작하고 언제 끝낼지를 결정하는 것은 리팩토링을 어떤 절차에 따라 해야 하는지를 아는 만큼이나 중요하다 인스턴스 변수 하나 삭제하거나 클래스 구조를 만드는 것에 대해 설명하는 것은 쉽다. 프로그램 미학(aesthetics) 같은 모호한 개념에 호소하기 보다는 좀 더 구체적인 것을 원한다.
Kent Beck을 방문했을때 리팩토링을 필요한 시점에 대한 생각을 냄새의 관점에서 설명했다.
냄새 - 정확한 지점을 집어내기 보다는 뭉뚱그려서 찾아냄
한글로 자세히 설명되어있지만 예제는 부족
블로그 예시 모음
http://sssssssssssssssss.tistory.com/entry/%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81-refactoring-2
'컴퓨터 > 이론 및 tools 사용' 카테고리의 다른 글
[리팩토링 refactoring ] Organizing Data 데이터 체계화 - Encapsulate Collection 컬렉션 캡슐화 (0) | 2016.11.24 |
---|---|
[리팩토링 refactoring] Moving Features between Objects 객체간의 기능이동 - Introduce Local Extension 국소적 상속확장 클래스 사용 (0) | 2016.11.24 |
[리팩토링 refactoring] Composing methods 메소드 구성 - Inline Method 즉시 처리하는 메소드 (0) | 2016.11.24 |
데이터마이닝 weka - IBK (KNN K-Nearest Neighbor) (0) | 2016.11.04 |
데이터 마이닝 weka - K-means k-평균 (0) | 2016.11.04 |
데이터 마이닝 WEKA - LibSVM(Support Vector Machine) (0) | 2016.11.04 |
도스창 네트워크 명령어 Ping / netstat / arp / tracert / ipconfig / nslookup (0) | 2016.11.04 |