IntelliJ 튜토리얼 (Windows)

김현학·2025년 10월 21일

IntelliJ

목록 보기
3/3
post-thumbnail

IntelliJ는 그 기능이 많은 만큼, IDE 내부의 기능에 대한 튜토리얼이 잘 되어있다.

현재 맥북은 메모리가 부족하기 때문에,
비교적 널널한 Windows 컴퓨터를 사용해보려 한다.

컨텍스트 액션

  • ALT + ENTER
  • 해당 위치에서 취할 수 있는 상호작용을 '컨텍스트 액션'이라 한다.
  • 코드를 변환, 개선, 수정하는데 도움을 준다고 한다.

1. 안전한 삭제

  • 함수의 정의부에서 파라미터에 대한 안전한 삭제를 진행하면,
  • 함수의 호출부의 인자로 전달되던 내용들이 모두 함께 사라진다.

2. 조건식 수정

  • 부정(Negation): 논리적 NOT을 결과에 추가하는 수정 (논리 부정)
  • 반전(Inversion): 논리 부정 + 구조 반전 (if-else에서 조건 순서가 바뀜)

액션 찾기

  • SHIFT + SHIFT
  • CTRL + SHIFT + A
  • 사용 가능한 모든 액션 검색

프로젝트 탐색

  • 탐색 수준 변경: TAB
  • 선택된 문서 미리보기: CTRL + Q
  • 클래스 찾기: CTRL + N
  • 심볼 찾기: CTRL + ALT + SHIFT + N
  • 파일 찾기: CTRL+ SHIFT + N

코드 선택 범위 확장 및 축소

  • 코드 선택 범위 확장: CTRL + W
  • 코드 선택 범위 축소: CTRL + SHIFT + W

주석

  • 라인 주석(토글): CTRL + /
  • 블록 주석(토글): CTRL + SHIFT + /

줄 복제

  • 줄 복제: CTRL + D
  • 줄 삭제는 직접 명령을 실행해야 함
  • 그냥 CTRL + C, CTRL +V, CTRL + X를 조합하는 것이 좋아보임

코드 조각 이동

  • 줄 재배치: ALT + SHIFT + (위/아래)
    • 줄 재배치는 코드의 구조나 논리의 제약을 받지 않는다.
  • 논리적 블록 재배치: CTRL + SHIFT + (위/아래)
    • 코드의 논리와 구조에 따라 조각을 이동시킨다.
    • 정해진 범위 밖으로 나갈 수 없다.

코드 접기/펴기

  • 현재 영역 코드 접기: CTRL + MINUS(-)
  • 현재 영역 코드 펴기: CTRL + PLUS(+)
  • 전체 영역 코드 접기: CTRL + SHIFT + MINUS(-)
  • 전체 영역 코드 펴기: CTRL + SHFIT + PLUS(+)

둘러싸기 적용/해제

  • 둘러싸기: CTRL + ALT + T
    • try-catch 등 템플릿 코드로 둘러쌀 수 있다.
  • 래핑 해제 액션: CTRL + SHFIT + DELETE
    • 현재의 코드에서 감싸진 구조를 해제할 수 있다.

여러 선택 범위

  • 심볼 선택: ALT + J
    • 누를 때마다 동일한 심볼이 선택됨
    • 심볼 선택 해제: ALT + SHIFT + J
  • 이 파일의 모든 동일한 심볼 선택: CTRL + ALT + SHIFT + J
  • 다중 선택 초기화: ESCAPE

코드 완성

  • 기본 코드 완성: CTRL + SPACE
  • 전역 상수 탐색: (CTRL + SPACE) * 2
  • 구문 완료: CTRL + SHIFT + ENTER
    • 일일이 세미콜론을 입력하거나 줄바꿈하지 않게, 입력 플로우가 이어질 수 있도록 도와줌

타입 일치 완성

  • CTRL + SHIFT + SPACE
  • 현재 컨텍스트 내에서 적용 가능한 타입만을 표시

접미사 완성

  • 특정한 표현식 뒤 점.을 입력
  • 해당 접미사를 활용하여 만들 수 있는 구문의 종류를 나열

탭으로 코드 완성

  • CTRL + SPACE를 눌러 완성 제안을 추가할 때,
    이미 뒤에 어떤 내용이 있는 경우,
    TAB을 누르면 그 내용을 대체해서 들어간다
    • 엔터를 누르는 경우
    • 탭을 누르는 경우

리팩터링

  • CTRL + ALT + SHIFT + T
  • 현재 컨텍스트에 사용할 수 있는 모든 리팩터링 목록을 보여줌

