Skip to content
ioob.dev
Go back

IntelliJ IDEA 자주 쓰는 커맨드 모음

· 10분 읽기
Table of contents

Table of contents

탐색

코드베이스가 커지면 “어디 있는지 아는 것”이 “무엇을 짜는지 아는 것”만큼 중요해진다.

기능MacWindows / Linux
클래스 검색command(⌘) OCtrl N
파일 검색command(⌘) shift(⇧) OCtrl Shift N
심볼 검색command(⌘) option(⌥) OCtrl Alt Shift N
전체 검색shift(⇧) 두 번Shift 두 번
선언부로 이동command(⌘) BCtrl B
구현부로 이동command(⌘) option(⌥) BCtrl Alt B
부모 클래스로 이동command(⌘) UCtrl U
사용처 찾기option(⌥) F7Alt F7
줄 번호로 이동control(⌃) GCtrl G
뒤로 / 앞으로command(⌘) [ / ]Ctrl Alt ← / →
다음 / 이전 에러F2 / shift(⇧) F2F2 / Shift F2
최근 열었던 파일command(⌘) ECtrl E
최근 편집한 위치command(⌘) shift(⇧) ECtrl Shift E

Double Shift가 가장 범용적이다. 클래스, 파일, 심볼, 설정, 액션 전부 여기서 검색된다. 뭘 눌러야 할지 모르겠으면 Shift를 두 번 누르면 된다.

command(⌘) Bcommand(⌘) option(⌥) B의 차이는 중요하다. 인터페이스 메서드에 커서를 두고 command(⌘) B를 누르면 인터페이스 선언으로 가고, command(⌘) option(⌥) B를 누르면 실제 구현체 목록이 뜬다. Spring처럼 인터페이스 기반 설계를 쓰는 프로젝트에서는 이 차이를 아는 것만으로 탐색 속도가 달라진다.

command(⌘) E는 파일 단위로 최근 목록을 보여주고, command(⌘) shift(⇧) E는 편집했던 정확한 위치로 돌아간다. 코드 리뷰하다가 방금 고친 지점으로 돌아갈 때는 command(⌘) shift(⇧) E가 정확하다.

검색 & 치환

기능MacWindows / Linux
파일 내 검색command(⌘) FCtrl F
파일 내 치환command(⌘) RCtrl R
전체 검색command(⌘) shift(⇧) FCtrl Shift F
전체 치환command(⌘) shift(⇧) RCtrl Shift R

전체 검색(command(⌘) shift(⇧) F)에서는 scope 필터를 설정할 수 있다. 프로젝트 전체, 모듈 단위, 특정 디렉토리 — 범위를 좁힐수록 노이즈가 줄어든다. 정규식도 지원하기 때문에 패턴 기반 치환이 필요할 때 별도 도구 없이 해결된다.

치환(command(⌘) R, command(⌘) shift(⇧) R)은 검색 결과를 하나씩 확인하면서 바꿀 수도 있고, 한 번에 전부 바꿀 수도 있다. “Replace All”을 누르기 전에 미리보기에서 의도하지 않은 매칭이 없는지 확인하는 습관을 들이면 사고를 줄일 수 있다.

편집

코드를 짤 때 가장 자주 반복하는 동작들이다. 여기 있는 단축키가 손에 붙으면 타이핑 리듬이 눈에 띄게 빨라진다.

기능MacWindows / Linux
코드 포맷팅command(⌘) option(⌥) LCtrl Alt L
임포트 정리command(⌘) option(⌥) OCtrl Alt O
라인 주석 토글command(⌘) /Ctrl /
블록 주석 토글command(⌘) option(⌥) /Ctrl Shift /
선택 영역 확장 / 축소option(⌥) ↑ / ↓Ctrl W / Ctrl Shift W
라인 복제command(⌘) DCtrl D
라인 삭제command(⌘) 백스페이스Ctrl Y
라인 위 / 아래로 이동command(⌘) shift(⇧) ↑ / ↓Shift Alt ↑ / ↓
구문 자동 완성command(⌘) shift(⇧) EnterCtrl Shift Enter

