Phase 1 · 파이썬 기초

반복문 — 반복 업무를 자동화하기

거래처가 1,000개라도 코드는 몇 줄이면 충분합니다.
for · while · range() · 리스트 활용법을 배우고, 누적 계산과 조건 판단을 결합해 본격적인 업무 자동화 프로그램을 만들어 봅니다.

예상 학습 시간 : 150분
난이도 : ★★★☆☆
사전 단계 : Step 03 조건문
다음 단계 : 리스트와 딕셔너리
01

학습 목표

수업이 끝나면 다음을 할 수 있어야 합니다.

1
반복문의 필요성을 이해한다
2
for 문의 구조를 이해한다
3
range()를 사용할 수 있다
4
리스트와 for를 함께 사용할 수 있다
5
while 문을 사용할 수 있다
6
breakcontinue를 사용할 수 있다
7
반복문과 조건문을 결합할 수 있다
8
여러 거래 데이터를 자동으로 처리할 수 있다
9
반복문을 이용한 간단한 업무 자동화 프로그램을 만들 수 있다
02

반복문이 왜 필요한가? & for 기본 구조

같은 내용을 5번 출력한다고 가정해 봅시다.

😰 직접 5번 쓰기
print("안녕하세요.")
print("안녕하세요.")
print("안녕하세요.")
print("안녕하세요.")
print("안녕하세요.")
✅ 반복문 사용
for i in range(5):
    print("안녕하세요.")

만약 거래처 1,000개를 처리해야 한다면 반복문 없이는 불가능합니다. 컴퓨터에게 반복 작업을 지시하는 것이 자동화의 시작입니다.

📌 for문 구조
for 변수 in 반복할_데이터:
    실행할_코드
03

range()의 이해

range()숫자의 범위를 만들어주는 기능입니다.

range(5)

0부터 5개의 숫자를 만듭니다.

0 1 2 3 4
range(1, 11)

1부터 11 '전'까지 (즉, 10까지) 만듭니다.

1 2 ... 9 10
주의: 끝 숫자는 포함되지 않습니다!

range(시작, 끝) 구조에서 끝 숫자는 생성되지 않습니다. range(1, 11)은 10까지만 나옵니다.

🐍 반복 변수 i의 변화
for i in range(5):
    print(i)
▶ 실행 결과
0
1
2
3
4

변수 i는 반복할 때마다 차례대로 값이 변합니다. (첫 번째: i=0, 두 번째: i=1 ...)

04

누적 계산 (합계 구하기)

반복문을 이용하면 1부터 100까지의 합을 쉽게 구할 수 있습니다. 이것을 **누적 계산**이라고 합니다.

🐍 1부터 100까지 더하기
total = 0   # 합계를 저장할 변수를 먼저 0으로 만듭니다.

for i in range(1, 101):
    total = total + i

print(total)
▶ 실행 결과
5050
시작: total = 0
1회 반복: total = 0 + 1 (total은 1)
2회 반복: total = 1 + 2 (total은 3)
3회 반복: total = 3 + 3 (total은 6)
... 100까지 누적
핵심 패턴

total = total + 값 이 패턴은 회계 데이터에서 거래금액 합계, 매출 합계, 비용 합계 등을 계산할 때 항상 사용됩니다.

05

반복문과 조건문 결합

3단계에서 배운 조건문(if)을 반복문 안에 넣습니다. "여러 데이터를 확인하며 조건에 맞는 것만 골라 처리"할 수 있습니다.

짝수만 출력하기
for i in range(1, 11):
    if i % 2 == 0:
        print(i)
2
4
6
8
10
홀수만 출력하기
for i in range(1, 11):
    if i % 2 != 0:
        print(i)
1
3
5
7
9

이 구조가 실제 데이터 자동화 알고리즘의 뼈대입니다.

06

리스트와 반복문

리스트(List)는 여러 데이터를 한 줄에 저장하는 방법입니다. (5단계에서 자세히 다룹니다)

리스트 안의 데이터를 반복문으로 하나씩 쉽게 꺼낼 수 있습니다. 이것이 엑셀의 여러 행을 처리하는 기본 원리입니다.

🐍 문자열 리스트 반복
customers = ["ABC상사", "DEF기업", "GHI상사"]

for customer in customers:
    print(customer)
▶ 실행 결과
ABC상사
DEF기업
GHI상사

거래금액 합계 구하기 (누적 계산)

🐍 리스트 안의 숫자 더하기
amounts = [1000000, 2500000, 5000000]

total = 0

for amount in amounts:
    total = total + amount

print(f"총 거래금액: {total:,}원")
▶ 실행 결과
총 거래금액: 8,500,000원

일정 금액 이상만 찾기 (조건 결합)

🐍 1천만원 이상 찾기
amounts = [1000000, 2500000, 15000000, 5000000, 30000000]

for amount in amounts:
    if amount >= 10000000:
        print(f"고액 거래: {amount:,}원")
