[IntelliJ] Breakpoint 활용하기 #2. 디버깅 버튼, Evaluate와 Watch

toto9602·2024년 10월 3일
1

IntelliJ

목록 보기
3/4

이전 포스팅에 이어, 디버깅 버튼의 활용에 대해 알아보고, 정리하고자 합니다.
잘못된 내용에 대한 피드백은 언제나 감사드립니다! (_ _)

이하의 예시 코드는 Spring Boot + Kotlin 환경의 서버에서, JUnit으로 실행하였습니다!

참고자료

기억보다 기록을 - IntelliJ 디버깅 해보기

디버깅 버튼

breakpoint에 진입, 즉 break가 걸린 상황에서 사용할 수 있는 버튼의 종류 및 기능에 대해 알아보고자 합니다!

resume

가장 기본적으로 많이 활용 (무지성으로 활용하던..) 하던 버튼입니다. 😅

 단축키 : option + cmd + r

→ 그대로 다음 breakpoint로 이동!


step over

단축키 : F8

현재 break된 파일에서, 다음 라인으로 이동!

예시 코드는 아래와 같이 간단히 구성하였습니다! :)

@Service
class SampleService(
    private val targetService: TargetService,
) {
    fun samplePrint(arg:String) {
        println("Hello World")

        println("${arg}를 함께 출력합니다.")

        if (meetsCondition()) {
            targetService.doSomething()
        }

        println("메서드 종료! :)")

    }

    private fun meetsCondition():Boolean {
        return true
    }
}

실행해 보기

→ 조건문 Breakpoint에 진입했을 때, Step Over를 해주면,


→ 바로 다음 줄로 Highlight가 이동합니다!

참고자료 글
"이 기능을 몰라서 라인 하나하나에 전부 break를 걸었다면, F8을 사용하자"
라고 언급해 주신 내용이 있는데, 제 얘기...네요.. 😓


step into

F7

현재 break된 라인에서 실행하고 있는 라인으로 이동!

실행해 보기

위와 동일한 예시 코드에서...

targetService를 호출하는 부분에 실행 흐름이 멈춰있을 때, Step Into를 걸어주면..!

→ 실행 중인 해당 메서드로 이동합니다! :)


step out

단축키 : shift + F8

현재 break 된 라인에서 호출한 곳으로 이동!

실행해 보기

바로 위 상황, TargetService에 진입해 있는 상황에서 Step out 을 걸어주면..

→ 메서드를 빠져나오게 됩니다! :)
→ 주로 Step into 로 파고 들어간 라인을 빠져나오기 위해 사용!


Run to Cursor

단축키 : option + F9

포커스되어 있는 라인으로 이동!

실행해 보기

→ 위와 같이, Break가 걸려 있는 상태에서!

이후에 실행될 라인에 포커스를 두면, Run to Cursor 옵션이 바로 뜨네요!

→ 눌러주면, 해당 지점으로 Break가 이동합니다!
→ Breakpoint로 지정하지 않고, 단발성으로 break를 걸고 싶을 때 사용!

Evaluate와 Watch

EvaluateWatch는 모두 Break된 라인에서 사용할 수 있는 기능이라고 합니다.
유사한 기능을 수행하는데, 간단히 마저 살펴보려고 합니다!

Evaluate

단축키 : option + F8

사용 중인 IntelliJ 기준, 점 세 개 아이콘 눌러주고,

→ 계산기 아이콘의 Evaluate Expression을 눌러줍니다!

→ → Expression 창에서, 해당 라인에서 실행 가능한 코드를 실행해서 결과를 확인해 볼 수 있습니다!

Watch

조금 전에 확인했던 Evaluate 탭에서,

shift + cmd + enter

를 입력하여, 실행한 코드를 Watch에 추가해 줄 수 있습니다!

→ 추가되면 이렇게, 안경 모양 아이콘과 함께 Expression이 Watch로 추가됩니다.

기본적으로 Evaluate와 동일한 기능을 수행하지만,
Watch의 경우 삭제하지 않는 한 Break line이 실행될 때마다 자동 실행되어,
반복적으로 디버깅 코드를 사용할 필요가 없고 여러 디버깅 코드의 결과를 동시에 확인할 수 있다고 합니다!

마무리

IntelliJ에서 사용할 수 있는 몇 가지 디버깅 버튼, EvaluateWatch에 대해 간단히 공부해 보았습니다!
아직 익숙하지 않은 기능들이지만, 의식적으로 조금씩 사용해 보면서 생산성을 높일 수 있다면 좋을 것 같습니다! :)

profile
주니어 백엔드 개발자입니다! 조용한 시간에 읽고 쓰는 것을 좋아합니다 :)

0개의 댓글