Jetbrains IDE Live Template

Jetbrains의 IDE에서 제공해주는 Live Template기능을 이용해 빠르게 보일러플레이트 코드를 작성하는 방법

MJ Studio
MJ Studio

--

0. 개요

보일러플레이트란 우리가 어떤 기능을 작성하기 위해 관용적으로 작성해야 하는 코드들을 의미한다.

처음 프로젝트를 만들 때 이와 같이 기본적인 설정들이나 흔히 쓰이는 파일들이 모두 있는 스타터팩으로 시작하는 것도 보일러플레이트라고 하기도 한다.

이는 코드 수준에서도 비슷한 의미이며 RecyclerView.Adapter 같이 복잡하지만 리스트를 만들때마다 만들어야 하는 녀석은 안드로이드 개발의 고질적인 문제점이다(이게 화가 난다면 Compose를 추가하고 LazyColumn을 쓰러가자!).

1. 문제점

다음과 같은 어떤 RecyclerView.Adapter 의 코드를 보자

기본적으로 item_my.xml 이라는 아이템 레이아웃 파일에서 View Binding을 쓴다고 하자.

MyData 라는 클래스는 해당 데이터하나를 의미하고 MyAdapter 라는 이름의 어댑터를 만들었다.

그럼 이제 이 MyAdapter 를 신나게 리스트를 만드는데 RecyclerView 의 어댑터로 사용할 수 있다.

하지만 우리가 작성한 코드는 굉장히 많다. 그렇지 않다면 당신은 타자가 빠른 사람이다.

우리는 이러한 어뎁터를 모든 리스트마다 각각 하나씩 만들어야 한다.

2. Live Template 으로 편하게 만들기

더이상 서론은 거두절미하고 Jetbrains IDE에서 모두 지원해주는 기능인 Live Template은 우리가 미리 작성해놓은 코드를 에디터에 저장해두고 손쉽게 복사해올 수 있는 기능이다.

하나 추가해보자.

이 메뉴에 들어가보면 IDE에서 이미 사전에 만들어 둔 Live Template들이 몇 가지가 있는 것을 알 수 있다.

코드를 복사해준다.

아래에서 사용가능한 파일 확장자를 원하는 언어로 적용해주고 Reformat according to style을 체크하여 이 Live Template을 복사해올 때 자동으로 정렬도 되게 해준다.

이제 저장을 한다면 우리의 Live Template이 만들어진 것이므로, 코드상에서 사용할 수 있다.

3. 사용법

Shift + Shift 를 눌러 Insert Live Template 커맨드를 실행시킬 수도 있고, 역시나 우리가 편한 단축키를 설정하여 사용할 수 있다.

이제 코드상에서 해당 단축키를 실행하면 다음과 같이 나오는데, 여기서 Live Template의 이름을 검색하여 그 것을 바로 찾아올수도 있다.

4. 활용 — Place holder

그럼 그냥 바탕화면에 .txt 파일을 만들어두고 복사해오면 되지 뭐이런 방법을 사용하냐고 할 수 있지만 Live Template의 활용성은 강력하다.

그 중 하나가 변수를 이용한 Place Holder 기능인데, 다음과 같이 설정해보자.

우리가 부분적으로만 바꿔줘야할 클래스의 이름이라든지 사용할 데이터 클래스의 이름이라든지를

$ 사이에 적어놓는 것이다. 이를 변수라 한다. ($END$ 는 그냥 끝나는 위치를 표시한 것으로 변수가 아니다. 아니다.)

이제 우리의 Live Template을 다시 실행시켜보자. $NAME$ 같이 공통된 문자가 있는 부분들은 타이핑시에 모두 동일하게 채워진다.

우리는 $NAME$$DATA$ 두 개의 변수를 사용했는데, 각 변수를 타이핑 후에 넘어가려면 Tab 을 눌러서 넘어가면 된다.

이 때, Android Studio의 자동 완성이 떠서 매우 짜증이 날 수 있는데, ESC를 한번 눌러주고 자동완성 팝업을 없애준 다음 Tab을 눌러주면 된다. (이는 매우 짜증나서 현재 몇가지 이슈가 열려있다.)

이제 우리의 LiveTemplate 이름을 RecyclerViewAdapter 같은 녀석으로 변경해준 뒤에 모든 어댑터들을 빠르게 만들 수 있다.

5. 주의사항

템플릿이란 간편하지만 우리가 흔히 쓰는 코드를 무지성으로 복사해두고 쓸 수 있는 클립보드같이 활용한다면 위험이 따른다. 자신이 작성하는 코드가 어떤 기능을 하는지도 모르고 그냥 코드를 쓰는 행위를 지양하도록 한다.

코드들을 먼저 이해하고 충분히 손에 익은 후에 자신의 것을 만들었다는 생각이 들면 하나하나 추가해나가는 것을 권장한다.

6. IDE 설정 저장

이렇게 IDE에 단축키나 Live Template등을 자신의 입맛에 맞게 설정한다면 어디서든 이 설정대로 IDE를 사용할 수 있기를 원할 것이다.

Import/Export Settings 옵션을 이용해 설정을 불러오고 내보낼 수 있다.

개중 원하는 설정만 선택해서 내보낼 수도 있고 그러니 자신의 클라우드 환경이나 적절한 위치에 저장하고 불러오면 된다.

자동으로 클라우드에 설정을 동기화해주는 플러그인도 있지만 선호하지 않는 편이다.

7. 부록

에 Live Template의 변수를 활용하는 방법들이 담겨있다.

그저 변수들로 각각 자동완성을 하는것이 아닌 어떤 변수를 작성했을 때 다른곳에선 camelCase가 되거나, 현재 시간이 써지거나 등등도 설정할 수 있으니 필요하다면 사용하자.

--

--