라이브 템플릿을 사용해서 보다 빠르게 코드를 작성하세요

게시일: 작성자: jessie.cho@jetbrains.com

코드 데모를 준비하거나 일상적으로 코드 작성할 때 라이브 템플릿을 활용하면 코딩 속도를 현저히 높일 수 있습니다. 몇 가지 문자를 입력하면 더 긴 코드로 확장됩니다.

이 블로그에서는 라이브 템플릿이 필요한 이유와 사용 방법을 설명해드릴 예정입니다. 또한 새 템플릿을 생성하고 팀원들과 공유하는 법도 확인해 보세요. 그럼 단순 템플릿부터 시작하겠습니다.



단순 템플릿

단순 템플릿에는 오직 고정된 텍스트만이 포함됩니다. 단순 템플릿을 확장하면 텍스트가 자동으로 소스 코드에 삽입되어 줄임말을 대체합니다.

main 메소드를 코드에 추가하려는 상황을 가정해보겠습니다. 이때 ‘main’을 입력한 후 탭 키를 누르거나 엔터 키를 누르면 main 메소드로 대체할 수 있습니다. 또한 public static void main의 머리글자를 딴 ‘psvm’을 입력해도 같은 결과가 나옵니다. ‘main’ 및 ‘psvm’ 템플릿은 IntelliJ IDEA에서 지원되는 단순 라이브 템플릿입니다. 저는 더 기억하기 쉬운 ‘main’을 자주 사용하는 편입니다.

콘솔에 값을 출력하려면 ‘sout’를 입력해 System.out.println 코드로 확장하세요. 이 흥미로운 라이브 템플릿은 ‘soutv’, ‘soutp’, ‘soutm’ 등의 다양한 버전으로 지원됩니다(이번 섹션에 포함된 gif를 통해 다양한 버전을 확인하실 수 있습니다).

또한 필드나 변수를 정의하는 데 라이브 템플릿을 활용할 수도 있습니다. 예를 들어, ‘psfi’를 입력하면 public static final int 필드 코드가 생성됩니다.

하지만 이것은 라이브 템플릿에서 할 수 있는 다양한 작업 중 시작에 불과합니다.

매개변수화된 라이브 템플릿

매개변수화된 템플릿에는 입력을 허용하는 변수가 포함됩니다. 매개변수화된 템플릿을 확장할 경우 변수는 사용자가 직접 지정하거나 IntelliJ IDEA에서 자동으로 계산한 입력 필드로 대체됩니다.

for 루프를 숫자 1-10에 대해 반복하여 삽입하려는 상황을 가정해 보겠습니다. 모든 루프 세부 사항을 일일이 입력하는 대신 ‘fori’를 입력하여 for 루프로 확장할 수 있습니다. 루프 변수 이름을 수정하고 싶지 않다면 엔터 키를 눌러 다음 자리표시자로 이동하면 됩니다.

‘for’을 입력하면 ‘for’, ‘fori’, ‘foreach’와 같은 for 루프의 다양한 버전이 표시됩니다. 각 템플릿의 측면에는 간단한 설명이 함께 제시되므로 내게 가장 적합한 옵션을 선택하는 데 유용합니다.

또 자주 사용되는 다른 제어문에는 if 문이 있습니다. ‘if’를 입력하고 탭 키를 누르면 IntelliJ IDEA가 전체 괄호 집합을 자동으로 추가합니다. 개인적으로 가장 좋아하는 기능 중 하나는 누락된 괄호를 추가하는 Complete Current Statement(현재 구문 완성) 명령어입니다. if 문의 변형 버전인 ‘ifn’를 활용하면 IntelliJ IDEA에서 null이 아닌 변수를 검사하는 코드가 생성됩니다.

줄임말을 입력할 때 다양한 라이브 템플릿이 표시되는 것을 보셨나요? 그렇지만 표시되는 옵션이 라이브 템플릿, 메소드 또는 키워드 중 어디에 해당하는지 어떻게 구별할 수 있을까요? 가령, c를 입력할 경우 clone(), char, class, ‘cxf’ 등의 여러 옵션이 표시됩니다. 메소드 이름 다음에는 괄호가 추가되며 키워드의 경우 설명이 따로 없습니다. ‘cxf’와 같은 라이브 템플릿에는 설명이 포함되지만 괄호가 추가로 붙지는 않습니다.

둘러싸기 라이브 템플릿


둘러싸기 라이브 템플릿을 활용하면 선택한 블록 코드를 다른 코드로 감쌀 수 있습니다. Ctrl+Alt+J(Windows/Linux) 또는 ⌥⌘J(MacOS) 키를 누르면 Select Template(템플릿 선택) 팝업이 표시됩니다. 이때 둘러싸기 라이브 템플릿을 선택하여 태그 쌍으로 코드를 감싸고 코드 조각을 수정하거나 누락된 코드를 추가할 수 있습니다.

모든 기존 라이브 템플릿 보기

