20230223 [디버깅이란?]

Daisy🌷·2023년 2월 23일
0

디버깅이란?

디버깅 또는 디버그

  • 컴퓨터 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산을 찾아내고 그 원인을 밝히고 수정하는 작업 과정
  • 코드에서 버그를 제거하는 것을 의미한다.

완전 초보자를 위한 디버깅하는 방법

틀림없이, 소프트웨어 개발자로서 작성하는 코드는 항상 예상한 대로 작업을 수행하지는 않는다. 경우에 따라 완전 다르게 작업을 수행할 때도 있다. 이 경우 다음 작업은 그 이유를 파악하는 것이다.

자신에게 직접 올바른 질문을 하여 문제를 명확히 한다.

수정하려고 하기 전에 발생한 문제를 명확하게 하는 것이 좋다. 이미 코드에서 문제가 발생했다고 예상한다. 그렇지 않으면 디버깅하는 방법을 파악하기 위해 여기에 있지 않을 것이다. 따라서 디버깅을 시작하기 전에 해결하고자 하는 문제를 파악했는지 확인한다.

  • 코드에게서 어떤 동작을 기대했는가?
  • 그 대신 어떤 일이 발생했나?

앱을 실행하는 동안 오류(예외)가 발생한 경우 이는 좋은 결과가 될 수 있다! 예외는 코드를 실행할 때 발생한 예기치 않은 이벤트이며 일반적으로 일종의 오류이다.
다른 문제가 발생한 경우 문제의 증상은 무엇인가? 코드에서 이 문제가 발생한 위치를 이미 파악하고 있나? 예를 들어 코드에서 일부 텍스트를 표시하지만 텍스트가 올바르지 않은 경우 데이터가 잘못되었거나 표시 텍스트를 설정한 코드에 버그가 있다는 것이다.

가정 검사

버그 또는 오류를 조사하기 전에 특정 결과를 예상하게 만든 가정을 생각해본다. 가능한 가정의 긴 목록이 있을 수 있다. 다음은 가정이 올바른지 점검하기 위한 몇 가지 질문이다.

  • 올바른 API를 사용하고 있나?(즉, 올바른 개체, 함수, 메서드 또는 속성)
    사용 중인 API는 사용자가 생각하는 대로 작동하지 않을 수 있다.
  • API를 올바르게 사용하고 있나? 아마도 올바른 API를 사용했지만 올바른 방법으로 사용하지 않았을 것이다.
  • 코드에 오타가 포함되어 있나? 변수 이름의 간단한 맞춤법 오류와 같은 몇 가지 오타는 사용되기 전에 변수를 선언할 필요가 없는 언어를 사용하는 경우에 특히 찾기 어려울 수 있다.
  • 코드를 변경하고 표시되는 문제와 관련 없는 것으로 가정했나?
  • 개체 또는 변수에 실제로 발생한 것과 다른 특정 값(또는 특정 형식의 값)을 포함할 것으로 예상했나?
  • 코드의 의도를 알고 있나? 다른 사람의 코드를 디버그하기가 종종 더욱 어렵다. 사용자의 코드가 아닌 경우 효과적으로 디버그하기 위해 코드가 수행하는 것을 정확하게 학습하는 데 시간을 소비해야 할 수 있다.

가정을 질문하여 코드에서 문제를 찾는 데 걸리는 시간을 줄일 수 있다. 또한 문제를 해결하는 데 걸리는 시간을 줄일 수 있다.

코드를 작성할 때 작은 것에서 시작하고, 작동하는 코드를 사용하여 시작한다. (여기에서는 좋은 샘플 코드가 유용하다.) 경우에 따라 달성하려는 핵심 작업을 보여주는 코드의 작은 부분부터 시작하여 대규모 또는 복잡한 코드 집합을 수정하는 것이 쉽다. 그런 다음, 오류의 각 지점에서 테스트하여 코드를 점진적으로 수정하거나 추가할 수 있다.

profile
티스토리로 블로그를 이전했습니다. 😂 구경 오세요! 👉🏻 https://u-ryu-logs.tistory.com

0개의 댓글