Akashic Records

6.3 디버깅 기술 본문

Python for Beginners

6.3 디버깅 기술

Andrew's Akashic Records 2023. 3. 21. 11:05
728x90

파이썬에서 디버깅은 코드에서 오류를 찾아 수정하는 과정입니다. 다양한 디버깅 기술이 있지만, 여기서는 몇 가지 기본적인 디버깅 기술을 소개하겠습니다.

1. print() 함수 사용: 변수의 값을 출력하여 문제를 파악하는 가장 간단한 방법입니다.

def add(a, b):
    result = a + b
    print("a:", a, "b:", b, "result:", result)  # 변수 값 출력
    return result

add(3, 5)

 

2. assert 문 사용: 조건을 확인하고, 조건이 거짓일 경우 AssertionError를 발생시킵니다. 이를 통해 예상치 못한 상황을 감지할 수 있습니다.

def divide(a, b):
    assert b != 0, "분모는 0이 아니어야 합니다."
    return a / b

divide(10, 0)  # AssertionError 발생

 

3. logging 모듈 사용: print() 함수와 유사하지만, 로그 레벨에 따라 출력을 제어할 수 있고, 로그 파일에 기록할 수도 있습니다.

import logging

logging.basicConfig(level=logging.DEBUG)  # 로그 레벨 설정

def multiply(a, b):
    result = a * b
    logging.debug("a: %s, b: %s, result: %s", a, b, result)
    return result

multiply(3, 4)

 

4. pdb (Python Debugger) 사용: 파이썬의 기본 디버거로, 코드를 중단점(breakpoint)에서 중지하고, 변수 값을 검사하거나 단계별로 실행할 수 있습니다.

import pdb

def subtract(a, b):
    pdb.set_trace()  # 중단점 설정
    result = a - b
    return result

subtract(10, 5)

pdb.set_trace()를 실행한 후에는 다음과 같은 명령어를 사용할 수 있습니다.

  • n (next): 다음 줄로 이동
  • s (step): 함수 내부로 들어감
  • c (continue): 다음 중단점까지 실행
  • q (quit): 디버거 종료
  • p (print): 변수 값 출력

5. IDE (통합 개발 환경) 사용: 많은 IDE들이 내장 디버거를 제공합니다. 예를 들어, Visual Studio Code, PyCharm 등의 IDE에서 디버깅을 수행할 수 있습니다. IDE에서 제공하는 디버거는 직관적인 인터페이스와 함께 강력한 디버깅 기능을 제공합니다.

디버깅 기술을 사용하면 코드에서 발생하는 오류를 효과적으로 찾아 수정할 수 있습니다. 어떤 디버깅 기술을 사용할지는 개발 환경, 개인 취향, 그리고 문제의 복잡성에 따라 결정할 수 있습니다. 여기 추가적인 디버깅 방법을 소개하겠습니다.

6. 유닛 테스트 작성: 코드의 각 함수나 클래스에 대해 테스트 케이스를 작성하여 예상대로 작동하는지 확인합니다. 이를 통해 코드에 숨겨진 오류를 찾아낼 수 있습니다. 파이썬에서는 unittest 모듈을 사용하여 유닛 테스트를 작성할 수 있습니다.

import unittest

def add(a, b):
    return a + b

class TestAddition(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(1, 2), 3)
        self.assertEqual(add(-1, 1), 0)
        self.assertEqual(add(0, 0), 0)

if __name__ == '__main__':
    unittest.main()

 

7. 코드 리뷰: 다른 개발자들이 작성한 코드를 검토하거나, 자신의 코드를 검토받는 과정을 통해 오류를 찾아내고 개선할 수 있습니다. 코드 리뷰는 코드 품질을 높이는 데 도움이 됩니다.

8. 예외 처리: 앞서 언급한 예외 처리를 사용하여 코드의 오류를 적절하게 처리할 수 있습니다. 이를 통해 프로그램이 예외 상황에서도 안정적으로 실행되도록 할 수 있습니다.

이러한 다양한 디버깅 기술을 사용하여 코드에서 발생하는 오류를 찾아내고 수정할 수 있습니다. 디버깅 과정은 코드의 품질을 높이고, 예상치 못한 문제에 대처할 수 있는 능력을 향상시킵니다. 디버깅 능력을 키우려면 다양한 기술을 시도해보고 경험을 쌓는 것이 중요합니다.

728x90

'Python for Beginners' 카테고리의 다른 글

7.2 수학 함수  (0) 2023.03.23
7.1 시간과 날짜  (0) 2023.03.23
6.2 에러 종류와 대처법  (0) 2023.03.21
6.1 예외 처리  (0) 2023.03.21
5.5 디자인 패턴  (0) 2023.03.20
Comments