option(⌥) ↑(선택 영역 확장)은 한번 알면 놓을 수 없는 기능이다. 변수에 커서를 놓고 한 번 누르면 변수명이 선택되고, 한 번 더 누르면 표현식 전체, 다시 누르면 줄 전체, 또 누르면 블록 전체로 확장된다. 마우스 드래그보다 정확하고 빠르다.

command(⌘) shift(⇧) Enter는 과소평가된 단축키다. if를 입력한 뒤 누르면 괄호와 중괄호를 자동으로 닫아준다. 메서드 시그니처를 쓴 뒤 누르면 본문 블록이 열린다. 작은 조합인데 타이핑 양을 꽤 줄여준다.

코드 생성 & 자동완성

IntelliJ가 텍스트 에디터와 가장 차별화되는 영역이다. 반복적인 보일러플레이트를 IDE가 대신 써준다.

기능MacWindows / Linux
생성 메뉴 (생성자, getter 등)command(⌘) NAlt Insert
코드 감싸기 (try-catch, if 등)command(⌘) option(⌥) TCtrl Alt T
인터페이스 메서드 구현control(⌃) ICtrl I
부모 메서드 오버라이드control(⌃) OCtrl O
기본 자동완성control(⌃) SpaceCtrl Space
스마트 자동완성control(⌃) shift(⇧) SpaceCtrl Shift Space
빠른 수정 / 의도 액션option(⌥) EnterAlt Enter
파라미터 정보command(⌘) PCtrl P
문서 보기command(⌘) QCtrl Q
빠른 정의 미리보기command(⌘) shift(⇧) ICtrl Shift I

option(⌥) Enter는 IntelliJ에서 가장 많이 누르게 되는 키다. 에러가 있으면 수정 제안이 나오고, 정상 코드에서도 리팩토링 옵션을 보여준다. 커서를 놓고 뭘 해야 할지 모르겠을 때 일단 option(⌥) Enter를 눌러보면 IntelliJ가 할 수 있는 일 목록을 알려준다.

control(⌃) Space(기본)과 control(⌃) shift(⇧) Space(스마트)의 차이도 알아두면 좋다. 기본 자동완성은 이름 기반으로 후보를 나열하고, 스마트 자동완성은 현재 컨텍스트의 타입을 분석해서 맞는 후보만 걸러준다. 반환 타입이 일치하는 변수나 메서드만 보고 싶을 때 control(⌃) shift(⇧) Space가 정확하다.

리팩토링

텍스트 에디터에서 이름을 바꾸면 전체 치환을 돌려야 하고, 문자열 리터럴까지 바뀌는 사고가 난다. IntelliJ는 코드의 의미를 이해하고 바꿔주기 때문에 이런 문제가 없다.

기능MacWindows / Linux
이름 변경shift(⇧) F6Shift F6
시그니처 변경command(⌘) F6Ctrl F6
변수 추출command(⌘) option(⌥) VCtrl Alt V
메서드 추출command(⌘) option(⌥) MCtrl Alt M
필드 추출command(⌘) option(⌥) FCtrl Alt F
파라미터 추출command(⌘) option(⌥) PCtrl Alt P
이동F6F6
리팩토링 전체 메뉴command(⌘) option(⌥) shift(⇧) TCtrl Alt Shift T

shift(⇧) F6(이름 변경)은 가장 안전하고 가장 자주 쓰는 리팩토링이다. 변수, 메서드, 클래스, 파일 이름까지 한 번에 바꿔주고, 참조하는 모든 코드도 같이 수정된다.

command(⌘) option(⌥) M(메서드 추출)과 command(⌘) option(⌥) V(변수 추출)은 코드를 정리할 때 핵심이다. 긴 메서드에서 블록을 선택하고 command(⌘) option(⌥) M을 누르면 그 블록이 새 메서드로 빠지면서, 원래 자리에는 호출문이 남는다. 복잡한 표현식에 command(⌘) option(⌥) V를 쓰면 의미 있는 이름이 붙어 가독성이 올라간다.

