IntelliJ 설치와 기본 단축키

IntelliJ 설치

  • IntelliJ IDEA는 JetBrains사에서 제작한 상용 Java IDE.
  • 스마트 코드 완성, 코드 분석, 리팩터링, 디버거 등 기능이 우수함.
  • JPQL, HTML, JavaScript 등과 같은 다양한 다른 언어에 대한 지능형 코딩 지원을 이해하고 제공.
  • 개발자의 요구를 예측하고 지루하고 반복적인 개발 작업을 자동화.
  • Ultimate 버전은 유료이고 1년에 $149 (체험판 한달 무료 사용 가능).

공식 홈페이지 https://www.jetbrains.com/ko-kr/idea/에서 다운로드 받은 후 설치.

image-20210311210502043

image-20210311210613199

유료버전 Ultimate와 무료버전 Community의 차이점

image-20210311210710719

image-20210311210817731

image-20210311210838011

image-20210311211023436

image-20210311211231323

설치는 끝났습니다. Intellij를 실행합니다.

image-20210311211345602

image-20210311211453266

image-20210311211524742

  • Project

    New Project: 새로운 프로젝트 생성

    Open: 기존 프로젝트 열기

    Get from VCS: 버전관리시스템에서 프로젝트 clone.

image-20210311212758531

image-20210311213151717

  • Customize

    테마나 툴, 에디터 폰트 크기 그리고 Keymap(Window, Eclipse, Emacs, NetBeans)가 있고, All settings 에서는 VCS 등 다양한 설정을 할 수 있습니다.

image-20210311213228165

  • Plugin

    각 종 Plugin을 검색하고 설치할 수 있습니다.

image-20210311213408810

  • Learn IntelliJ IDEA

    IntelliJ의 단축키 및 필수 기능을 학습하는 대화식 교육 코스.

    • Intellij IDEA의 가장 필수적인 기능 알아보기
    • smart 단축키를 이용해서 추가, 삭제, 선택, 이동, 복사하기
    • IDE의 코드 자동 완성
    • 리팩토링으로 간결한 코드 만들기
    • 코드 어시스트
    • 네비게이션.
    • 디버그

image-20210311220940546

변수 선언부로 이동하기

Ctrl + B

Context Actions

Alt + Enter Context Actions은 코드에 사소한 변경 내용을 적용해야 할 때 코드 입력의 수고를 크게 덜어줍니다.

image-20210311223226637

Search for Actions, Class, File, Symbol

Shift 두번 모두 찾기

Ctrl + N 클래스 찾기

Ctrl + Shift + N 파일 찾기

Ctrl + Shift + Alt + N 심볼 찾기

Ctrl + Shift + A 액션 찾기

image-20210311224152827

Actions에서 Show Line Numbers는 에디터에 라인 숫자를 표시할지 여부 입니다.

image-20210311225457188

Document 보기

어떠한 Class나 Type에 대해 Document를 빠르게 확인하고 싶을 때 Ctrl + Q를 사용합니다.

image-20210312161157914

Ctrl + Q 를 누르고 특정 Class로 커서 또는 마우스를 이동하면 Document가 팝업으로 나타납니다. 확인 후 팝업은 ESC 를 눌러 종료 시킵니다. 이 상태에서는 Docuement 보기가 꺼진 상태가 아니므로 커서 또는 마우스로 특정 Class 위에 올리게 되면 팝업으로 표시 해줍니다.

image-20210312161419228

만약 위 상태에서 Ctrl + Q 를 한번 더 누르면 우측에 팝업이 고정되고 Document를 제공하는 Class로 커서가 이동될 때 자동으로 고정된 팝업에 정보가 갱신 됩니다.

image-20210312161811870

[정리]

Ctrl + Q : Document 팝업 활성화 (커서 또는 마우스 이동 시 팝업으로 표시)

Ctrl + Q 한번더 : Document 팝업 우측 고정

Ctrl + Q 한번더 : Document 팝업 비활성화

코드라인 끝에 세미콜론(;)

Ctrl + Shift + Enter 현재 라인의 구문 끝에 세미콜론(;)을 찍습니다. 만약 이미 세미콜론(;)이 찍혀 있으면 다음줄로 이동합니다.

코드 선택 범위 확장/축소

Ctrl + W 코드 선택 범위 확장

Ctrl + Shift + W 코드 선택 범위 축소

image-20210312010631188

아래와 같이 커서가 있다고 가정하고

image-20210312010723590

Ctrl + W 누르면

