본문 바로가기

프로그래밍&IT/C#

코드 리팩토링(refactoring) 관련 & 메소드 추출하기


VIsual Studio2010에서 제공하는 (아마 그 이상에서도 제공될듯...)

코드 리펙토링 관련하여서


대략적인 내용은 아래와 같습니다.

리펙토링 기술 의미
이름 바꾸기 프로젝트 전체에 걸쳐서 코드 토큰 (메소드 이름, 필드 , 지역변수 등) 의 이름을 변경
메소드 추출 선택된 코드 구문ㅇ르 기초로 새로운 메소드 정의
필드 캡슐화

Public 필드를 C# 속성으로 캡슐화된 private 필드로 변경

인터페이스 추출 기존 타입 멤버를 기초로 새로운 인터페이스 타입을 정의
매개변수 제거 해당 매개변수를 메소드의 매개변수 목록에서 제거한다
매개변수 다시 정렬 멤버 매개변수의 순서를 변경



그중에서 "메소드 추출" 예제입니다.

어떤 코딩을 작성했는데,

다른 곳에서도 쓰일 가능성이나 쓰고 싶을때,

일일이 메소드를 만들고 다시 복사&붙이기 등의 업무를 조금이라도 줄여보고자 할때 유용할것 같습니다.


1) 일단 아래의 소스코드를

- 처음에 한 번 쓸 코딩이었는데, 추후 여러군데에서 공통적으로 쓸 생각이다

라는 가정하에

새로운 메소드로 뽑아낸다.


소스내용은 Console로 경고창을 띄우는데, 전경색과 뒷배경색을 바꿔서 경고문을 보여주는 상황으로 가정하겠습니다.


2) 아래처럼 해당 코드를 드래그한후

마우스 오른쪽 버튼으로 리펙터링 -> 메소드 추출을 클릭한다


3) 그러면 신규로 뽑아낼 메소드의 이름을 지으라는 메세지박스가 나옵니다.

여기선 Console_Warning이라는 이름의 메소드를 만들어낸다는 가정.


4) 이후에 아래처럼 신규로 메소드를 쉽게 뽑아낼수있다.


이번코드는 짧아서 필요성을 못 느낄수도 있지만

추후 더 많은 양의 코드를 별도로 메소드로 만들어낼때

위의 자동화? 기능을 활용하면 좋을 것 같습니다.