Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 무한 루프를 안전하게 중지하는 방법 총정리

Python 무한 루프란?

무한 루프(infinite loop)는 프로그램이 스스로 종료되지 못하고 끝없이 반복 실행되는 상태를 말합니다. 루프의 조건식이 항상 참(True)으로 유지되어 탈출 조건이 결코 충족되지 않을 때 발생하며, 이 경우 외부의 개입 없이는 루프가 멈추지 않습니다.

무한 루프가 발생하는 원인

대표적인 원인은 다음과 같습니다.

  • 종료 조건이 절대 거짓이 되지 않는 경우: while 루프의 조건이 항상 True로 평가될 때
  • 루프 내부에서 변수가 갱신되지 않는 경우: 반복문 안에서 카운터 변수를 증가시키거나 조건을 변경하는 코드가 누락된 경우
  • 의도치 않은 논리 오류: 조건식 작성 실수로 인해 탈출 조건이 영원히 충족되지 않는 경우

Ctrl+C로 강제 종료하기

실행 중인 프로그램이 무한 루프에 빠졌다면, 키보드에서 Ctrl + C를 눌러 키보드 인터럽트(KeyboardInterrupt)를 발생시켜 강제로 중단할 수 있습니다. Python 인터프리터는 이 신호를 감지하면 실행 중인 루프를 즉시 멈추고 다음과 같은 예외 메시지를 출력합니다.

Traceback (most recent call last):
  ...
KeyboardInterrupt

무한 루프를 예방하는 코딩 습관

  • while 루프를 작성할 때 종료 조건이 언젠가 거짓(False)이 되도록 설계합니다.
  • 반복문 내부에서 조건 변수를 올바르게 갱신하고 있는지 확인합니다.
  • 필요하다면 break 문을 활용해 특정 조건에서 루프를 명시적으로 탈출합니다.
  • 복잡한 로직에는 print 문이나 로깅을 추가해 루프의 진행 상황을 추적합니다.

무한 루프는 서버나 게임 루프처럼 지속적인 동작이 필요한 프로그램에서 의도적으로 활용되기도 하지만, 잘못 설계되면 시스템 자원을 고갈시키고 프로그램 전체를 멈추게 할 수 있습니다. 따라서 루프를 작성할 때는 종료 조건을 항상 신중하게 설계하는 것이 중요합니다.