실행 & 디버그

기능MacWindows / Linux
실행control(⌃) RShift F10
디버그control(⌃) DShift F9
현재 파일 / 테스트 실행control(⌃) shift(⇧) RCtrl Shift F10
중단점 토글command(⌘) F8Ctrl F8
Step OverF8F8
Step IntoF7F7
Smart Step Intoshift(⇧) F7Shift F7
Step Outshift(⇧) F8Shift F8
커서 위치까지 실행option(⌥) F9Alt F9
실행 중지command(⌘) F2Ctrl F2

디버깅에서 가장 쓸모 있는 건 option(⌥) F9(커서 위치까지 실행)이다. 중단점을 여러 개 찍는 대신, 보고 싶은 줄에 커서를 놓고 option(⌥) F9를 누르면 거기까지 실행된다. 임시 중단점을 만들었다 지우는 번거로움이 없다.

shift(⇧) F7(Smart Step Into)은 한 줄에 메서드 호출이 여러 개일 때 쓴다. 일반 F7은 첫 번째 호출로 바로 들어가지만, shift(⇧) F7은 어떤 메서드로 들어갈지 선택할 수 있다.

Git / VCS

기능MacWindows / Linux
커밋command(⌘) KCtrl K
푸시command(⌘) shift(⇧) KCtrl Shift K
업데이트 (Pull)command(⌘) TCtrl T
변경사항 롤백command(⌘) option(⌥) ZCtrl Alt Z
VCS 작업 팝업control(⌃) VAlt `

command(⌘) K → 커밋 메시지 작성 → command(⌘) shift(⇧) K로 푸시. 이 흐름이 손에 붙으면 터미널을 열 일이 줄어든다. command(⌘) option(⌥) Z(롤백)는 파일 단위로 변경을 되돌릴 수 있어서, git checkout 대신 쓰기 좋다.

control(⌃) V(VCS 팝업)는 브랜치 생성, 머지, 스태시 같은 Git 작업을 한 곳에서 접근할 수 있는 메뉴다. 각 기능의 단축키를 따로 외우지 않아도 여기서 찾으면 된다.

창 & 탭 관리

기능MacWindows / Linux
Project 패널 토글command(⌘) 1Alt 1
Git 패널 토글command(⌘) 9Alt 9
에디터 전체화면command(⌘) shift(⇧) F12Ctrl Shift F12
현재 탭 닫기command(⌘) WCtrl F4
이전 / 다음 탭 이동command(⌘) shift(⇧) [ / ]Alt ← / →
액션 검색command(⌘) shift(⇧) ACtrl Shift A

command(⌘) shift(⇧) F12는 에디터 영역을 최대화한다. 사이드바와 하단 패널이 전부 사라지고 코드만 남는다. 집중해서 읽거나 쓸 때 유용하고, 다시 누르면 원래 레이아웃으로 돌아온다.

command(⌘) shift(⇧) A(액션 검색)는 단축키를 모를 때 쓰는 단축키다. 기능 이름을 영어로 검색하면 해당 기능과 지정된 단축키를 함께 보여준다. 여기서 찾아 쓰다 보면 자연스럽게 외워진다.


단축키를 한 번에 다 외우는 사람은 없다. 마우스로 하던 동작 중 가장 자주 반복하는 것 하나를 골라서 단축키로 바꾸는 것부터 시작하면 된다. 일주일에 하나씩이면 한 달 뒤에는 손이 먼저 움직인다. 단축키가 기억 안 나면 command(⌘) shift(⇧) A(액션 검색)를 열어 기능 이름으로 찾으면 단축키도 함께 표시된다.


Related Posts

Share this post on:

Comments

Loading comments...


Previous Post
디자인 패턴 8편 — Singleton, Iterator, Prototype: 자주 쓰지만 오해도 많은 패턴들
Next Post
VS Code 자주 쓰는 커맨드 모음