2.4.2 유용한 기능들
클래스 마법사 이외에도 Visual Studio에서 제공하는 유용한 기능이 많이 있다. 이러한 기능들 중에서 최신 Visual Studio에서 새롭게 제공하는 몇몇 기능에 대해 알아보도록 하자.
먼저 Visual Studio에서 제공하는 리팩토링refactoring 기능에 대해 알아보자. 리팩토링refactoring이란 프로그램의 동작은 그대로 유지하면서 소스 코드의 구조를 변경하는 작업을 의미한다. 주로 소스 코드의 재사용성을 높이기 위해 클래스 및 함수 구조를 변경한다거나, 가독성을 높이기 위해 변수 및 함수 이름을 변경하는 작업 등을 의미한다. Visual Studio가 여러 가지 측면에서 다양한 개발 편의성을 제공하지만 아직까지 리팩토링 기능은 다소 부족한 면이 있다. 그러나 Visual Studio 2015 버전부터는 이름 바꾸기 리팩토링 기능을 제공하고 있어서 이 기능의 사용 방법에 대해 설명하려고 한다. 참고로 이전 버전의 Visual Studio에서는 Visual Studio 갤러리라는 확장 기능을 통해 리팩토링 기능을 사용할 수 있다.
MFC 응용 프로그램 마법사가 만들어 준 First 프로젝트 소스 코드 중에서 멤버 변수의 이름을 바꾸는 작업에 대해 생각해보자. 만약 CMainFrame 클래스의 멤버 변수인 m_wndToolBar 이름을 m_wndMainToolBar로 바꾸고 싶다면 어떻게 해야 할까? 기본적으로 Visual Studio 편집기가 제공하는 문자열 찾기 및 바꾸기 기능을 사용할 수 있을 것이다. 그러나 m_wndToolBar라는 이름은 MainFrm.h 파일에 선언되어 있고, 이 변수를 사용하는 소스 코드는 MainFrm.cpp 파일에서 찾을 수 있다. 게다가 프로그램의 규모가 커진다면 MainFrm.cpp 파일이 아닌 다른 파일에서도 m_wndToolBar 변수를 사용하는 일이 생길 수 있다. 그러므로 프로그램의 규모가 커질 경우 변수 또는 함수의 이름을 바꾸는 것이 그리 간단한 작업이 아닐 수도 있다.
이러한 경우에 사용하면 좋은 것이 리팩토링의 이름 바꾸기 기능이다. 리팩토링 이름 바꾸기 기능을 사용하면 현재 프로젝트 또는 솔루션에 포함된 모든 소스 파일에서 특정 변수 및 함수 이름을 모두 검색하여 한꺼번에 변수 이름을 변경할 수 있다. 리팩토링 이름 바꾸기 기능을 사용하려면 편집창에서 특정 문자열을 선택하고, 마우스 오른쪽 버튼을 눌러 나타나는 메뉴 중에서 [이름 바꾸기...] 메뉴 항목을 선택하면 된다. 예를 들어 MainFrm.h 파일을 열어서 m_wndToolBar 변수가 선언된 문장을 찾아보자. 그리고 마우스로 m_wndToolBar 변수 이름 위에서 마우스 오른쪽 버튼을 클릭한 후 [이름 바꾸기...] 메뉴를 선택하자. 그림 2-45를 참고하라.
[이름 바꾸기] 메뉴를 선택하면 그림 2-46과 같은 ‘Rename’ 대화 상자가 나타난다. 여기서 ‘새 이름’ 칸에 변경할 변수 이름을 입력하자. 예를 들어 m_wndToolBar 이름을 m_wndMainToolBar로 변경하려면 ‘새 이름’ 칸에 m_wndMainToolBar라고 입력하면 된다. 하단의 ‘검색 범위’에서는 솔루션 또는 프로젝트를 선택할 수 있다. 여기서는 기본 설정을 그대로 사용하기로 하고, 하단의 [미리 보기] 버튼을 클릭하자. 그러면 그림 2-47과 같은 변경 내용 미리 보기 창이 나타난다.
미리 보기 창에서는 m_wndToolBar라는 변수가 사용된 모든 소스 코드 목록을 보여주고, 실제로 이름 바꾸기를 수행해도 되는 코드인지를 확인할 수 있다. 이름 바꾸기가 수행될 코드들이 정확하게 선택되었는지를 확인한 후 하단의 [적용] 버튼을 클릭하면 실제 이름 바꾸기 리팩토링이 수행된다.