비전공자 파이썬 while문 배우는 법, for문과 뭐가 다른가요
비전공자 파이썬 while문 배우는 법을 궁금해하시는 분들은 대부분 for문은 어느 정도 써봤지만 while문은 언제 써야 할지 감이 안 잡히는 경우입니다. 결론부터 말씀드리면 for문은 “반복 횟수나 대상 목록을 미리 알 때”, while문은 “조건이 만족되는 동안 계속 반복하되 몇 번 반복할지는 모를 때” 사용합니다. 엑셀로 치면 for문은 “이 표의 행 개수만큼 반복”, while문은 “이 값이 0이 될 때까지 반복”에 가깝습니다.
비전공 사무직을 위한 코딩 입문 로드맵에서 반복 자동화의 출발점을 다뤘고, 비전공자 파이썬 반복문(for문) 배우는 법에서 정해진 범위를 반복하는 법을 안내했다면, while문은 그 다음 단계로 “언제 멈출지 모르는 반복”을 다루는 도구입니다.
for문과 while문, 실무에서는 언제 나눠 써야 하나요
엑셀 파일 100개를 순서대로 처리한다면 for문이 맞습니다. 개수가 정해져 있기 때문입니다. 반면 사용자가 올바른 값을 입력할 때까지 계속 물어보거나, API 응답이 정상적으로 올 때까지 재시도하는 경우처럼 “언제 끝날지 실행해봐야 아는 상황”에는 while문이 필요합니다.
# for문: 반복 횟수가 명확할 때
files = ["1월매출.xlsx", "2월매출.xlsx", "3월매출.xlsx"]
for f in files:
print(f, "처리 중")
# while문: 조건이 만족될 때까지 반복
count = 0
while count < 3:
print(count, "번째 시도")
count += 1
두 코드 모두 3번 반복하지만, for문은 목록의 길이가 반복 횟수를 결정하고 while문은 조건식(count < 3)이 참인 동안만 반복합니다. 조건식이 거짓이 되는 순간 반복이 멈춘다는 점이 while문의 핵심입니다.
while문 기본 문법과 무한루프 주의사항
while문은 while 조건식: 형태로 시작하고, 들여쓰기된 코드 블록을 조건이 참인 동안 반복 실행합니다. 가장 흔한 실수는 조건식이 절대 거짓이 되지 않아 프로그램이 멈추지 않는 무한루프입니다.
# 위험한 예시 - count가 절대 증가하지 않음
count = 0
while count < 5:
print("무한 반복됩니다")
# count += 1 을 빠뜨리면 영원히 멈추지 않습니다
이런 코드를 실행하면 프로그램이 멈추지 않고 계속 출력만 반복합니다. while문을 쓸 때는 반드시 반복 안에서 조건식에 영향을 주는 변수(위 예시의 count)를 변화시키는 코드가 있는지 확인해야 합니다. 만약 실행 중 무한루프에 걸렸다면 당황하지 말고 Ctrl+C(터미널) 또는 정지 버튼(주피터, IDE)으로 강제 종료하면 됩니다. 비전공자를 위한 에러 메시지 읽는 법에서 다룬 것처럼, 프로그램이 이상하게 동작해도 무섭게 볼 필요는 없습니다.
실무 예시로 보는 while문 활용법
가장 실무적인 while문 활용은 “정상적인 값이 들어올 때까지 반복해서 요청하기”입니다. 예를 들어 사용자에게 올바른 형식의 사번을 입력받아야 하는 스크립트를 만든다면 다음과 같이 작성할 수 있습니다.
사번 = input("사번을 입력하세요 (5자리 숫자): ")
while len(사번) != 5 or not 사번.isdigit():
print("형식이 올바르지 않습니다. 다시 입력해주세요.")
사번 = input("사번을 입력하세요 (5자리 숫자): ")
print("정상 입력되었습니다:", 사번)
이 코드는 사번이 5자리 숫자가 아니면 계속 다시 입력을 요구하고, 조건을 만족하는 순간 반복을 멈춥니다. 반복 횟수를 미리 알 수 없는 상황이기 때문에 for문보다 while문이 자연스럽습니다.
또 다른 예시는 API 재시도 로직입니다. 서버 상태가 불안정해서 응답이 바로 오지 않을 때, 성공할 때까지 일정 횟수만 재시도하도록 만들 수 있습니다.
import time
시도횟수 = 0
최대시도 = 5
성공 = False
while 시도횟수 < 최대시도 and not 성공:
시도횟수 += 1
print(f"{시도횟수}번째 시도 중...")
# 실제로는 여기서 API 요청 코드가 들어갑니다
성공 = (시도횟수 == 3) # 예시로 3번째에 성공한다고 가정
if not 성공:
time.sleep(1)
if 성공:
print("요청 성공")
else:
print("최대 시도 횟수를 초과했습니다")
이렇게 while문에 두 가지 조건(최대 시도 횟수, 성공 여부)을 동시에 걸어두면 무한루프도 막고 목적도 달성하는 안전한 반복문을 만들 수 있습니다. 비전공자를 위한 API 입문을 먼저 보신 분이라면 이 패턴이 실제 업무 자동화 스크립트에서 얼마나 자주 쓰이는지 이해하기 쉬울 것입니다.

break와 continue, while문을 더 유연하게 만드는 키워드
while문 안에서 특정 조건에 즉시 반복을 멈추고 싶다면 break, 이번 반복만 건너뛰고 다음으로 넘어가고 싶다면 continue를 사용합니다.
count = 0
while True: # 조건을 항상 참으로 두고
count += 1
if count == 3:
continue # 3일 때는 출력 건너뛰기
if count > 5:
break # 5를 넘으면 반복 종료
print(count)
while True:처럼 조건을 아예 항상 참으로 두고, 내부에서 break로 탈출 시점을 직접 제어하는 방식도 실무에서 자주 씁니다. 이 경우 반드시 break 조건이 언젠가는 만족되도록 설계해야 무한루프를 피할 수 있습니다.
정리: while문은 언제 배워야 할까요
for문으로 정해진 범위를 반복하는 것에 익숙해졌다면, 다음 단계로 “조건이 언제 끝날지 모르는 반복” 상황을 다루기 위해 while문을 배우면 됩니다. 사용자 입력 검증, API 재시도, 특정 조건을 만족할 때까지 파일을 감시하는 스크립트 등이 대표적인 활용 사례입니다. 무한루프만 주의하면 for문보다 오히려 실무 자동화에서 더 유연하게 쓰이는 경우가 많습니다.
파이썬 반복문의 기본기를 익힌 다음에는 실제 업무 데이터를 다루는 pandas 데이터프레임 같은 라이브러리로 넘어가는 것이 자연스러운 학습 순서입니다. 픽셀앤코드는 비전공 실무자가 반복 업무를 자동화하는 관점에서 파이썬을 익힐 수 있도록 실무 예제 중심의 IT 교육을 제공하고 있으며, 자동화 스크립트 도입이 막막하신 경우 처음 설계 단계부터 함께 검토해 드리고 있습니다.