david's daily developer note

[Native] Visual Studio Code Snippet (*.Snippet) 본문

[Develop] Native/Native

[Native] Visual Studio Code Snippet (*.Snippet)

mouse-david 2018. 9. 28. 17:23
728x90

코드 작성 기계인 소위 개발자들은
코드 작성 과정에서 비슷한 코드 블록을 반복적으로 작성하는 상황이 빈번하다.
이는 매우 피곤하다. 가끔 키보드를 난타하는 즐거움이 있지만, 단순 반복이다 보니,
생각하는 지적인 기계인 우리에게는 이 상황은 거의 피곤할뿐이다..


반복적인 코드 블록은 For, While 루프라던지, Switch, If등의 분기 조건이 일반적이다.
최근의 팀원들과 코딩 컨벤션 규칙을 만들고자 "좋은 코드 프로젝트"라는 것을 시작했다.
구글의 C++ 스타일 가이드와 몇몇 서적들을 보면서 룰을 만들고 있다.
(https://google.github.io/styleguide/cppguide.html)

그러나,,,
안타깝게도 PM의 엄청난 잔소리가 없다면 동료들이 실천하지 않는다는 것도 알고 있다.


종종, 신입직원들은 (고참 개발자들도 가끔,,) Iteration 특정 분기에서 Step을 빼먹기도 한다.
본인 스타일로 코드를 작성하는 것은 문제가 없지만, 단순한 코드 블록의 작성에서 사소한 실수는 항상 치명적이다.
바꿔 말하면, 단순 코드 블록의 삽입만 자동으로 되어도 1차 개발에서 실수로 인한 결함은 제법 줄어든다.

우리는 좋은 코드를 만드는 토론과 함께 
몇몇 자주 사용되는 코드블록의 Sample을 자동으로 삽입하는 방법을 고민하였다.
VS Add-in, Macro, Code Snippet 등 다양한 방법이 있지만
시간과 사용성을 고려할 때, Code Snippet 가 효과적일것 같아서 테스트하는 도중에 이 글을 작성한다.

C++기준으로 작성되었으며, 더욱 자세한 작성법과 사용법은 다음을 참고하자
(https://msdn.microsoft.com/ko-kr/library/ms165394.aspx)

속성으로 다음 단계를 통하여 샘플을 만들 수 있다.
1. VS설치경로의 코드 조각 파일 폴더로 가서 하나를 복사하자
( ..\\Microsoft Visual Studio 11.0\VC\Snippets\1042\Visual C++\)

2. 아무 파일이나 하나 복사해서 VS로 연다. 본인은 Class를 샘플로 정했다.

3. 편집하고 저장한다. XML 항목들은 매우 직관적이다.
 -  Literal은 코드 조각이 삽입된 후, 입력대기 상태를 지정한다.
   (상기 예제에서는 클래스 코드 조각이 삽입되고 클래스이름 입력단계가 있다.)
 - Title은 '_'와 같이 몇몇 특수 문자가 먹지 않는다.
 - Shortcut과 Title이 다르면 드롭박스에 표시지 되지 않을 수 있다.
 - CDATA 항목에 들어가는 문자는 XML 특수 기호 표현을 사용하지 않아도 된다 ( > 표현하려고 >를 넣지 않아도...)

"nullcheck"란 이름으로 코드조각을 만들어보았다.

4. 저장된 *.snippet 파일을 가져오자 VS 메뉴 -> 도구 -> 코드조각관리자 실행한다.

5. 가져오기를 눌러서 *snippet파일을 선택하고, 폴더(그룹)를 지정하자.
Visual C++폴더에는 관리자 권한이 없으면 추가할 수 없다. 추가 버튼으로 폴더를 추가할 수 있다.

6. 마지막에 만든 nullcheck를 테스트하였다.

드롭박스에 nullcheck가 표시되고 Enter나 Tab입력시 변수 Default 코드에 입력대기상태가 된다.


좋은 코드를 만들기 위한 토론이 끝나고 일부 자주 쓰이는 코드 블록들 코드 조각으로 등록하여 배포한다면, 
귀차니즘을 극복할 수 있는 좋은 방안이 될 수도있겠다....... 


728x90