image-20210312010806321

Ctrl + W 누르면

image-20210312010826405

Ctrl + W 누르면

image-20210312010853034

이런씩으로 확장해 나가며, 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 한 다음 원하는 템플릿 번호

image-20210312122135045

Ctrl +Shift + Delete , Enter 템플릿 해제

image-20210312122539060

동일한 텍스트 다중 선택하고 동시 편집하기

Alt + J 한번 누를때 마다 이동하면서 하나씩 선택 됨. (방향의 우선순위는 Right-Bottom)

Alt + Shift + J 한번 누를때 마다 이동하면서 하나씩 해제. (모두 해제하고 싶으면 ESC)

Ctrl + Shift +Alt + J 파일내 동일한 모든 글자 선택.

image-20210312125337979

스마트 유형 완성

Ctrl + Space

완성 제안 목록은 현재 커서가 있는 문자열 기준으로 검색하여 보여줍니다. 그래서 커서를 문자열 앞쪽에 위치하고 단축키를 눌러야 합니다.

image-20210312005831953

상수의 값을 보여줍니다.

image-20210312132632672

image-20210312133145030

Ctrl + Shift + Space

제안 목록에서 현재 컨텍스트 내에서 적용 가능한 유형만 보여줍니다.

image-20210312133220834

접미사 완성

변수나 () 뒤에 . 하여 완성 제안 목록에서 선택하면 구문을 자동 완성 해줍니다.

제안 목록에서 타이핑을 하면 목록 내에서 검색도 가능합니다.

image-20210312134159368

image-20210312134235259

image-20210312134517715

구문완성

Ctrl + Shift + Enter if 뒤에 단축키를 사용하면 구문이 완성됩니다. (for, while 등 다른 곳에도 사용 가능)

image-20210312135203015

image-20210312135300608

완성된 if문에서 조건을 작성한 다음 Ctrl + Shift + Enter 누르면 if문 안으로 이동합니다.

image-20210312135457266

image-20210312135622622

탭 코드 완성

클래스의 변수나 상수값을 변경할 때 Ctrl + Space 또는 Ctrl + Shift + Space 를 누르면 완성 제안 목록이 나옵니다. (완성 제안 목록은 현재 커서가 있는 문자열 기준으로 검색합니다.)

image-20210312140714887

그 중 어떤 값을 Enter를 눌러 선택하게 되면 아래와 같이 됩니다.

image-20210312140942112

위 처럼 변경이 아니라 삽입이 되기 때문에 문제가 생깁니다. 이럴 때는 제안 목록에서 Enter 대신 Tab 을 누르면 변경됩니다.

image-20210312141226904

리팩토링 - 이름 변경

변수에 커서를 두고 Shift + F6을 누르면 파일 내 해당 변수가 사용되는 곳이 하이라이팅 됩니다. 이 상태에서 이름을 변경하고 Enter를 누르면 변경 대상을 선택하는 화면이 나오고 한번더 Enter를 누르면 적용이 됩니다. (단, 변수가 getter / setter가 구현되어 있지 않으면 변경 대상 선택화면은 생략되고 바로 적용 됩니다.)

image-20210312143318611

image-20210312143900059

image-20210312143927593

리팩토링 - 변수 추출

개발을 하다 보면 중복된 수식이 생겨 변수로 할당하고 중복된 수식을 할당된 변수로 치환하는 작업을 할 때가 있습니다.

image-20210312150827888

이런 경우에 아래와 같이 작업할 수 있습니다.

  1. 해당 수식을 선택한 다음 Ctrl + Alt + V (해당 수식 내에 커서가 있는 상태에서도 가능)
  2. 모든 항목 바꾸기를 선택.
  3. 변수명 작성하고 Enter

image-20210312144934071

image-20210312145028366

image-20210312145156057

리팩토링 - 메서드 추출

개발을 하다 보면 중복된 로직이 생겨서 공통 메서드로 만들고 해당 부분을 공통 메서드를 사용 하도록 할 때가 있습니다.

image-20210312150623957

이런 경우에 아래와 같이 작업을 할 수 있습니다.

  1. 대상 로직 중 한 개를 선택한 다음 Ctrl + Alt + M ( 마우스로 드래그 하거나 Ctrl + W를 여러번 눌러 메서드 영역을 선택)
  2. 메서드 이름을 선택하고 Enter
  3. 동일한 로직에 대해 함수로 바꿀지 물어보는 팝업에서 Enter

image-20210312151243023

image-20210312151313925

