개발을 하다보면 특정 양식의 코드를 연속으로 작성해야 할 때가 있습니다.
제 경우에는 클래스의 속성(Property)를 만든다거나 유닛 테스트(Unit Test) 함수를 만들 때 그렇더라구요.
여기서는 회사에서 제가 메인으로 사용하는 IDE가 Visual Studio이다 보니, Visual Studio에서 지원하는 기능에 대해서 간단하게 소개해볼까 합니다.
아래의 내용은 Microsoft 사이트의 'Walkthrough: Create a code snippet' 문서에서도 확인 가능합니다.
Visual Studio에서는 'Code snippet(코드 조각 관리)'를 이용해서 특정 템플릿의 코드를 만들 수 있습니다.
만들어 볼 코드 템플릿은 아래와 같습니다.
- 생성 단축키: tm
- 생성 되는 코드:
[Test]
[Description("")]
public void TestMethod()
{
// Arrange
// Act
// Assert
}
1. 먼저 xml 형식의 '*.snippet' 파일을 만들어야 합니다.
기본 템플릿은 아래와 같습니다. 여기서 필요한 내용들을 추가해야 합니다.
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title></Title>
</Header>
<Snippet>
<Code Language="">
<![CDATA[]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
아래는 'TestMethod' 생성을 위해서 제가 수정한 템플릿입니다. 내용을 참고하셔서 필요한 내용을 넣으시면됩니다.
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>TestMethod</Title>
<Description>Write test method code template</Description>
<Shortcut>tm</Shortcut>
</Header>
<Snippet>
<Code Language="CSharp">
<![CDATA[[Test]
[Description("")]
public void $MethodName$()
{
// Arrange
// Act
// Assert
}]]>
</Code>
<Declarations>
<Literal>
<ID>MethodName</ID>
<ToolTip>Input test method name</ToolTip>
<Default>TestMethod</Default>
</Literal>
</Declarations>
</Snippet>
</CodeSnippet>
</CodeSnippets>
- Title: 스니펫의 이름
- Description: 스니펫 설명
- Shortcut: 단축키. 개발할 때 이 단축키를 입력해서 템플릿을 생성하기 때문에 중요합니다.
- Code-Language: 사용 언어. C#이라는 'CSharp'을 입력했습니다.
(VB, CSharp, CPP, XML, JavaScript, TypeScript, SQL, HTML을 지원합니다. 여기에서 확인 가능합니다) - Code: 생성될 템플릿 코드. 여기서 작성한 코드가 단축키를 입력했을 때 생성됩니다.
- $MethodName$: 생성되는 코드에서 사용자가 입력해줘야 할 부분이 있다면 '$~$'로 묶어서 선언합니다. 여기서는 테스트함수의 이름을 생성이후에 입력해줘야 하기 때문에 사용했습니다. 필요없으면 사용하지 않아도 됩니다. - Literal: '$~$' 을 이용해서 사용하는 변수를 여기서 설정합니다. 저는 'Code' 부분에서 'MethodName'을 사용했기 때문에 여기서 선언해줬습니다.
- ID: 고유 아이디
- ToolTip: 툴팁 정보
- Default: 생성되는 기본 값.
2. 만든 파일을 Visual Studio에 추가합니다.
Visual Studio 메뉴에서 'Tools(도구) → Code Snippets Manager(코드 조각 관리자)' 로 이동합니다.
(단축키: Ctrl +K, Ctrl + B)
'가져오기' 버튼을 누르고, 생성한 '*.snippet' 파일을 불러옵니다.
추가한 내요을 확인하고 '마침' 버튼을 누르면 완료됩니다.
3. 생성한 스니펫을 사용해보겠습니다.
설정한 단축키(tm)을 입력하면, 아래 그림처럼 IDE에서 관련 설명을 보여줍니다.
이 상태에서 '탭' 버튼을 두번 클릭하면 입력했던 템플릿 코드가 만들어집니다.
테스트로 생성한 스니펫의 경우는 'TestMethod'라는 값을 설정했기 때문에 커서가 'TestMethod'로 가 있습니다.
원하는 함수 이름을 입력하고 엔터키를 입력하면 최종 생성이 완성됩니다.
4. 생성한 스니펫을 수정하기
입력한 내용은 아래의 경로에 파일이 저장됩니다.
$Documents\Visual Studio '버전'\Code Snippets\'사용 언어'\My Code Snippets
// 제 경우
$Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets
여기서 파일을 열어서 수정하면 내용 변경이 가능합니다.
5. 마무리
제 경우는 유닛 테스트를 작성할 때 함수의 템플릿을 만들거나, 유닛 테스트 내에서 'Assert.AreEqual' 함수를 사용할 때 이 기능을 사용하고 있습니다.
자주 사용하는 내용에 대해서 템플릿을 작성하셔서 사용하면 코드 작성 시간이나 반복된 내용에 대한 타이핑 양을 줄일 수 있을 것 같습니다.
마지막으로 위에서 사용한 'TestMethod.snippet' 파일과 'AssertAreEqual.snippet' 파일을 아래에 추가했습니다.