728x90

이번 포스팅에서는 디버깅에 자주 사용되는 가정 설정문(assert)에 대해 작성해보려고 합니다. 

 

assert는 왜 사용하는가?


가정 설정문(assert)은 파이썬에서 디버깅을 목적으로 사용되는 구문입니다. 이는 프로그램이 특정한 조건을 만족하는지 확인하며, 그렇지 않을 경우 프로그램을 중단시키며 오류 메시지를 출력합니다. 이때 오류 메시지는 직접 설정할 수 있습니다. 

주로 코드가 잘 작동하는지 검증하거나, 개발 과정에서 오류를 발견하기 위해 사용됩니다.

 

assert문 기본적인 형식


assert 조건, 오류 메세지
  • 조건 : 검사하고자 하는 조건, 조건이 True인 경우, 아무 일도 일어나지 않고 코드는 진행됩니다.
  • 오류 메세지 : 조건이 False인 경우, 표시될 메시지입니다. 이 메시지는 작성할 수 있으며, 제공하지 않을 수도 있습니다. 다시 말해서 필수로 작성해야 하는 것은 아닙니다.

 

사용 예제


오류 발생

x = 8

assert x == 10, "X가 10이면 오류 발생"

print(x)

# AssertionError: X가 10이면 오류 발생

이 예시에서 x는 8입니다. 따라서 assert 조건이 False이며, 프로그램은 종료되며 지정된 메세지를 출력하는 것을 볼 수 있습니다.

 

기본적인 사용

x = 8

assert x == 8, "X가 10이면 오류 발생"

print(x)

# 8

이 예시에서 x는 8입니다. 따라서 assert의 조건이 True이며, 프로그램은 종료되지 않고 계속 실행됩니다. 코드가 계속 실행되어 8을 출력하는 것을 확인할 수 있습니다.

 

함수 내부에서 사용 

def divide(x, y):
    assert y != 0, "0으로 나눌 수 없습니다."
    print(x / y)

divide(10, 2)  # 정상 작동, 5 출력
divide(10, 0)  # AssertionError 발생: 0으로 나눌 수 없습니다.

다음과 같이 함수 내부에서 특정한 값이 왔을 때 디버깅을 진행하는 코드를 작성했습니다. y에 0이 오는 경우 AssertionError를 발생시키는 것을 볼 수 있습니다. 

 

결론


assert 문은 코드에 대해 특정한 값이 왔는지를 확인하는데 유용한 코드입니다. 특히 개발에서 디버깅 과정에서 오류를 확인하는데 유용한 코드이므로 자주 사용할 것을 권합니다. 하지만 상황에 따라서 if문과 예외 처리를 사용해 프로그램을 멈추는 것이 아니라 다른 방식으로 프로그램이 돌아갈 수 있도록 바꾸는 것도 방법입니다. 왜냐하면 프로그램을 종료시키기 때문에 계속 사용해야 하는 경우가 있을 수 있으므로 개발 과정에서만 사용하시는 것을 추천드립니다.

728x90