▶ 실행 결과
고액 거래: 15,000,000원
고액 거래: 30,000,000원
07

거래처와 금액 함께 처리하기 (리스트 안의 리스트)

실무에서는 데이터가 보통 표 형태입니다. 거래처명과 금액을 같이 리스트로 묶어봅시다.

🐍 거래처 리스트 반복 및 접근
customers = [
    ["ABC상사", 1000000],
    ["DEF기업", 25000000],
    ["GHI상사", 5000000]
]

for customer in customers:
    name = customer[0]    # 리스트의 첫 번째 항목 (이름)
    amount = customer[1]  # 리스트의 두 번째 항목 (금액)
    
    print(f"{name}: {amount:,}원")
▶ 실행 결과
ABC상사: 1,000,000원
DEF기업: 25,000,000원
GHI상사: 5,000,000원

이것을 활용해 거래처별 검토 대상 판단을 할 수 있습니다.

🐍 거래처별 고액 거래 판정
for customer in customers:
    name = customer[0]
    amount = customer[1]

    if amount >= 10000000:
        print(f"{name} → 고액 거래")
    else:
        print(f"{name} → 일반 거래")
▶ 실행 결과
ABC상사 → 일반 거래
DEF기업 → 고액 거래
GHI상사 → 일반 거래

이제 수천 개의 거래처 리스트가 있어도 코드는 바뀌지 않습니다! 자동으로 모두 판단해냅니다.

08

while 반복문

for는 반복할 횟수나 데이터가 정해져 있을 때 주로 사용합니다.
while조건이 참인 동안 계속 반복할 때 사용합니다.

📌 while 구조
while 조건:
    실행할 코드
🐍 1부터 5까지 출력
count = 1

while count <= 5:
    print(count)
    count = count + 1    # 조건이 끝날 수 있도록 변수를 변경해줘야 함
▶ 실행 결과
1
2
3
4
5
시작: count = 1
조건 검사: 1 <= 5 (True) → 출력: 1 → count 2 됨
조건 검사: 2 <= 5 (True) → 출력: 2 → count 3 됨
... 5까지 반복 ...
조건 검사: 6 <= 5 (False) → 반복 종료!
09

무한 반복 주의와 break / continue

무한 루프 주의
count = 1
while count <= 5:
    print(count)
    # count 값이 영원히 1이므로 무한 반복됨! 컴퓨터가 멈출 수 있습니다.

break (반복 종료) 와 continue (건너뛰기)

break — 그만! 멈춰!
for i in range(1, 11):
    if i == 5:
        break
    print(i)
1
2
3
4

5가 되는 순간 반복을 아예 끝냅니다.

continue — 이번 것만 패스!
for i in range(1, 6):
    if i == 3:
        continue
    print(i)
1
2
4
5

3만 출력하지 않고 다음으로 넘어갔습니다.

while과 break를 이용한 사용자 입력 무한 반복

사용자가 "끝"이라고 할 때까지 계속 입력을 받는 구조입니다.

🐍 거래처 연속 처리 예제
while True:
    customer = input("거래처명(종료하려면 '끝'): ")

    if customer == "끝":
        break

    amount = int(input("거래금액: "))
    if amount >= 10000000:
        print("고액 거래")
    else:
        print("일반 거래")

이 코드를 실행하면 사용자가 '끝'을 입력할 때까지 계속해서 거래처와 금액을 확인하고 검토해 줍니다!

10

실습 — 데이터 분석 기본기 다지기

📊
실습 1
거래금액 합계와 평균 구하기

len()은 리스트 안의 데이터 개수를 알려줍니다.

🐍 Python
amounts = [1000000, 2500000, 5000000, 8000000, 12000000]

total = 0
for amount in amounts:
    total = total + amount

average = total / len(amounts)

print(f"총 거래금액: {total:,}원")
print(f"평균 거래금액: {average:,.0f}원")
🔢
실습 2
조건에 맞는 데이터 개수 세기 (건수 세기)

1천만원 이상인 거래의 건수만 세어봅니다.

🐍 Python
amounts = [1000000, 25000000, 5000000, 80000000, 12000000]

count = 0  # 건수를 저장할 변수

for amount in amounts:
    if amount >= 10000000:
        count = count + 1   # 조건에 맞을 때마다 1씩 증가시킴

print(f"고액 거래 건수: {count}건")
▶ 결과
고액 거래 건수: 3건
🎓 데이터 처리의 핵심 패턴

위 2개의 실습에서 배운 누적합계(total = total + 값)누적건수(count = count + 1)는 회계/통계 데이터 처리의 가장 핵심적인 패턴입니다. 무조건 몸에 익혀야 합니다.

11

4단계 최종 프로젝트 — 거래처 자동 분석기

지금까지 배운 모든 것(데이터 묶음, 반복 추출, 조건 판단, 누적 계산, 건수 계산)을 합쳐서 실전 자동화 스크립트를 만듭니다.