매개변수 삽입

  • 특정한 변수를 CTRL + W로 선택하고, 매개변수 삽입을 사용하면
  • 메서드의 파라미터로 등록하여 쉽게 가변 상황으로의 리팩터링이 가능함

BEFORE

    private static List<String> readStrings() throws IOException {
        try(BufferedReader reader = new BufferedReader(new FileReader("input.txt"))) {

AFTER

    private static List<String> readStrings(FileReader fileReader) throws IOException {
        try(BufferedReader reader = new BufferedReader(fileReader)) {

인라인 변수화

  • 해당 변수가 이후에 사용된 맥락을 별도의 변수로 구분하지 않고 이어주는 것

상수 삽입

  • 특정 리터럴을 클래스 내 상수로 정의합니다.
  • CTRL + ALT + C로도 할 수 있습니다.

이름 변경 (중요!)

  • SHIFT + F6
  • 동일한 심볼의 이름을 모두 변경한다
  • Getter/Setter가 있다면 이에 대한 변경도 제안한다.

변수 추출 (유의!)

  • CTRL + ALT + V
    • 범위를 지정하는 CTRL + W와 함께 사용하면 좋다
  • 동일한 값을 가지는 범위 내의 요소들을 동일한 이름의 변수로 바꿔준다.
    • 편집기의 모두 바꾸기와 유사한 기능이다.
  • 하지만 중간 과정에서의 사이드 이펙트는 개발자가 직접 고려해야 한다.
    • if (array[i] > array[i + 1]) {
          i++; // 상식에 어긋나지만, 일단 이런 게 있다고 치자
          int temp = array[i];
          array[i] = array[i + 1];
          array[i + 1] = temp;
      }
    • int iNext = i + 1; // i가 1이었으면 iNext = 2
       if (array[i] > array[iNext]) {
           i++;
           int temp = array[i];
           array[i] = array[iNext]; // 실제로는 3이 들어와야 했는데
           array[iNext] = temp;     // iNext = 2로 들어온다.
       }

메서드 추출 (중요!)

  • CTRL + ALT + M
  • 선택한 블록에서의 사이드 이펙트를 토대로 메서드를 추출해준다.
  • 편집기의 '찾기' 기능을 활용해 동일한 구현을 추출한 메서드로 치환해준다.

코드 지원

제거된 코드 복원

  • 마우스 오른쪽 클릭 > 로컬 기록 > 기록 표시
  • 현재의 파일 내용 + 제거되었던 해당 맥락 복원
    • A라는 블록의 코드가 있었습니다. A를 삭제하고 해당 파일을 계속 편집하다보면, 어느 순간 CTRL + Z로는 A가 있었던 순간으로 돌아갈 수 없습니다.
    • 이 기능을 사용하면 현재의 파일 내용을 보존하면서, 삭제했던 코드도 복원할 수 있습니다.

코드 서식

  • CTRL + ALT + L
  • CTRL + ALT + SHIFT + L
  • 코드 서식 설정에 필요한 내용들은 저장 시 액션으로 유지하는 편이 좋을 것 같음

매개변수 정보

  • CTRL + P
  • 메서드 및 함수 호출 내의 매개변수 표시

빠른 팝업

  • CTRL + Q
    • 처음 누를 때에는 옆에 간단하게만 표시되고
    • 두 번째에는 문서 도구 창을 열어주고
    • 세 번째에는 해당 도구 창으로 포커스를 옮겨 마우스 없이 상호작용을 가능하게 한다
  • CTRL + SHIFT + I
    • 해당 심볼의 정의를 확인할 수 있다

에디터 코딩 지원 (진짜 중요!)

  • 오류/경고 이동 (F2)
    • F2를 누르면 파일 내 강조된 다음 오류/경고로 포커스가 자동 이동된다.
    • ALT + ENTER로 기본적인 수정 옵션을 볼 수 있다.
    • ALT + SHIFT + ENTER로 추천 수정 옵션을 바로 적용할 수도 있다.
  • 경고 설명 (CTRL + F1)
    • 이 경고가 나오는 이유를 보여준다.
  • 심볼 사용 위치 강조 (CTRL + SHIFT + F7)
    • 캐럿의 위치에 있는 심볼의 파일 내 사용 위치를 모두 강조 표시해준다.

탐색

찾기/바꾸기

  • 파일 내 찾기: CTRL + F
    • 당시에 선택한 단어를 자동으로 검색 창에 복사함
    • F3 그리고 SHIFT + F3으로 앞뒤 이동 가능
    • 그리고 창을 닫은 상태에서도 검색 키워드 상태는 유지됨
  • 파일 내 바꾸기: CTRL + R
  • 스코프 전체에서 찾기: CTRL + SHIFT + F
  • 스코프 전체에서 바꾸기: CTRL + SHIFT + R
    • 단어 단위로 찾기 옵션: ALT + W
    • 스코프 바꾸기: ALT + (스코프에 해당하는 알파벳)

파일 구조

  • 큰 소스 파일을 읽고 탐색할 때
  • 구조 미리보기 제공: CTRL + F12
  • 구조 도구 창 토글: ALT + 7

선언 및 사용 위치 (중요!)

  • 메서드의 선언 위치로 이동: CTRL + B
  • 메서드의 사용 위치 찾기: ALT + F7
    • 만약 다른 심볼에 대한 찾기를 진행하면, 기존 찾기 결과가 덮어씌워져 사라진다.
    • 따라서, 결과를 보존하고 싶다면 탭 고정을 해두면 된다.
    • 탭 닫기 SHIFT + ESC
    • 찾기 뷰 열기 ALT + 3

상속 게층 구조 (중요!)

  • 계층 구조 내려가기 (구현체로): CTRL + ALT + B
  • 계층 구조 올라가기 (인터페이스로): CTRL + U
  • 거의 사용 안 되는 애들
    • 메서드의 전체 계층 구조 - 도구창에서 보기: CTRL + SHIFT + H
    • 클래스 계층 구조 - CTRL + H

최근 파일 및 위치 (써볼만 할듯?)

  • 최근 열었던 파일: CTRL + E
    • 재귀적으로 문서를 탐색하는 등
      탭의 개수가 많아져 이동이 어려워진 상태에 유용
    • DELETE로 간편한 탭 닫기
  • 최근 열었던 파일의 코드: CTRL + SHIFT + E
    • 이동/참조에 활용했던 순간의 코드 조각 목록을 보여줌

실행

  • SHIFT + F10
    • 현재 파일 실행
  • CTRL + SHIFT + F10
    • 임시 구성 실행 (최대 5개 기록됨)
    • 구성 저장을 통해 영구화 가능
  • SHIFT를 누른 상태로 구성을 누르면 설정창
  • 프로젝트 파일로 저장하면 export하여 팀원과 공유 가능

디버깅 (와!! 신세계!!)

  • CTRL + F8 중단점
  • SHIFT + F9 디버그 시작
  • 단순 콜 스택 정보뿐만 아니라, 인터프리터 언어처럼
    평가식을 실행할 수 있는 인터페이스가 있다!!
  • ALT + CLICK하면 직접 복사/붙여넣기 하지 않아도,
    노랗게 하이라이트되는 영역을 1회 평가할 수 있다!!
    • 대신, 클릭으로 예외가 생기면 작은 임시 팝업으로 떠서 눈에 확 들어오지는 않는다.
  • 디버거 감시(자동 표현식 평가)
    • 표현식을 CTRL + SHIFT + ENTER로 평가하거나
    • CTRL + SHIFT + A > watch에 추가
  • 스텝인투 (F7)
    • 메서드의 내부 호출로 들어간다.
    • 한 라인에 다양한 메서드들이 인라인으로 쓰여져있다면, 어떤 메서드로 들어갈 지 선택도 할 수 있다!
  • CTRL + ALT + F8: 선택한 인수의 빠른 표현식 평가
    • 어떤 값이 전달되었나 확인할 수 있다!
    • 즉, 특정 지점에 sout 안 찍어봐도, 가서 이거 한 번이면 무슨 값인지 알 수 있다는거
  • CTRL + F9: 소스 수정 이후, 핫스왑 프로젝트 빌드
    • 내가 알기론 런타임에 실행 소스를 바꾸는 게 핫스왑
    • 그러니까 현재 실행 컨텍스트를 유지하면서 바뀐 코드로 이어서 디버깅이 진행되는 것!
    • 대신 이건 수정사항이 순수한 하나의 메서드에만 영향을 미칠 때만 가능
    • 대신 로우 레벨 접근이라 다소 조정이 필요해보임. 그래도 적응하면 좋을듯!
  • ALT + F9 또는 커서 위치까지 실행

시스템

  • 탭 닫기: CTRL + F4

GIT 통합 IDE까지 진행하면 모든 학습을 마치게 되며,
별도의 포스트로 분리하여 정리 예정

0개의 댓글