IntelliJ 설치와 기본 단축키
IntelliJ 설치
- IntelliJ IDEA는 JetBrains사에서 제작한 상용 Java IDE.
- 스마트 코드 완성, 코드 분석, 리팩터링, 디버거 등 기능이 우수함.
- JPQL, HTML, JavaScript 등과 같은 다양한 다른 언어에 대한 지능형 코딩 지원을 이해하고 제공.
- 개발자의 요구를 예측하고 지루하고 반복적인 개발 작업을 자동화.
- Ultimate 버전은 유료이고 1년에 $149 (체험판 한달 무료 사용 가능).
공식 홈페이지 https://www.jetbrains.com/ko-kr/idea/에서 다운로드 받은 후 설치.
유료버전 Ultimate와 무료버전 Community의 차이점
설치는 끝났습니다. Intellij를 실행합니다.
-
Project
New Project: 새로운 프로젝트 생성
Open: 기존 프로젝트 열기
Get from VCS: 버전관리시스템에서 프로젝트 clone.
-
Customize
테마나 툴, 에디터 폰트 크기 그리고 Keymap(Window, Eclipse, Emacs, NetBeans)가 있고, All settings 에서는 VCS 등 다양한 설정을 할 수 있습니다.
-
Plugin
각 종 Plugin을 검색하고 설치할 수 있습니다.
-
Learn IntelliJ IDEA
IntelliJ의 단축키 및 필수 기능을 학습하는 대화식 교육 코스.
- Intellij IDEA의 가장 필수적인 기능 알아보기
- smart 단축키를 이용해서 추가, 삭제, 선택, 이동, 복사하기
- IDE의 코드 자동 완성
- 리팩토링으로 간결한 코드 만들기
- 코드 어시스트
- 네비게이션.
- 디버그
변수 선언부로 이동하기
Ctrl
+ B
Context Actions
Alt
+ Enter
Context Actions은 코드에 사소한 변경 내용을 적용해야 할 때 코드 입력의 수고를 크게 덜어줍니다.
Search for Actions, Class, File, Symbol
Shift 두번
모두 찾기
Ctrl
+ N
클래스 찾기
Ctrl
+ Shift
+ N
파일 찾기
Ctrl
+ Shift
+ Alt
+ N
심볼 찾기
Ctrl
+ Shift
+ A
액션 찾기
Actions에서 Show Line Numbers
는 에디터에 라인 숫자를 표시할지 여부 입니다.
Document 보기
어떠한 Class나 Type에 대해 Document를 빠르게 확인하고 싶을 때 Ctrl
+ Q
를 사용합니다.
Ctrl
+ Q
를 누르고 특정 Class로 커서 또는 마우스를 이동하면 Document가 팝업으로 나타납니다. 확인 후 팝업은 ESC
를 눌러 종료 시킵니다. 이 상태에서는 Docuement 보기가 꺼진 상태가 아니므로 커서 또는 마우스로 특정 Class 위에 올리게 되면 팝업으로 표시 해줍니다.
만약 위 상태에서 Ctrl
+ Q
를 한번 더 누르면 우측에 팝업이 고정되고 Document를 제공하는 Class로 커서가 이동될 때 자동으로 고정된 팝업에 정보가 갱신 됩니다.
[정리]
Ctrl
+ Q
: Document 팝업 활성화 (커서 또는 마우스 이동 시 팝업으로 표시)
Ctrl
+ Q
한번더 : Document 팝업 우측 고정
Ctrl
+ Q
한번더 : Document 팝업 비활성화
코드라인 끝에 세미콜론(;)
Ctrl
+ Shift
+ Enter
현재 라인의 구문 끝에 세미콜론(;)을 찍습니다. 만약 이미 세미콜론(;)이 찍혀 있으면 다음줄로 이동합니다.
코드 선택 범위 확장/축소
Ctrl
+ W
코드 선택 범위 확장
Ctrl
+ Shift
+ W
코드 선택 범위 축소
아래와 같이 커서가 있다고 가정하고
Ctrl
+ W
누르면
Ctrl
+ W
누르면
Ctrl
+ W
누르면
이런씩으로 확장해 나가며, Ctrl
+ Shift
+ W
를 누르면 역으로 축소한다.
소스코드 라인 복사/삭제
현재 라인에서 Ctrl
+ D
현재 라인 복사해서 다음 라인에 붙여 넣기
여러라인 선택 한다음 Ctrl
+ D
하면 선택한 라인 복사해서 붙여넣기
현재 라인에서 Ctrl
+ Y 현재 라인 삭제
여러라인 선택 한다음 Ctrl
+ Y
하면 선택한 라인 삭제.
주석 달기
한줄 주석 Ctrl
+ /
(여러줄도 가능)
//int a = 1;
//int a = 1;
//int b = 2;
//int c = 3;
여러줄 주석 Ctrl
+ Shift
+ /
/*
int a = 1;
int b = 2;
int c = 3;
*/
소스코드 다른 라인으로 옮기기
Alt + Shift + [ Up |
Down ] |
현재커서 라인 또는 선택라인 위 또는 아래로 옮기기 ( 소스 코드 전체 범위로 변경 가능)
Ctrl + Shift + [ Up |
Down ] |
현재커서 라인 또는 선택라인 위 또는 아래로 옮기기(메소드 범위 내로 변경 가능)
메소드 선언부에서 단축키를 사용하면 메소드 전체를 옮길 수 있고, 상위 메소드 또는 클래스 범위 내로 변경 가능.
메소드 소스코드 접기 / 펼치기
Ctrl
+ -
접기
public CollapseDemo(String model, Engine engine, Wheel wheel){...}
Ctrl
+ +
펼치기
public CollapseDemo(String model, Engine engine, Wheel wheel){
this.model = model;
Engine myEngine = engine;
Wheel myWheel = wheel;
passengerCapacity = 4;
}
파일내 모든 소스코드 접기 / 펼치기
Ctrl
+ Shift
+ -
접기
class CollapseDemo{
String model;
Engine myEngine;
Wheel myWheel;
float fuelTank;
int passengerCapacity;
public void startEngine() throws CheckEngineException{...}
public CollapseDemo(String model, Engine engine, Wheel wheel){...}
public void rotateWheel(float angle){...}
interface Engine{...}
interface Wheel{...}
class CheckEngineException extends Exception{...}
}
Ctrl
+ Shift
+ +
펼치기
class CollapseDemo{
String model;
Engine myEngine;
Wheel myWheel;
float fuelTank;
int passengerCapacity;
public void startEngine() throws CheckEngineException{
myEngine.callStarter();
}
public CollapseDemo(String model, Engine engine, Wheel wheel){
this.model = model;
Engine myEngine = engine;
Wheel myWheel = wheel;
passengerCapacity = 4;
}
public void rotateWheel(float angle){
if (angle > 0) {
myWheel.rotateClockwise(Math.abs(angle));
} else {
myWheel.rotateCounterClockwise(Math.abs(angle));
}
}
interface Engine{
void callStarter();
}
interface Wheel{
void rotateClockwise(float angle);
void rotateCounterClockwise(float angle);
}
class CheckEngineException extends Exception{
}
}
템플릿(if, for, try 등) 코드 생성/해제
Ctrl
+ Alt
+ T
한 다음 원하는 템플릿 번호
Ctrl
+Shift
+ Delete
, Enter
템플릿 해제
동일한 텍스트 다중 선택하고 동시 편집하기
Alt
+ J
한번 누를때 마다 이동하면서 하나씩 선택 됨. (방향의 우선순위는 Right-Bottom)
Alt
+ Shift
+ J
한번 누를때 마다 이동하면서 하나씩 해제. (모두 해제하고 싶으면 ESC
)
Ctrl
+ Shift
+Alt
+ J
파일내 동일한 모든 글자 선택.
스마트 유형 완성
Ctrl
+ Space
완성 제안 목록은 현재 커서가 있는 문자열 기준으로 검색하여 보여줍니다. 그래서 커서를 문자열 앞쪽에 위치하고 단축키를 눌러야 합니다.
상수의 값을 보여줍니다.
Ctrl
+ Shift
+ Space
제안 목록에서 현재 컨텍스트 내에서 적용 가능한 유형만 보여줍니다.
접미사 완성
변수나 () 뒤에 .
하여 완성 제안 목록에서 선택하면 구문을 자동 완성 해줍니다.
제안 목록에서 타이핑을 하면 목록 내에서 검색도 가능합니다.
구문완성
Ctrl
+ Shift
+ Enter
if 뒤에 단축키를 사용하면 구문이 완성됩니다. (for, while 등 다른 곳에도 사용 가능)
완성된 if문에서 조건을 작성한 다음 Ctrl
+ Shift
+ Enter
누르면 if문 안으로 이동합니다.
탭 코드 완성
클래스의 변수나 상수값을 변경할 때 Ctrl
+ Space
또는 Ctrl
+ Shift
+ Space
를 누르면 완성 제안 목록이 나옵니다. (완성 제안 목록은 현재 커서가 있는 문자열 기준으로 검색합니다.)
그 중 어떤 값을 Enter
를 눌러 선택하게 되면 아래와 같이 됩니다.
위 처럼 변경이 아니라 삽입이 되기 때문에 문제가 생깁니다. 이럴 때는 제안 목록에서 Enter
대신 Tab
을 누르면 변경됩니다.
리팩토링 - 이름 변경
변수에 커서를 두고 Shift
+ F6
을 누르면 파일 내 해당 변수가 사용되는 곳이 하이라이팅 됩니다. 이 상태에서 이름을 변경하고 Enter
를 누르면 변경 대상을 선택하는 화면이 나오고 한번더 Enter
를 누르면 적용이 됩니다. (단, 변수가 getter / setter가 구현되어 있지 않으면 변경 대상 선택화면은 생략되고 바로 적용 됩니다.)
리팩토링 - 변수 추출
개발을 하다 보면 중복된 수식이 생겨 변수로 할당하고 중복된 수식을 할당된 변수로 치환하는 작업을 할 때가 있습니다.
이런 경우에 아래와 같이 작업할 수 있습니다.
- 해당 수식을 선택한 다음
Ctrl
+Alt
+V
(해당 수식 내에 커서가 있는 상태에서도 가능) - 모든 항목 바꾸기를 선택.
- 변수명 작성하고
Enter
리팩토링 - 메서드 추출
개발을 하다 보면 중복된 로직이 생겨서 공통 메서드로 만들고 해당 부분을 공통 메서드를 사용 하도록 할 때가 있습니다.
이런 경우에 아래와 같이 작업을 할 수 있습니다.
- 대상 로직 중 한 개를 선택한 다음
Ctrl
+Alt
+M
( 마우스로 드래그 하거나 Ctrl + W를 여러번 눌러 메서드 영역을 선택) - 메서드 이름을 선택하고
Enter
- 동일한 로직에 대해 함수로 바꿀지 물어보는 팝업에서
Enter
리팩토링 - 리펙토링 목록 보기
대부분의 리팩토링의 단축키가 설정되어 있지만 일반적이지 않은 리팩토링의 경우 Ctrl
+ Alt
+ Shift
+ T
누르면 리팩토링 목록을 확인하고 적용할 수 있습니다.
코드서식 - 소스코드 자동정렬 및 사용되지 않는 import문 제거
소스코드가 뒤죽박죽 정렬되지 않는 상태에서 Ctrl
+ Alt
+ L
누르면 자동정렬 됩니다.
import java.util.List;
import java.util.Set;
import java.util.ArrayList;
class CodeFormatDemo{
final static int a_const = 10000;
final static int b_const = 500;
public static void calc(){InnerCalc.process(a_const, b_const); }
static class InnerCalc{
final static int some_const = 124136; public static int process(int a, int b){ return a * b + some_const;
}
}
}
여기서 사용되지 않는 import 문을 제거하려면 Ctrl
+ Alt
+ Shift
+ L
누르고
Alt
+ O
(import문 최적화) 그리고 Enter
를 누릅니다.
위에서 작업한 두 가지 내용을 한번에 적용할려면 아래와 같이 합니다.
Ctrl + Alt + Shift + L
Alt
+ O
(import문 최적화)
Alt
+ N
(코드 재정렬)
Enter
코드지원 - 매개변수 시그니처 확인
메서드에 parameter에 어떤 값을 넣어야 될 지 잘 모르는 경우 Ctrl
+ P
를 눌러 매개변수의 시그니처를 확인할 수 있습니다.
코드지원 - 에러 포인트로 이동하기
에러 포인트로 빠르게 이동하려면 F2
을 누릅니다. 또한 F2
를 반복적으로 눌러 다음 오류 포인트로 이동할 수 있습니다.
코드지원 - Error, Warning 메시지 보기
Errror 또는 Warning이 발생한 코드라인에 커서를 이동해도 전구만 보입니다. 마우스를 클릭 하지 않고 오류 메시지를 확인하려면 Ctrl
+ F1
을 누릅니다. 한번 더 Ctrl
+ F1
를 누르면 상세 메시지가 나옵니다.
코드지원 - 하이라이팅 하기
객체 또는 Class에 커서를 두고 Ctrl
+Shift
+ F7
을 누르면 하이라이팅 됩니다. 만약 동일한 객체 또는 Class가 존재하면 함께 하이라이팅 됩니다.
탐색 - 파일 찾기 / 바꾸기
일반해당 파일에서 텍스트 찾기 Ctrl
+ F
, 찾은 글자는 하이라이팅 되고, 찾은 항목으로 아래쪽으로 이동하려면
Enter
또는 F3
, 위쪽으로 이동하려면 Shift
+ F3
파일 찾기 : Ctrl
+ Shift
+ F
Alt
+ W
검색 문자열에 초점을 맞춘 검색
Ctrl
+ Shift
+ R
: 바꾸기
클래스에서 메서드 검색
첫번째 방법 Ctrl
+ F12
를 누르고 특정 메소드명으로 검색 하고 Enter
두번째 방법 Ctrl
+ Shift
+ Alt
+ N
심볼검색으로 메소드명으로 검색하고 Enter
첫번째와 두번째 방법의 차이점
첫번째: 현재 열린 클래스
에서 모든 메소드명이 목록에 표시
되고, 검색어를 입력해 필터링 후 메소드를 선택.
두번째: 프로젝트 내 클래스
에서 검색어를 입력해 필터링 후 메소드 선택.
세번째 방법 Alt
+ 7
을 누르면 클래스 구조창에서 메소드 리스트를 확인할 수 있고 선택해서 이동도 가능함.
메서드 프로젝트 내 위치 찾기
검색하고자 하는 메서드에 커서를 두고 Alt
+ F7
를 누르면 프로젝트 내 해당 메서드의 위치 및 미리보기를 제공함.
찾기 창 닫기 Shift
+ ESC
찾기 창 닫지 않고 에디터로 이동 ESC
에디터에서 다시 찾기 창으로 이동 또는 열기 Alt
+ 3
메서드 구현 선택 / 상속 계층 구조 보기
Ctrl
+ Alt
+ B
Ctrl
+ U
파생된 메서드에서 부모 메서드로 이동하기
Ctrl
+ Shift
+ H
메서드의 전체 계층 구조 보기
Ctrl
+ H
클래스 계층 개요 미리보기
최근 파일 및 최근 소스코드 위치
Ctrl
+ E
최근 파일 열기, 방향키로 선택 후 Enter
, 필요 없는 항목은 Delete
Ctrl
+ Shift
+ E
최근 소스코드 위치 열기, 리스트에서 문자열 검색도 가능함.
실행과 디버그
Ctrl
+ Shift
+ F10
: 실행
댓글남기기