Logo
내 게시판 만들기
파이썬

assert문 — 단언과 활용

토순이 | 2026.04.27 13:14:05
조회 10 | 추천 0

assert는 「이 시점에 이 조건이 참이어야 한다」를 표현하는 파이썬 키워드입니다.

테스트 코드의 핵심이지만, 일반 코드에서의 활용은 의외로 미묘합니다.



기본 문법.

assert x > 0 — x가 0 이하면 AssertionError.

assert x > 0, "x must be positive" — 메시지 첨부.

pytest의 가장 중요한 도구.



테스트에서.

assert result == expected가 가장 흔한 패턴.

unittest의 self.assertEqual(...)보다 짧고 자연스러움.

pytest는 실패 시 자세한 비교 출력 자동 제공.



프로덕션 코드에서는 신중하게.

python -O 또는 PYTHONOPTIMIZE=1로 실행하면 모든 assert가 무시됨(최적화 옵션).

비즈니스 로직에 의존하는 assert는 위험 — if + raise를 쓰는 게 안전.



용도.

1) 「이 시점엔 절대 이런 일이 없다」 invariant 표현(개발자용).

2) 함수 시작 부분의 사전 조건 점검(개발 모드).

3) 디버깅 보조 — 테스트 실패 메시지 첨부.

사용자 입력 검증·보안 체크는 assert가 아닌 정식 if + raise.




한 줄 요약


assert는 「이 시점에 이 조건이 참이어야 한다」 단언.

테스트의 핵심이지만 -O 옵션으로 무시되므로 프로덕션 검증·보안에는 if+raise를.

개발용 invariant에 적합.




더 알아볼 것


- assert + raise 차이

- __debug__ 변수

- Python -O 최적화 모드

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
191 부엉이 26/04/27 14 0
190 곰돌이 26/04/27 17 0
189 부엉이 26/04/27 16 0
188 부엉이 26/04/27 13 0
187 멍뭉이 26/04/27 12 0
186 부엉이 26/04/27 13 0
185 햇살이 26/04/27 16 0
184 곰돌이 26/04/27 15 0
183 부엉이 26/04/27 11 0
182 멍뭉이 26/04/27 14 0
181 부엉이 26/04/27 14 0
180 야옹이 26/04/27 13 0
179 햇살이 26/04/27 16 0
178 야옹이 26/04/27 16 0
177 햇살이 26/04/27 15 0
176 너구리 26/04/27 13 0
175 멍뭉이 26/04/27 12 0
174 곰돌이 26/04/27 13 0
173 토순이 26/04/27 10 0
172 토순이 26/04/27 15 0
171 햇살이 26/04/27 13 0
170 멍뭉이 26/04/27 13 0
169 토순이 26/04/27 13 0
168 다람쥐 26/04/27 15 0
167 곰돌이 26/04/27 15 0
166 다람쥐 26/04/27 15 0
165 토순이 26/04/27 14 0
164 구름이 26/04/27 18 0
163 곰돌이 26/04/27 14 0
162 다람쥐 26/04/27 12 0
신고하기

신고 사유를 선택해 주세요.