이전 포스팅에 이어, 디버깅 버튼의 활용에 대해 알아보고, 정리하고자 합니다.
잘못된 내용에 대한 피드백은 언제나 감사드립니다! (_ _)
이하의 예시 코드는 Spring Boot + Kotlin 환경의 서버에서, JUnit으로 실행하였습니다!
breakpoint에 진입, 즉 break가 걸린 상황에서 사용할 수 있는 버튼의 종류 및 기능에 대해 알아보고자 합니다!
가장 기본적으로 많이 활용 (무지성으로 활용하던..) 하던 버튼입니다. 😅
단축키 : option + cmd + r
→ 그대로 다음 breakpoint로 이동!
단축키 : 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을 사용하자"
라고 언급해 주신 내용이 있는데, 제 얘기...네요.. 😓
F7
→ 현재 break된 라인에서 실행하고 있는 라인으로 이동!
위와 동일한 예시 코드에서...
→ targetService
를 호출하는 부분에 실행 흐름이 멈춰있을 때, Step Into
를 걸어주면..!
→ 실행 중인 해당 메서드로 이동합니다! :)
단축키 : shift + F8
→ 현재 break 된 라인에서 호출한 곳으로 이동!
바로 위 상황, TargetService
에 진입해 있는 상황에서 Step out
을 걸어주면..
→ 메서드를 빠져나오게 됩니다! :)
→ 주로 Step into
로 파고 들어간 라인을 빠져나오기 위해 사용!
단축키 : option + F9
→ 포커스되어 있는 라인으로 이동!
→ 위와 같이, Break가 걸려 있는 상태에서!
이후에 실행될 라인에 포커스를 두면, Run to Cursor
옵션이 바로 뜨네요!
→ 눌러주면, 해당 지점으로 Break가 이동합니다!
→ Breakpoint로 지정하지 않고, 단발성으로 break를 걸고 싶을 때 사용!
Evaluate
와 Watch
는 모두 Break된 라인에서 사용할 수 있는 기능이라고 합니다.
유사한 기능을 수행하는데, 간단히 마저 살펴보려고 합니다!
단축키 : option + F8
사용 중인 IntelliJ 기준, 점 세 개 아이콘 눌러주고,
→ 계산기 아이콘의 Evaluate Expression
을 눌러줍니다!
→ → Expression 창에서, 해당 라인에서 실행 가능한 코드를 실행해서 결과를 확인해 볼 수 있습니다!
조금 전에 확인했던 Evaluate
탭에서,
shift + cmd + enter
를 입력하여, 실행한 코드를 Watch
에 추가해 줄 수 있습니다!
→ 추가되면 이렇게, 안경 모양 아이콘과 함께 Expression이 Watch
로 추가됩니다.
기본적으로 Evaluate
와 동일한 기능을 수행하지만,
Watch
의 경우 삭제하지 않는 한 Break line이 실행될 때마다 자동 실행되어,
반복적으로 디버깅 코드를 사용할 필요가 없고 여러 디버깅 코드의 결과를 동시에 확인할 수 있다고 합니다!
IntelliJ에서 사용할 수 있는 몇 가지 디버깅 버튼, Evaluate
와 Watch
에 대해 간단히 공부해 보았습니다!
아직 익숙하지 않은 기능들이지만, 의식적으로 조금씩 사용해 보면서 생산성을 높일 수 있다면 좋을 것 같습니다! :)