IntelliJ IDEA에는 수많은 라이브 템플릿이 정의되어 있습니다. 이 내용에 관심이 있다면, 모든 라이브 템플릿을 살펴보고 사용 방법을 학습해 보세요.

모든 라이브 템플릿을 확인하려면 Ctrl+Alt+S(Windows) 또는 ⌘Comma(macOS)를 사용하여 Settings(설정) 대화상자를 열어주세요. 그리고 라이브 템플릿을 검색하세요. 라이브 템플릿은 반복, Kotlin, Maven과 같이 언어별 또는 기능별로 그룹 지정되어 있습니다.

일부 목록을 클릭하여 해당 템플릿의 줄임말을 사용 시 어떤 코드가 입력되는지 확인할 수 있습니다. 여러 템플릿을 살펴보는 과정은 직접 코드를 작성할 때도 도움이 됩니다.

자주 사용되는 ‘sout’ 템플릿의 세부 사항을 확인해보겠습니다. 이 템플릿을 사용할 때 커서가 괄호 안에 배치된다는 점을 기억하고 계실겁니다. END 변수가 커서의 위치를 지정합니다.

기존 라이브 템플릿 복사

기존 라이브 템플릿의 줄임말과, 삽입되는 관련 코드를 복사하고 편집해 새 라이브 템플릿을 생성할 수 있습니다.

예를 들어, Surround with Callable(호출 요소로 감싸기) 템플릿을 수정해 익명 클래스 대신 람다식에서 선택한 코드를 감싸도록 만들어 보겠습니다.

Settings(설정)로 이동하여 Surround with Callable 옵션을 선택하고 Duplicates(복제) 아이콘을 클릭하세요. 이 템플릿의 이름을 CWithLambdas로 변경한 후 설명도 ‘람다를 활용하는 호출 요소로 감싸기’로 바꿔줍니다. 다음으로 템플릿 텍스트가 람다를 활용하도록 변경합니다.

이제 이 템플릿을 코드에 적용하는 옵션이 지원됩니다.

새 라이브 템플릿 생성

기존 템플릿 수정만으로는 부족하다면 처음부터 새로운 라이브 템플릿을 생성할 수도 있습니다.

가령, 테스트 메소드를 코드에 빈번히 삽입해야 하는 경우를 가정해 보세요. 새 라이브 템플릿을 생성해 이 작업을 더욱 수월하게 실행할 수 있습니다.

Settings(설정) | Live Templates(라이브 템플릿)으로 이동하여 +(추가) 아이콘을 클릭합니다. 라이브 템플릿 또는 템플릿 그룹 생성을 선택할 수 있습니다. IntelliJ IDEA의 라이브 템플릿은 언어별 혹은 기능별로 그룹화되어 있습니다. 테스트와 관련한 다수의 라이브 템플릿을 생성하실 계획이라면 TDD(테스트 기반 개발) 등의 그룹을 구성하는 것도 가능합니다.

새 라이브 템플릿을 생성하려면 줄임말, 설명 및 템플릿 텍스트에 값을 추가해야 합니다. 또한 템플릿 텍스트의 변수를 정의하고 기본 값이나 다른 세부 사항 등을 지정하는 방식으로 변수를 구성할 수 있습니다. 마지막 단계는 주석, 선언, 표현식, 스마트 유형 완성, 구문 또는 문자열과 같은 라이브 템플릿의 컨텍스트를 정의하는 것입니다. 라이브 템플릿이 모든 곳이 아닌 필요한 곳에만 표시되도록 지정하려면 꼭 필요한 단계입니다.

라이브 템플릿 공유

나만의 라이브 템플릿을 새롭게 생성하면 팀원들과 공유하고 싶으실 수도 있습니다. 그런 경우 IntelliJ IDEA에서 이 설정을 파일로 내보내는 것이 가능합니다. 라이브 템플릿만 내보내려면 다른 옵션은 선택 해제하세요. 파일을 내보낸 후 팀원이 가져오기 설정을 활용해 해당 파일을 가져올 수 있습니다(단, 업데이트된 설정을 확인하려면 IntelliJ IDEA 재시작이 필요할 수도 있습니다). 실제로 라이브 템플릿을 공유하는 과정을 확인하려면 이 블로그 상단에 있는 스크린캐스트를 시청해주세요.

요약

강력하고 활용도가 높은 기능인 라이브 템플릿을 사용해서 생산성을 향상시켜보세요.

라이브 템플릿은 수동 입력 시간을 단축하여 코딩 속도를 개선합니다. 또한 IntelliJ IDEA에서 사전 정의된 라이브 템플릿을 사용하고 편집하거나 나만의 템플릿을 생성할 수도 있습니다. 다양한 수준의 사용자 지정 옵션도 제공됩니다. 직접 생성한 라이브 템플릿을 팀원들과 공유해 팀의 생산성도 함께 높여보세요.

Happy developing!

이 게시물은 Mala Gupta가 작성한 Write Code Faster Using Live Templates를 번역한 글입니다.