Debugging

6.IntelliJ IDEA에서 Spring Boot Java 프로그램 디버깅하는 방법

backend 따라쟁이 2025. 1. 27. 23:06

Spring Boot 애플리케이션을 디버깅하려면 IntelliJ IDEA의 강력한 디버깅 도구를 활용하는 것이 가장 효과적입니다. 초보자를 위한 가이드를 따라하면 쉽게 디버깅에 익숙해질 수 있습니다. 아래는 단계별로 설명된 IntelliJ IDEA에서의 디버깅 방법입니다.

의외로 디버깅을 잘 활용하지 못하는 개발자 분들이 있습니다. 그러나 고급 개발자에게도 디버깅 능력이 곧 개발 능력이라고 할 수 있을 만큼 디버깅은 중요합니다. 초급 개발자 분들이 디버깅을 효과적으로 활용할 줄 안다면, 아마도 어느 누구보다 개발 역량을 빠르게 키워나갈 수 있을 겁니다. 오늘도 제 블로그가 도움이 되셨으면 하며, 실력 또한 일취월장하시기 바랍니다.


1. 디버깅 설정 준비

  • Spring Boot 프로젝트 열기
    IntelliJ IDEA에서 디버깅하려는 Spring Boot 프로젝트를 엽니다.
  • Breakpoints 설정
    • 디버깅하려는 코드 라인 번호를 클릭합니다.
      클릭하면 아래 이미지와 같이 코드 라인 번호에 빨간색 점(Breakpoint)이 생깁니다.
    • 예: Application 클래스에 createData 메소드 코드 라인 36번에 Breakpoint 설정.

(그림) 디버깅 Breakpoints 설정

  • (참고) Run/Debug Configurations 설정
    • 화면 상단의 툴바에서 구성 편집(Edit Configurations)를 클릭하면, Spring Boot 애플리케이션 실행 설정을 확인할 수 있습니다. 
    • 설정 내용을 수정하거나 추가할 수 있으나, Spring boot 기본 설정을 잘 따라 왔다면 특별히 추가 수정이 필요하지 않음
    • 툴바의 실행 버튼 또는 디버깅 버튼을 클릭하면 박스에 선택된 Application이 실행됩니다.

(그림) 구성 편집(Edit Configurations) 클릭

(그림) Spring Boot 어플리케이션 실행 설정이 조회됨 --> 자동 생성됨으로 수정할 필요 없음.

 


2. 디버그 모드로 애플리케이션 실행

  1. 디버그 실행
    • 툴바에서 녹색 Debug 아이콘(벌레 모양)을 클릭합니다.
    • 단축키: Shift + F9

(그림) Debug 아이콘(벌레 모양) 클릭

  1. 디버그 창 확인
    • 하단에 디버그 관련 정보가 표시되는 디버그 창이 활성화됩니다.
    • 디버깅 중에는 Variables, Watches, Frames 탭에서 변수 값, 호출 스택 등을 확인할 수 있습니다.

(그림) 하단 디버그 창 (프로그램이 호출되어 Breakpoints를 만남)


3. 디버깅 기능 사용법

  1. 코드 실행 흐름 제어
    • Step Into (F7): 메소드 내부로 진입.
    • Step Over (F8): 현재 라인의 메소드를 실행하되 내부 진입 없이 다음 라인으로 이동.
    • Step Out (Shift + F8): 현재 메소드 실행을 완료하고 호출한 메소드로 복귀.

(그림) 아이콘 스텝오버(F8), 스텝인투(F7), 스텝아웃(Shift + F8)

  1. 변수 값 확인
    • Variables 탭에서 변수 값을 실시간으로 확인하거나, 코드 위에 마우스를 올려 변수 값을 확인합니다.
    • 특정 변수에 값을 추가로 확인하고 싶다면 Watches에 등록합니다.

(그림) "스레드 및 변수" 텝에서 변수 값을 실시간으로 확인

  1. Breakpoint 관리
    • Breakpoint를 우클릭해 조건을 추가하거나 활성/비활성화할 수 있습니다.
    • 조건 예: 특정 변수 값이 특정 값일 때만 멈추기.

(그림) Breakpoint 우클릭 팝업 참에서 중단점 조건을 추가하는 방법 예시(id값이 0인 경우만 해당 Breakpoint에서 디버깅!)


4. 문제 해결 및 디버깅 종료

  1. 문제 해결
    • 디버깅하면서 발견된 문제를 코드에서 수정합니다.
    • 수정 후 애플리케이션을 다시 실행하여 문제가 해결되었는지 확인합니다.
  2. 디버깅 중지
    • 디버깅이 끝나면 툴바의 Stop 버튼을 클릭하거나, 단축키 Ctrl + F2를 눌러 애플리케이션을 종료합니다.

5. 디버깅 팁

  • 로그 활용: 디버깅 전, application.properties에 로그 수준을 debug로 설정하여 로그를 함께 분석합니다.

(그림) properties파일에 로그 레밸을 DEBUG로 설정하면 콘솔에 디버깅 정보가 함께 출력됨

  • Hot Swap 사용: 디버깅 중에 코드 수정 후, 애플리케이션을 다시 시작하지 않고도 수정 사항을 반영할 수 있습니다.
    (Settings > Build, Execution, Deployment > Debugger > Hot Swap 설정 확인)

(그림) "코드가 수정될 때 에디터에서 핫스왑"의 "컴파일 후 클래스를 다시 로드" 옵션을 "항상"으로 설정

 

※ 설정이 완료되었으면 실행 중인 애플리케이션에서 Hot Swap을 아래와 같이 사용합니다.

  1. 디버그 모드로 애플리케이션 실행
    • 프로젝트를 디버그 모드로 실행합니다.
      (Shift + F9 또는 디버그 아이콘 클릭)
  2. 코드 수정 후 컴파일 (☞ 아래와 같이 수동 컴파일하면 프로그램 재시작 없이 계속해서 디버깅이 가능 합니다.
    • 코드를 수정합니다.
    • Ctrl + F9 (Windows/Linux) 또는 Command + F9 (Mac)로 수동 컴파일을 수행합니다.
    • IntelliJ IDEA가 변경된 클래스 파일을 실행 중인 애플리케이션에 자동으로 로드합니다.

위 내용을 따라 IntelliJ IDEA에서 Spring Boot 디버깅을 처음부터 끝까지 수행할 수 있습니다. 디버깅은 단순한 기능 이해를 넘어서 문제 해결 능력을 키우는 중요한 스킬이니, 다양한 프로젝트에서 연습하며 익숙해져 보세요!