무한 루프란 무엇인가?
모든 루프는 정해진 횟수만큼 실행되거나 특정 조건이 충족될 때까지 반복되도록 작성됩니다. 그러나 종료 조건이 절대 충족되지 않으면 루프는 끝없이 반복되는데, 이를 무한 루프(infinite loop)라고 부릅니다.
예를 들어 while True:처럼 조건이 항상 참인 경우, 프로그램은 사용자가 직접 개입하지 않는 한 영원히 실행을 멈추지 못합니다.
Ctrl+C로 무한 루프 강제 종료하기
무한 루프에 빠진 프로그램은 키보드 인터럽트(Keyboard Interrupt)를 발생시켜 강제로 중단해야 합니다. Windows, Linux, macOS 등 대부분의 환경에서 Ctrl + C 키를 동시에 누르면 실행 중인 루프가 즉시 중단되고 KeyboardInterrupt 예외가 발생합니다.
>>> while True:
print ('hello')
hello
hello
hello
hello
hello
hello
Traceback (most recent call last):
File "<pyshell#18>", line 2, in <module>
print ('hello')
KeyboardInterrupt
위 예제에서 while True: 문은 조건이 항상 참이므로 'hello'를 계속해서 출력합니다. 이때 사용자가 Ctrl+C를 누르는 순간 KeyboardInterrupt 예외가 발생하며 루프의 실행이 강제로 종료됩니다.
참고: KeyboardInterrupt를 활용한 우아한 종료
필요하다면 try-except 문으로 KeyboardInterrupt 예외를 처리하여, 강제 종료 시에도 정리 작업을 수행한 뒤 프로그램을 깔끔하게 마무리할 수 있습니다.