<같이보기>
2019/01/30 - [소프트웨어/소스인사이트 응용] - 소스 인사이트 매크로를 이용한 자동 주석(comment) 만들기..
2019/01/22 - [소프트웨어/소스인사이트 응용] - 소스 인사이트의 edit와 view 기능개선(a.k.a. trouble shoot..)
2019/01/20 - [소프트웨어/소스인사이트 응용] - 소스 인사이트의 특별한 에디트 능력들..
2019/01/17 - [소프트웨어/소스인사이트 응용] - 소스 인사이트가 가지고 있는 검색 기능들..
2019/01/17 - [소프트웨어/소스인사이트 응용] - [tip]소스인사이트 프로젝트 내에서 불필요한 파일 제거하기..
소스 분석 툴 - 소스인사이트(Source Insight) v3.5 기준
소스 인사이트라는 툴을 내가 처음 접했던 시기는 10년도 지난 시점인 2003년 어느날이었습니다. 그 당시 입사했던 회사가 삼성 무선의 SW 외주 회사였는데 여기에서 많은 지식들을 습득했던 고마운 회사였죠. (물론 일주일 7일 중에 5일은 회사에서 잠을 잤던 시절이었습니다.)
그 때 이후로 아직까지 소스코드를 볼 때엔 소스 인사이트를 사용했고, 특례였던 나는 다시 학교로 복학해서 동아리 후배들과 주변 친구들에게 Source Insight를 설파했던 기억이 납니다. 또한 그 이후 졸업을 하고 삼성 무선 사업부에 입사를 하게 되었는데 거기에서도 Source Insight를 사용하고 있음에 나는 쬐끔은 더 경쟁력 있는 신입이가 되어 있었죠. (사실 소스인사이트 매크로 사용법 문서도 만들어 팀에 자료로 만들기도 했었는데, 별로 많이 보지는 않더군요..ㅎ)
소스 분석 툴 중 윈도우 버전에서는 최강
소스 인사이트(Source Insight)는 소스 분석 툴 중에서는 단연 최강이라고 생각합니다. 우선 가볍죠. v3.5 기준으로 설치 후 설치 용량을 보면 약 10MB 정도 용량을 차지합니다. 그런데 기능은 막강하죠. 우선 내가 느낀 소스인사이트 개발자의 철학이 뭐냐면, 소스코드 분석은 1. 마우스 없이도, 2. 마우스 만으로도 가능해야 한다는 생각인 듯합니다. 왜냐하면, 왠만한 기능들은 모두 단축키나 아니면 마우스 컨트롤 만으로 다 할 수 있기 때문이다. 즉, 개(같은)성(격)이 넘치는 개발자들의 취향 존중을 해 준 것입니다. 이외에도 여러가지 면에서 개발자들의 개취를 존중해 주고 있을 뿐만 아니라 귀찮은 일들을 쉽게 해 줄 수 있는 여러 기능들이 있었습니다.
여러 장점들이 많지만 요약하면 소스 인사이트의 장점은 다음과 같이 많습니다.
- 가볍다. 무지무지 가볍다.
- 소스코드 분석을 1) 마우스 없이도, 2) 마우스 만으로도 가능하게 구현했다.
- 복잡한 소스코드라도 쉽게 함수, 변수, 정의 들을 찾아 볼 수 있게 설계되어 있다.
- 단축키를 내가 원하는 대로 바꿀 수 있다.
- 화면 스타일이나 기타 비쥬얼 관련 특징들을 내가 원하는 대로 바꿀 수 있고, 이 스타일을 팀간 공유하여 동일한 뷰 스타일을 생성할 수 있다.
- 기타 여러 가지 유용한 기능들이 있는데 이는 이후 추가 글로 설명드리겠다.
참고로 저는 C/C++을 위주로 사용하고 있으며, 지금까지 주로 임베디드와 펌웨어 소스코드를 위주로 작업을 하였음을 말씀드립니다.
소스 인사이트 설치
소스 인사이트 설치 프로그램을 확보 하셨다면, 설치는 쉽습니다. 그냥 Next 하시면 되세요.
라이센스 등록까지 하시고 나면 아래와 같은 실행 프로그램이 보입니다.
참고로 현재 v4가 현장에서는 사용되고 있는 듯 하지만, v3.5도 10년 넘게 많이들 사용하고 계십니다.
소스 인사이트를 사용하기 위한 프로젝트 만들기
소스 인사이트는 단순히 한 두개의 .c , .h 파일을 보기 위해 쓰일 수도 있지만, 조금 더 복잡하고 찾기 어려운 프로젝트 단위의 소스파일들의 파일들을 찾고 소스코드를 분석하기 위한 툴입니다. 그 소스코드가 내 소스 코드 일 수도 있고, 다른 사람의 소스코드를 분석 하기 위한 것일 수도 있고, 또는 팀으로 활동하는 프로젝트의 소스코드 일 수도 있겠지요.
소스 인사이트에서 프로젝트를 만든 다는 것은, 내가 보고자 하는 소스코드들의 묶음을 하나의 덩어리로 만들어서 텍스트 문서 내에 존재하는 모든 키워드들을 내가 필요할 때 검색할 수 있게 리스트로 만들어 준다는 개념입니다.
이제 차근 차근 한 개의 프로젝트를 소스 인사이트 프로젝트로 만드는 시범을 보여드리도록 하겠습니다.ㅎ
혹시 예제로 사용할 프로젝트 파일이 없다면 아래 링크의 MSP430이라는 MCU의 예제 소스코드를 참고 하시기 바랍니다.
이곳에서의 설명은 아래 소스코드로 대부분 진행하도록 할게요.
http://www.ti.com/tool/capsenselibrary
1. 새 프로젝트 만들기
New Project를 클릭하면 새로 만들 소스 인사이트의 프로젝트명을 기입하게 됩니다.
이 이름은 Open Project 를 수행하여 다른 프로젝트를 가져오기 할 때 구분할 이름으로 사용될 수 있습니다.
두 번째 줄의 경로명은 프로젝트 파일들이 어디에 저장될 지 설정하는 부분입니다.
저는 대부분의 경우 이 경로명은 바꾸지 않습니다. 왜냐하면 open project 때나, Remove project 시에 이게 더 편하기 때문입니다. 그리고 소스 인사이트의 프로젝트 데이터는 실제적으로 중요한 데이터는 아니기 때문에(내가 직접 만드는 소스코드 프로젝트에 비해서...ㅎ) 그냥 둡니다.
위 화면에서 OK를 누르면 아래와 같은 문구가 나옵니다. 그냥 예 해주시면 됩니다.
위 화면에서 예 를 누르면 아래 화면이 나옵니다.
여기서도 다른 내용들이 많이 있지만 설명은 하지 않고(실제 사용하는 경우가 없어서),
아까 위에서 다운로드 한 C 프로젝트 파일의 경로(또는 자신의 프로젝트 파일 경로)를 텍스트 박스에 표시해 주고 OK를 누릅니다.
OK를 누르면, 아래와 같은 화면이 나옵니다. 위에서 지정한 경로의 폴더와 파일, 그리고 하단에 내가 어떤 파일, 몇 개의 파일을 추가 해 주었는지 보여주는 화면 보입니다.
버튼 중에서 Add All 또는 Add Tree를 하게 되면 파일을 추가 할 수 있습니다. 또는 Add로 선택적으로 파일을 추가 할 수도 있네요.
참고로,
Add All은 현재 경로의 모든 파일을 추가한다는 것이고,
Add Tree는 하위 폴더를 포함한 모든 파일들을 추가한다는 의미입니다.
만일 Show only known document types가 default로 체크 되어 있는데 체크를 해제할 경우, 모든 파일이 리스트에서 보이게 됩니다. 가령 .cmd나 .inc 파일과 같은 텍스트 파일을 추가하고자 한다면 체크를 해제하셔야 합니다.
파일은 언제든 프로젝트 내에서 추가 삭제가 가능하니 적절히 선택하시고 Close를 수행하면 됩니다.
2. 파일 싱크 시키기
파일 싱크라는 의미는 현재 소스 인사이트 프로젝트로 등록한 파일들이 가지는 함수, 변수, 정의 등을 모두 읽어들여서 정보화 하는 것을 의미합니다.
Menu의 Project - Synchronize Files를 누르거나 단축키 "Shift+Alt+S"를 누르면 아래와 같은 팝업이 나타납니다.
초기에는 그냥 OK를 하면 프로그레스 바가 나타나며 (파일의 수에 따라 속도는 달라짐), 잠시 뒤 없어집니다.
참고로,
Synchronize 작업은 PC가 쉴때 조금씩 진행이 되므로 작은 파일의 경우 실시하지 않아도 조금 뒤에 모두 Sync가 될 수도 있습니다.
3. 프로젝트 활용하기
새 프로젝트를 만들어 보았습니다.
아래 그림과 같이 main.c 파일 중 하나를 열면 아래와 같이 보기 좋게 화면이 보일 것입니다.
현재는 init(); 파일위에 커서가 올라가 있는 상태이며, 이에 따라 아래 화면에 init() 함수의 내용이 나타나고 있습니다.
만일 필요하면 Ctrl을 누른 상태에서 마우스 클릭을 하면 해당 심볼로 화면이 전환이 됩니다.
다음번에는 소스 인사이트에서 검색과 관련한 여러가지 기능들에 대해 알아보는 시간을 가지도록 하겠습니다.
<끝>
'소프트웨어 > 소스인사이트 응용' 카테고리의 다른 글
소스 인사이트 매크로를 이용한 자동 주석(comment) 만들기.. (1) | 2019.01.30 |
---|---|
소스 인사이트의 edit와 view 기능개선(a.k.a. trouble shoot..) (1) | 2019.01.22 |
소스 인사이트의 특별한 에디트 능력들.. (0) | 2019.01.20 |
소스 인사이트가 가지고 있는 검색 기능들.. (0) | 2019.01.17 |
[tip]소스인사이트 프로젝트 내에서 불필요한 파일 제거하기.. (0) | 2019.01.17 |