image-20210312151400589

리팩토링 - 리펙토링 목록 보기

대부분의 리팩토링의 단축키가 설정되어 있지만 일반적이지 않은 리팩토링의 경우 Ctrl + Alt + Shift + T 누르면 리팩토링 목록을 확인하고 적용할 수 있습니다.

image-20210312152427099

코드서식 - 소스코드 자동정렬 및 사용되지 않는 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를 누릅니다.

image-20210312155840794

위에서 작업한 두 가지 내용을 한번에 적용할려면 아래와 같이 합니다.

Ctrl + Alt + Shift + L

Alt + O (import문 최적화)

Alt + N (코드 재정렬)

Enter

image-20210312160319426

image-20210312160334385

코드지원 - 매개변수 시그니처 확인

메서드에 parameter에 어떤 값을 넣어야 될 지 잘 모르는 경우 Ctrl + P 를 눌러 매개변수의 시그니처를 확인할 수 있습니다.

image-20210312160702568

image-20210312160800329

코드지원 - 에러 포인트로 이동하기

에러 포인트로 빠르게 이동하려면 F2을 누릅니다. 또한 F2를 반복적으로 눌러 다음 오류 포인트로 이동할 수 있습니다.

image-20210312162843426

image-20210312163133122

코드지원 - Error, Warning 메시지 보기

Errror 또는 Warning이 발생한 코드라인에 커서를 이동해도 전구만 보입니다. 마우스를 클릭 하지 않고 오류 메시지를 확인하려면 Ctrl + F1 을 누릅니다. 한번 더 Ctrl + F1 를 누르면 상세 메시지가 나옵니다.

image-20210312164357210

image-20210312164427287

image-20210312164454731

코드지원 - 하이라이팅 하기

객체 또는 Class에 커서를 두고 Ctrl +Shift + F7을 누르면 하이라이팅 됩니다. 만약 동일한 객체 또는 Class가 존재하면 함께 하이라이팅 됩니다.

image-20210312165136331

탐색 - 파일 찾기 / 바꾸기

일반해당 파일에서 텍스트 찾기 Ctrl + F , 찾은 글자는 하이라이팅 되고, 찾은 항목으로 아래쪽으로 이동하려면

Enter 또는 F3 , 위쪽으로 이동하려면 Shift + F3

image-20210312233546084

파일 찾기 : Ctrl + Shift + F

image-20210312173137996

Alt + W 검색 문자열에 초점을 맞춘 검색

image-20210312173643396

Ctrl + Shift + R : 바꾸기

image-20210312173841292

클래스에서 메서드 검색

첫번째 방법 Ctrl + F12를 누르고 특정 메소드명으로 검색 하고 Enter

image-20210312174454496

두번째 방법 Ctrl + Shift + Alt + N 심볼검색으로 메소드명으로 검색하고 Enter

image-20210312174645904

첫번째와 두번째 방법의 차이점

첫번째: 현재 열린 클래스에서 모든 메소드명이 목록에 표시 되고, 검색어를 입력해 필터링 후 메소드를 선택.

두번째: 프로젝트 내 클래스에서 검색어를 입력해 필터링 후 메소드 선택.

세번째 방법 Alt + 7 을 누르면 클래스 구조창에서 메소드 리스트를 확인할 수 있고 선택해서 이동도 가능함.

image-20210312175049964

메서드 프로젝트 내 위치 찾기

검색하고자 하는 메서드에 커서를 두고 Alt + F7를 누르면 프로젝트 내 해당 메서드의 위치 및 미리보기를 제공함.

image-20210312175602747

찾기 창 닫기 Shift + ESC

찾기 창 닫지 않고 에디터로 이동 ESC

에디터에서 다시 찾기 창으로 이동 또는 열기 Alt + 3

메서드 구현 선택 / 상속 계층 구조 보기

Ctrl + Alt + B

image-20210312224928940

Ctrl + U 파생된 메서드에서 부모 메서드로 이동하기

Ctrl + Shift + H 메서드의 전체 계층 구조 보기

Ctrl + H 클래스 계층 개요 미리보기

최근 파일 및 최근 소스코드 위치

Ctrl + E 최근 파일 열기, 방향키로 선택 후 Enter , 필요 없는 항목은 Delete

image-20210312233030212

Ctrl + Shift + E 최근 소스코드 위치 열기, 리스트에서 문자열 검색도 가능함.

image-20210312233119406

실행과 디버그

Ctrl + Shift + F10 : 실행

댓글남기기