본문 바로가기

IDE/IntelliJ

라이브 템플릿(Live template)을 사용한 코드 자동 생성 매크로 만들기

이 문서의 내용

    더보기

    라이브 템플릿(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는 템플릿이 사용 될 수 있는 언어 별 환경입니다.
    • 기존 그룹과 템플릿을 수정하거나, 새롭게 추가 하는 것도 가능합니다.