라이브 템플릿(Live template)은 IDE에서 미리 정의한 코드를 자동으로 입력하는 기능입니다.
라이브 템플릿을 사용하면 루프문, 조건문, 클래스 선언문 등을 쉽게 작성 할 수 있습니다.
라이브 템플릿 유형
기본적인 라이브 템플릿은 Simple templates입니다. 단순히 고정된 텍스트만을 포함하고 있습니다. 예를 들어 sout을 입력 후 ⇥ tab을 누르면 구문이 자동 생성됩니다.
System.out.println();
템플릿이 매개 변수를 포함하게 되면 Parameterized templates이라고 부릅니다.
매개 변수의 키워드는 사용자로부터 받거나 IDE가 자동으로 완성합니다.
예를 들어 fori를 입력 후 ⇥ tab을 누르면 다음 구문이 자동 생성됩니다.
for (int i = 0; i < ; i++) {
}
또 다른 템플릿으로는 ifn이 있습니다.
ifn을 입력하고 ⇥ tab을 누르면 매개 변수로 사용하려는 키워드를 제공 받을 수 있습니다.
if (var == null) {
}
Surround templates은 선택한 코드 블록을 미리 정의된 템플릿 안에 래핑(Wrap)하는 매크로입니다.
코드 블록을 선택하고 ⌘ command ⌥ option J를 누르면 코드 블럭을 감싸는 템플릿 중 하나를 제시합니다.
int a = 0;
int b = 10;
예를 들어 위 코드 블럭을 IntelliJ에서 기본으로 제공하는 Surround with Callable 템플릿으로 래핑하면 다음과 같이 코드가 생성됩니다.
Callable<Object> callable = new Callable<Object>()
{
public Object call()
throws Exception
{
int a = 0;
int b = 10;
}
};
템플릿 관리
IntelliJ에서 기본 제공하는 템플릿 외에도 사용자가 템플릿을 커스터마이징 및 관리 할 수 있습니다.
라이브 템플릿 구성 화면을 열려면 ⇧ Shift ⇧ Shift를 누릅니다. 키워드를 입력하고 다음 화면의 Live Templates 항목을 선택합니다.
또는 IntelliJ 툴바에서 Preferences Editor Live Templates를 누릅니다.
템플릿은 사용 할 수 있는 context에 따라서 그룹화 되어 관리됩니다(context는 쉽게 생각하면 언어별 환경입니다).
다음 화면에서 GSP, HTML/XML, HTTP Request, Java 등은 그룹입니다.
Java 그룹 안에 위치한 C, fori, geti 등은 약어입니다.
템플릿을 다른 그룹으로 이동하려면 마우스 우클릭 Move를 선택한 다음 원하는 그룹을 고릅니다(또는 템플릿을 마우스 왼쪽 클릭 후 원하는 그룹으로 옮깁니다).
모든 템플릿은 약어로 정의되며, 그룹 내에서 유일해야 합니다.
약어는 영문, 숫자, 마침표(.), 하이픈(-)을 포함 할 수 있습니다.
템플릿 그룹 생성
화면 우측의 + Add 2. Template Group...을 누릅니다.
enter the new group name에서 그룹 이름을 입력하고 OK를 누릅니다.
템플릿 생성
새로 생성한 그룹에 템플릿을 추가합니다.
그룹을 선택하고 + Add 1. Live Template을 누릅니다.
<abbreviation> 약어를 가진 빈 템플릿이 생성됩니다.
Abbreviation | Description | Template text | Applicable context |
약어를 입력합니다. 예제에서는 hello를 입력합니다. |
템플릿에 대한 설명을 입력합니다. | 템플릿이 생성하는 코드입니다. 예제에서는 System.out.println("Hello world!");를 입력합니다. |
Define을 클릭하고 context 선택합니다. 예제에서는 Java 내 전체 항목을 선택합니다. |
표와 같이 템플릿을 구성하고 OK를 누릅니다.
이제 직접 생성한 템플릿을 코드에서 사용 할 수 있습니다.
입력한 약어 hello를 코드에 작성하면 사용 가능한 템플릿 약어(Abbreviation)와 설명(Description)이 표시됩니다.
예제에서 추가한 템플릿을 선택하고 ⇥ tab을 누르면 템플릿이 코드를 생성합니다.
System.out.println("Hello world!");
정리 및 복습
- 약어는 템플릿을 사용하기 위한 키워드입니다.
- 약어가 입력되면 코드 스니펫이 확장되어 템플릿을 사용 할 수 있습니다.
- 템플릿을 사용하면 미리 정의된 코드가 자동으로 입력됩니다.
- 템플릿은
Simple templates,Parameterized templates,Surround templates으로 구분합니다.
Simple templates | Parameterized templates | Surround templates |
단순히 고정된 텍스트만을 포함하는 템플릿입니다. | 매개 변수를 포함하는 템플릿입니다. 매개 변수는 사용자가 선택하거나 IDE에 의해서 자동으로 생성됩니다. |
선택한 코드 블럭을 미리 정의된 템플릿 안에 래핑합니다. |
- 템플릿은 그룹에서 관리됩니다.
- 그룹은 Context 단위로 구성되며, Context는 템플릿이 사용 될 수 있는 언어 별 환경입니다.
- 기존 그룹과 템플릿을 수정하거나, 새롭게 추가 하는 것도 가능합니다.