개요
최근 몇년간 SNS 등을 돌아다니면 인텔리J를 사용하시는 분들이 꽤 늘었고 기업 구인광고시도 언급이 있을 정도로 예전에 비해서는 사용자가 늘어난듯 합니다.
저는 2012년 부터 이클립스 대신 인텔리J를 이용하여 개발을 해왔고 인텔리J를 좋아하는 개발자입니다. 또한 여러 개발관련 TOOL을 다루어 보고 최적화 하기를 좋아합니다. (“돈 받고 파는 IDE에는 이유가 있구나”라는 개인적인 생각입니다.)
인텔리J가 유료 IDE이다 보니 사용하면서 기능들을 최대한 활용하지 않는다면 손해라는 생각이 들었습니다. 그래서 인터넷을 찾아보다 발견한 인텔리J 42가지 팁 소개 동영상를 보고 정리한 글입니다. 해당 동영상은 한국어 자막을 활성화 하셔서 봐도 번역을 이해하는데 큰 무리가 없어 참고 부탁 드립니다.
본 포스팅은 인텔리J 초급자 보다는 중급으로 넘어가기 위한 사용자들이 타겟입니다.
내용 요약
Productivity Guide
- 이 기능은 인텔리J 개발사에서 유용하다고 생각하는 기능들을 정리하여 유저가 실제 사용한 적이 있는지 자동으로 기록해준다.
- 각 기능별로 사용한 빈도와 가장 최근 사용시간이 기록되어 있는 것을 볼 수 있다.
- 굳이 메뉴얼을 익히듯 하나하나 유용한 Tip을 익히는 것도 의미가 있지만 본인에 맞는 모르던 기능을 찾아보기에 좋은 기능이다.
Presentation Assistant 플러그인
- 설치법 : settings -> plugins -> browse repositories -> Presentation Assistant 설치
- 해당 플러그인을 설치하면 기능이 실행될때마다 기능 및 단축키를 스샷과 같이 디스플레이함
탭을 사용하지 말라
- 탭을 사용하면 마우스를 적극적으로 사용해야 하는 번거러움과 머리속에서 탭의 위치나 클래스를 기억해야 한다. (오히려 비효율이 발생 할 수 있다는 얘기)
- 인텔리J는 네비게이션을 편하게 하는 여러가지 방법이 존재하므로 이를 적극 활용하라.
- 탭을 없애는 방법은 아래와 같다.
- 필자는 이부분을 직접 실천에 옮겼을때 만족스러웠다. 이유는 아래의 2가지이다.
- 무의식적으로 탭들을 전환/관리하는게 오히려 비효율적이다. 인텔리J는 강력한 파일네이게이션 옵션이 많아 불편함이 없다.
- 노트북 환경과 같은 상대적으로 작은 스크린에서의 개발시 탭 없이 좀 더 쾌적하게 사용이 가능하다.
- 대안1 : 파일검색 기능을 활용하라.
- 대안2 : 최근 사용 파일 기능을 활용하라.
단축키 사용팁(마우스 대신 키보드를 적극 활용하라)
동영상에서는 인텔리J가 지향/권장하는 바는 최대한 마우스 사용 없이 키보드 만으로 IDE를 사용하는 것이다. 리를 위해 인텔리J에서는 거의 모든 기능에 대해 단축키 바인딩이 가능하다. 또한 단축키를 모두 알고 있지 않아도 키보드를 사용하는 대안이나 단축키 사용 빈도를 체크할 수 있는 기능이 있다.
기본 단축키 레퍼런스
군대에서 행정병이 한글/엑셀 단축키를 출력해놓고 익히듯이 주요 단축키에 대한 요약이나 프린트가 필요한 분들은 이 기능이 유용할 수 있다.
Find Action
- 인텔리J는 모든 기능(action)을 찾을 수 있는 Find Action기능을 가지고 있다. 굳이 단축키를 외우고 있지 않거나 빈도수가 낮아 외울 필요가 없는 기능은 Find Action을 통해 기능을 찾아 수행 할 수 있다.
- 예를 들어 Commit Change 단축키 ctrl + k를 외우고 있지 않더라도 Find Action에서 commit을 검색하여 기능을 찾아 수행 할 수 있다.
- 해당 기능으로 Run, Maven Build 뿐만아니라 Settings의 세부메뉴까지 한번에 랜딩될수 있는 세세한 액션들이 다 지정가능하다.
파일 네비게이션
위에 언급한 것처럼 키보드 위주의 개발을 인텔리J가 권장하기 때문에 아래와 같은 파일 네비게이션 기능들이 강력하고 유용하다.
Autoscroll from Source
- 파일이 선택되면 파일 프로젝트텝에서 해당 소스로 파일 구조를 찾아서 표시해주는 기능(이클립스에도 존재)
- 인텔리 J에서는 Alt + 1로 프로젝트 탭으로 언제든 이동 할 수 있어 이 기능과 조합하면 유용하다.
파일찾기 기능 특징 #1, 별패턴 가능
- 사실 이클립스도 가능하여 인텔리J만의 장점은 아니다.
파일찾기 기능 특징 #2, 줄임말 입력가능
- 이클립스에도 있는 파일 찾기 기능이지만 스샷과 같이 비연결 문자열도 찾아준다.
파일찾기 기능 특징 #3, 디렉토리 검색
- 폴더도 검색 대상이다. 폴더 선택시 프로젝트 창에서 커서가 이동한다.
파일찾기 기능 특징 #4, 파일및라인지정
- 소스 검색과 동시에 라인을 지정하면 특정 라인으로 이동한다.
- 톰캣 에러 클래스 + 라인을 찾을때 유용하다.
메서드 찾기
- 아래와 같이 메서드로 바로 찾아서 들어갈 수 있다.
더블탭
- shift키를 두번 빠르게 하면 모든것에 대한 검색기능이 활성화 된다.
- 최근 파일, 클래스명, 파일명 등 여러가지 카테고리로 나누어 검색 되었을때는 탭을 눌러 카테고리를 이동 가능하다.
- 심지어 더블탭으로 실행 환경설정(Run configuration)까지 실행 가능하다.
에디터/창 Focus 동작 메카니즘
- alt + 0 ~ 9를 호출시 창이 열리며 해당 창으로 누르면 창이 열리며 포커스가 이동한다.
- 창 Focus 상태에서 Esc를 누르면 무조건 에디터 창으로 포커스가 간다.
에디터/창 Focus 활용 팁
프로젝트단축키
- 단축키를 활용하여 프로젝트 창 표시/비표시를 지정 할 수 있다.
- 필자는 기본적으로 프로젝트 창을 열어놓는 것을 선호하지만 가끔 Width가 긴 코드를 볼 때는 단축키로 프로젝트 창을 끌 때가 있다. 이때 해당 기능을 활용한다.
프로젝트창줄이기
- 키보드 만으로 프로젝트 창, 빌드관련 창(메이븐/그래들), 콘솔로그 창 등을 상/하/좌/우 모두 늘였다 줄일 수 있다.
- 노트북으로 개발시 유용하다.
창늘이기
- 키보드 만으로 프로젝트 창, 빌드관련 창(메이븐/그래들), 콘솔로그 창 등을 모두 늘였다 줄일 수 있다.
- 노트북으로 개발시 유용하다.
창모두숨기기/보이기
- 창을 정리할 일이 있을때 모든창을 닫고 필요한 창만 다시 연다.
- 혹은 소스를 최대한 넓게 보고 싶을때 노트북에서 가끔 사용한다.
에디터 활용 팁
선택확장 기능
- 단어 선택기능은 개발 시 유용한데 인텔리J는 선택을 점점 더 큰 네임스페이스(?)로 확장 할 수 있는 유용한 기능이 있다.
- 예를 들어 private String a;가 있다면 a커서에서 한번, 두번, 세번 선택 확장을 하면 아래와 같이 확장된다.
- 첫번째 확장 : a선택
- 두번째 확장 : String a선택
- 세번째 확장 : private String a 선택
- 필자는 해당 기능은 코드 편집시 매우 유용하여 즐겨쓴다.
filestructure
- 이클립스에도 있는 기능이지만 메서드를 찾을 때 유용하다.
- 대소문자 관계없이 인식, 줄임말, 분절된 단어도 인식한다는 것이 특징이다.
파라미터정보
- 메서드 작성 시 파라미터 정보를 빠르게 툴팁으로 확인 할 수 있다.
클래스 구조보기
- 클래스 구조를 상시로 본다면 이 기능으로 창을 표시/비표시 할 수 있다.
- 필자는 file struceture로 대체하여 주로 사용하고 필요시 단축키로 구조 창을 열었다 확인 후 닫는다.
- 마찬가지로 노트북으로 개발 시 화면 공간 활용상 이점이 있다.
붙여넣기옵션
- 코드 편집시 코드를 오렸다가 붙인다던지의 작업이 필요할 때가 있다.
- 이때 따로 유틸리티를 사용할 수도 있겠지만 인텔리J에 기본 제공되는 기능으로 사용하여도 된다.
자동완성
스마트자동완성
- 스마트 자동완성은 예를들어 일반자동완성과 달리 세미콜론까지 자동완성을 지원해준다.
- 또한 메서드 레벨까지 자동완성 추천을 해준다.
- 필자의 경우 자동완성 단축키(윈도/리눅스 기준) ctrl + space 를 아예 스마트 자동완성으로 바꾸어 사용중이다.
Statement 자동완성
- 소소한 꿀팁인데 statement가 완결되지 않은 경우 자동으로 완성시켜준다.
- 세미콜론이 안찍힌 경우 커서 위치 상관없이 같은 라인에서 세미콜론을 찍을 수 있다.
- if문도 마찬가지로 {}를 생성해준다.
notnull 자동완성
- 자바 개발 시 자주쓰는 notnull 처리의 경우 아래와 같은 방법으로 지정 하여 코드를 완성시킬 수 있다.
언어지원
Language Injection
- 아래와 같이 문자열의 Language를 지정 할 수 있다.
- JSON을 예로 들면 아래와 같은 방법으로 좀 더 편리하고 오류없이 JSON을 편집 할 수 있다.
Sorround With
- 아래와 같이 다양한 문법에서 감싸는 코드/태그 등 추가가 가능하다.
css문법생성1
- 소소하지만 HTML 코드 영역에서는 CSS 문법으로 태그 생성이 가능하다.
정규표현식활용
- 정규표현식으로 문자열의 Language를 지정하면 정규표현식 테스트를 간편히 해볼 수 있다.
디버깅
자바8용디버깅
- 자바8의 경우 브레이크 포인트를 지정하려 하면 같은 라인이라고 하더라도 네임스페이스 별로 구분하여 세분화된 BP를 걸 수 있다.
브레이크 포인트 우클릭 활용
- 브레이크 포인트에서 우클릭시 아래와 같이 추가 조건을 지정 할 수 있다.
- 여기서 다시 more를 더 누르면 더 세분화된 조건들을 지정 할 수 있다.
기타
REST Client
- 다른 툴들도 많지만 내장으로 REST Client를 탑재하고 있다.
프레젠테이션 모드
- 라이브 코딩 필요시 프레젠테이션 모드를 활성화 하면 코드가 확대된 화면으로 바뀐다.