오늘은 여러분의 가장 강력한 무기인 IntelliJ IDEA(인텔리제이) 속에 숨겨진, 하지만 알면 개발 속도가 비약적으로 빨라지는 디버깅 기능 3가지를 소개해 드릴게요. 이 기능들만 손에 익혀도 "디버깅이 이렇게 쉬웠어?"라는 말이 절로 나오실 거예요.

1. 무한 클릭은 그만! 똑똑하게 멈추는 'Conditional Breakpoints'
반복문(For, While)을 디버깅할 때 가장 고통스러운 순간이 언제인가요? 아마도 1,000번 도는 루프 중에서 딱 999번째 요소에서 발생하는 에러를 잡아야 할 때일 겁니다.
보통은 브레이크포인트(중단점)를 걸어두고, F9(Resume) 키를 998번 연타하거나, 임시로 if (i == 999) 같은 코드를 작성하곤 하는데요. 이제는 Conditional Breakpoints(조건부 중단점) 기능을 활용해 보세요.
사용 방법
- 코드 라인 번호 옆을 클릭해 평소처럼 빨간색 중단점(Red Dot)을 생성합니다.
- 생성된 중단점에 마우스 우클릭을 합니다.
- 나타나는 팝업 창의 Condition 입력란에 멈추고 싶은 조건을 Java 코드로 작성합니다.
- 예: user.getId().equals("error_user") 또는 index == 999
- Done을 누르면 끝!
이제 디버거는 해당 조건이 true가 될 때만 멈춥니다.
불필요한 클릭 횟수를 획기적으로 줄여주기 때문에, 특정 데이터에서만 발생하는 버그를 잡을 때 압도적인 효율을 보여준답니다.

https://www.jetbrains.com/guide/tips/conditional-breakpoints/
Working with Conditional Breakpoints
Learn how to stop your JetBrains IDE debugger when a certain condition is true.
www.jetbrains.com
2. 복잡한 람다식도 한눈에 보여주는 'Java Stream Debugger'
Java 8 이상을 쓰신다면 Stream API를 많이 활용하실 텐데요. 코드는 간결해지지만, 디버깅은 헬(Hell)이 되는 경우가 많습니다.
map, filter, sorted 등이 체이닝 되어 있으면, 도대체 어느 단계에서 데이터가 잘못 변환되었는지 파악하기가 정말 어렵죠.
이럴 때 인텔리제이가 제공하는 Java Stream Debugger를 사용하면, 데이터가 흘러가는 과정을 시각적으로 확인할 수 있습니다.

사용 방법
- Stream 로직이 있는 라인에 중단점을 걸고 디버깅을 시작합니다.
- 해당 라인에서 멈췄을 때, 디버거 창 상단의 아이콘 중 'Trace Current Stream Chain' 버튼을 찾으세요. (가로로 된 3개의 점이 연결된 아이콘처럼 생겼습니다.)
- 버튼을 클릭하면 별도의 팝업 창이 뜹니다.
이 창에서는 filter를 거치면서 어떤 요소가 걸러졌는지, map을 통해 데이터가 어떻게 변했는지를 단계별 탭으로 보여줍니다.
머릿속으로만 그려야 했던 데이터의 흐름을 눈으로 직접 보게 되면, 문제의 원인을 찾는 속도가 비교할 수 없을 만큼 빨라질 거예요.

3. 실수로 지나쳤다면 되감기! 시간을 돌리는 'Drop Frame'
디버깅을 하다 보면 Step Over (F8)를 너무 빠르게 누르다가, 정작 확인해야 할 중요한 메서드 내부를 그냥 지나쳐버린 경험, 다들 있으시죠?
"아차!" 하는 순간, 보통은 디버깅을 중단하고 다시 서버를 띄워서 처음부터 그 지점까지 가야 했습니다.
하지만 Drop Frame 기능을 알면 그럴 필요가 없습니다. 마치 시간을 되돌리듯, 방금 실행한 메서드를 취소하고 그 메서드가 호출되기 직전으로 돌아갈 수 있거든요.
사용 방법
- 디버거의 Frames 탭(호출 스택이 보이는 곳)을 확인합니다.
- 돌아가고 싶은(다시 실행하고 싶은) 메서드 바로 아래의 스택 프레임을 우클릭합니다.
- Drop Frame (또는 Reset Frame)을 선택합니다.
이렇게 하면 현재 실행 중이던 스택이 사라지고(Pop), 이전 호출 지점으로 커서가 되돌아갑니다.
변수 상태는 완벽하게 롤백되지 않을 수도 있지만(전역 변수 변경 등), 흐름을 다시 타기에는 충분합니다.
이 기능 하나만 잘 써도 재부팅 횟수를 절반으로 줄일 수 있습니다.
도구가 아닌 문제 해결에 집중하세요
오늘 소개해 드린 Conditional Breakpoints, Stream Debugger, Drop Frame 이 3가지 기능은 인텔리제이가 제공하는 강력한 무기 중 일부일 뿐입니다.
하지만 이 기능들을 손에 익히는 것만으로도, 단순 반복 작업에 쏟던 에너지를 아껴 더 중요한 비즈니스 로직과 문제 해결에 집중할 수 있게 됩니다.
지금 바로 IDE를 켜고, 진행 중인 프로젝트에서 이 기능들을 한 번씩 눌러보세요.
"왜 이제야 알았을까?" 하는 탄성이 나오실지도 모릅니다. 여러분의 칼퇴를 응원합니다!

'개발&프로그래밍' 카테고리의 다른 글
| [IntelliJ] 인텔리제이 필수 플러그인 Grep Console 사용법: 로그의 신세계 (0) | 2025.12.02 |
|---|---|
| [IntelliJ] 인텔리제이 Key Promoter X 사용법: 단축키 자동 암기 플러그인 설정 (0) | 2025.12.02 |
| [N8N 활용] 매일 아침 나만의 비서 만들기: 뉴스 & 날씨 텔레그램 자동 전송 (1) | 2025.11.29 |
| [n8n 실전 예제] 지메일(Gmail) 중요 메일, 슬랙(Slack)으로 1초 만에 알림 받기 (0) | 2025.11.29 |
| [n8n] n8n 사용법 완벽 가이드: NASA API로 첫 자동화 워크플로우 만들기 (0) | 2025.11.29 |
댓글