프로젝트 생성

소스 인사이트 사용법을 실습하려면 분석 대상 프로젝트가 있어야 한다. 적당한 규모의 프로젝트가 필요하니 이 사이트의 프로젝트란에 있는 당근 1.2를 사용해 보자. 당근은 윈도우 환경의 텍스트 편집기이다. C++로 작성되어 있으며 실제 비주얼 C++로 컴파일 가능하다.

아니면 여러분이 직접 만든 프로젝트나 구조를 잘 알고 있는 프로젝트를 사용해도 상관없다. 소스 분석툴이 제대로 분석해 내는지 검증해 보려면 어느 정도 규모가 있는 익숙한 소스가 필요하다. 적당한 폴더에 실습 프로젝트를 준비해 두자.

프로젝트를 생성하기 위해 메뉴의 Project/New Project를 선택한다. 용어에 약간 주의해야 하는데 지금 만드는 것은 소스 인사이트의 프로젝트이지 실제 동작하는 분석 대상 프로젝트가 아니다. 분석 대상 소스의 목록과 분석 방식을 정하는 옵션을 모아 놓은 것이 소스 인사이트 프로젝트이다. 다음 대화상자가 나타난다.

프로젝트의 이름과 설정을 저장할 폴더를 지정한다. 분석할 프로젝트를 잘 표현하는 이름을 주고 설정 저장 폴더는 디폴트대로 두는 것이 좋다. 설정 폴더는 소스 인사이트가 자체적으로 생성 및 사용하는 정보를 저장하는 것이지 분석 대상 프로젝트의 폴더가 아니어서 별로 중요하지 않다. 당근 프로젝트를 분석할 것이므로 이름을 Dangeun으로 주고 설정 폴더는 디폴트를 적용했다. OK 버튼을 누르면 프로젝트의 속성을 묻는다.

File Paths에 분석할 프로젝트의 소스 폴더를 지정한다. 여기에 분석 대상 프로젝트의 소스 파일이 저장되어 있다. 미리 준비해둔 실습 프로젝트의 디렉토리를 지정해 준다. 나머지 옵션은 왠만하면 디폴트를 받아들이는 것이 좋다. 소스 파일은 수동으로 작성할 수도 있고 미리 만들어 둔 목록에서 읽을 수도 있는데 수동이 디폴트이다.

그 외 조건부 컴파일을 통제할 매크로를 정의하거나 명칭에 대한 DB를 작성하는 방식, 외부 라이브러리의 심볼 가져오기 등의 옵션이 있다. 소스 폴더를 지정한 후 OK 버튼을 누르면 소스 추가 대화상자가 나타난다. 컴파일러가 사용하는 소스 목록과 분석 대상 목록이 반드시 일치하지는 않으므로 어떤 소스를 분석할 것인지 직접 지정해야 한다.

위쪽에는 프로젝트 디렉토리와 구성 파일의 목록이 보이며 아래쪽에는 분석 대상 소스 파일의 목록이 표시되는데 최초 이 목록은 비어 있다. 분석 대상을 선택하여 아래쪽 목록에 추가한다. 파일을 개별적으로 하나씩 선택할 수 있는데 단순한 문서 파일이나 참고용 압축 파일 등은 분석 대상에서 제외하는 것이 좋다.

소스 폴더에 있는 모든 파일을 추가하려면 Add All 버튼을 누른다. 소스가 한 디렉토리에 모두 저장되어 있으면 제일 간편한 방법이다. 당근 프로젝트는 한 디렉토리에 모든 소스가 있어 Add All만 누르면 된다. 더 큰 프로젝트는 기능별 디렉토리에 소스를 나누어 보관하는데 이럴 때는 AddTree 버튼을 눌러 서브 디렉토리안의 모든 파일까지 추가한다.

C++로 만든 당근 프로젝트는 확장자 h cpp인 파일만 추가하면 거의 모든 소스가 분석 대상이 된다. 자바 프로젝트라면 *.java 파일만 추가하면 될 것이다. 잘못 추가한 파일은 아래쪽의 Remove 버튼을 눌러 제거한다. 분석 대상 파일을 다 선택했으면 Close 버튼을 눌러 창을 닫는다.

프로젝트창에 분석 대상 파일 목록이 나타나며 이 목록에서 파일을 바로 열 수 있다. 프로젝트창이 보이지 않으면 View/Panels/Project Window 명령을 선택한다. 디렉토리 구조, 명칭의 목록, 클래스 목록까지 일목요연하게 보여준다. 메인 소스 파일인 Dangeun.cpp를 열어 보자. 가운데 소스창에 코드가 표시되며 좌우, 아래쪽에 분석을 도와주는 각종 패널이 열린다.

프로젝트의 구성 파일은 언제든지 추가하거나 제거할 수 있다. 실제 프로젝트도 중간 중간에 목록이 바뀌기며 분석중에 더 필요한 파일이 생기기도 한다. Project/Add and Remove Project Files 항목을 선택하면 파일 선택 대화상자가 다시 나타난다.

프로젝트 소스 디렉토리 바깥의 파일도 추가할 수 있는데 예를 들어 SDK나 라이브러리의 파일까지도 같이 볼 수 있다. 후보 파일 목록에는 *.c, *.h, *.java 등 잘 알려진 확장자의 파일만 표시되는데 임의의 파일까지 다 보려면 Show only known file types 체크 박스를 해제한다. 샘플 데이터를 sample.data 파일에 저장해 두고 인클루드해서 사용한다면 이 파일도 분석 대상에 포함시켜야 한다.

소스 인사이트는 항상 백그라운드에서 소스를 컴파일하여 분석할 준비를 철저히 해 둔다. 그래서 언제든지 명칭을 검색할 수 있고 원하는 곳으로 즉시 이동할 수 있다. 그러나 대량의 파일이 한꺼번에 추가, 삭제되면 백그라운드에서 미처 다 준비하지 못할 경우도 있는데 이때는 강제로 다시 준비하도록 지시한다. Project/Synchronize Files 메뉴를 선택하면 프로젝트를 다시 빌드한다.

모든 파일을 강제로 다시 분석하면 명칭간의 관계를 다시 파악하여 분석이 정확해진다. 백그라운드에서도 충분히 빠른 속도로 컴파일하고 있어 대개의 경우는 이 명령을 내리지 않아도 충분하다.