ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NodeJS Debugging
    카테고리 없음 2022. 8. 2. 15:58

    Debugging

    디버깅에서 가장 중요한 것은 문제를 정의하(defining the problem)는 것이다. 어떤 문제 인지 어떤 버그인지 어떤 오류인지 이런 문제를 잘 정의해야지 그에 맞는 솔루션을 찾을 수 있다.

     

     

    현재 실제 상황과 예상 혹은 원하는 상황의 차이에서 발생하는 gap을  Debugging뿐만 아니라

    • unit testing
    • integration testing
    • control flow analysis
    • log file analysis/print logs

    등을 할 수도 있다. 

     

    interactive debugging 

    동작하는 프로그램 즉 소스코드 안에서 실시간으로 값을 확인하고, 또는 실시간으로 값을 변경해서 상태를 확인 할 수 있다.

     

    덧붙여

    • memory dumps profiling : 성능을 분석하는데 유용한 메모리를 분석하고, 여러가지 상태의 profiling을 할 수 있는 것 도 존재한다.

    debugging이나 log를 출력하는 것만이 문제해결 수단은 아니다. 어떤 걸 원하느냐에 따라 적절한 도구를 골라서 문제상황과 원하는 결과의 gap을 줄여나가야 하다.

     

     

    step over

    다음 break point로 넘어가는 것이 아니라 코드 한줄씩 진행하면서 출력 결과를 확인할 수 있는 버튼이다. 대신에 이 버튼은

    함수안에서 다름 함수를 호출하고 있는 경우에는 다른 함수 안까지는 들어가지 않고 함수를 호출하고 그 결과를 받아서 다음 중에 있는 코드로 넘어간다.

     

    step into

    함수의 함수 안까지 들어가서, 한줄 씩 코드를 실행하면서 결과를 출력한다.

     

    step out

    step into를 통해서 함수의 함수 안까지 들어간 경우 안쪽 함수를 빠져나 올 수 있게 해준다.


    Closure

    지금 debugging을 하고 있는 함수와 어떤 다른 외부의 함수가 어떻게 연관이 되어 있는지 알려준다.

     

    Global 

    global 객체는 어떤 것들이 있는지 확인해 볼 수 있다.

     


    Variables

    보통은 내가 debugging하고 있는 현재 함수의 변수들의 값에 대해 확인 할 수 있고

     

    Watch

    우리가 좀더 관심있는 지켜보고 싶은 그런 변수나 logic이 있다면, Watch에서 작성해서 지켜 볼 수 있다.

     

    Call Stack

    해당 함수가 실행되기 전까지 어떤 순서대로 어떻게해서 해당 함수가 실행되었는지 확인 할 수 있다.

     

    Loaded Scripts

    어떤 script가 함께 loading되었는지도 확인해 볼 수 있다.

     

    Break Point

    그리고 여태까지 걸어 놓았던 break point들을 확인 할 수 있다. 잠시 비활성화 시켜 놓을 수도 있다.

     

     

    [출처 -https://academy.dream-coding.com/courses/node ]

     

    댓글

Designed by Tistory.