🚀
종합 프로젝트
거래처 분석 및 검토 리포트
목표: 5개의 거래처 데이터를 분석해 1) 각 거래처별 판단 결과 출력, 2) 총 합계, 3) 평균 금액, 4) 고액 거래(1천만 이상) 건수를 자동으로 산출하는 리포트를 작성합니다.
🐍 Python 완성 코드
customers = [
    ["ABC상사", 5000000],
    ["DEF기업", 15000000],
    ["GHI상사", 80000000],
    ["JKL기업", 3000000],
    ["MNO상사", 25000000]
]

total = 0
high_count = 0

print("===== 거래처 분석 =====")

for customer in customers:
    name   = customer[0]
    amount = customer[1]

    total = total + amount  # 누적 합계

    if amount >= 10000000:
        high_count = high_count + 1  # 누적 건수
        print(f"고액 거래 → {name}: {amount:,}원")

average = total / len(customers)

print()
print(f"전체 거래금액: {total:,}원")
print(f"평균 거래금액: {average:,.0f}원")
print(f"고액 거래 건수: {high_count}건")

이 코드가 완성되면, 학생들은 데이터 5개가 아니라 50,000개가 들어와도 1초 만에 분석 리포트를 찍어내는 업무 자동화의 위력을 경험하게 됩니다.

12

반드시 외워야 할 핵심 패턴 5가지

앞으로 데이터 분석과 자동화에서 평생 쓰게 될 5가지 패턴입니다.

패턴 1. 단순 반복
for i in range(10):
    print(i)
패턴 2. 데이터 순회
for item in items:
    print(item)
패턴 3. 반복 + 조건 필터링
for item in items:
    if 조건:
        처리
패턴 4. 누적 계산 (합계)
total = 0
for item in items:
    total = total + item
패턴 5. 조건 만족 건수 세기
count = 0
for item in items:
    if 조건:
        count = count + 1
13

초보자 흔한 실수

실수 1 — range() 끝값 포함의 오해

1부터 10까지 출력하고 싶을 때 발생하는 실수입니다.

for i in range(1, 10):  # 9까지만 나옴!
for i in range(1, 11):  # 정답!
실수 2 — 반복문 내 들여쓰기
for i in range(5):
print(i) # IndentationError
for i in range(5):
    print(i) # 정상 작동
실수 3 — 무한 루프 생성
count = 1
while count <= 5:
    print(count)  # 끝이 안 남
count = 1
while count <= 5:
    print(count)
    count = count + 1  # 변수 변경 필수
14

4단계 과제

과제 1 & 2 — 숫자 연산

1. 1부터 100까지 합계 구하기

for문을 사용하여 1+2+3...+100 의 결과를 구하세요.

2. 짝수 합계 구하기

1부터 100까지 중 짝수만 골라서 더하세요. (if i % 2 == 0: 활용)

과제 3 — 거래금액 배열 분석

다음 데이터를 이용해 5가지 통계를 계산하세요.

amounts = [5000000, 12000000, 3500000, 25000000, 70000000, 8000000, 15000000]
  • 총 거래금액
  • 평균 거래금액
  • 전체 거래 건수 (len())
  • 1천만원 이상 거래 건수
  • 1천만원 이상 거래금액 합계
과제 4 — 거래처 분류 리포트

강의에 나온 customers 이중 리스트를 사용하여 거래처 분석 프로그램(최종 프로젝트와 유사한 형태)을 스스로 처음부터 끝까지 코딩해 보세요.

15

1~4단계의 발전 과정과 다음 단계

지금까지 배운 내용의 흐름을 되짚어보면 우리가 어떻게 자동화로 나아가고 있는지 명확히 알 수 있습니다.

1단계
print()
단순 화면 출력
2단계
변수 + 자료형 + input()
데이터 입력 및 저장, 계산
3단계
if / elif / else
조건 판단 및 업무 규칙 적용
4단계
for / while
여러 데이터 대량 처리, 누적 통계
다음 단계 예고 — Step 05: 리스트와 딕셔너리

지금까지는 ["ABC상사", 5000000] 처럼 단순히 순서대로 저장했습니다.
5단계에서는 {"이름": "ABC상사", "금액": 5000000, "구분": "일반"} 처럼 데이터를 체계적(구조적)으로 저장하고 꺼내는 법을 배웁니다. 이것이 나중에 엑셀 파일을 읽어올 때 쓰는 가장 핵심적인 형태입니다.

1단계 — print() · 실행 순서 · 주석 ✓ 완료
2단계 — 변수 · 자료형 · input() · f-string ✓ 완료
3단계 — 조건문 if · elif · else · 논리연산자 ✓ 완료
4단계 — 반복문 — for · while · 누적 계산 현재 단계
5단계 — 리스트 · 딕셔너리
6단계 — 함수
7단계 ★ — 파일 처리 — 회계 실무 전환
10단계 ★ — 엑셀 자동화
Step 03 : 조건문 Step 05 : 리스트와 딕셔너리