2강 / 20강
조건과 반복 — 컴퓨터에게 판단을 맡기는 법
배송비 규칙 하나가 주문 10만 건을 처리한다
세상의 모든 알고리즘은 단 세 가지 부품으로 만들어집니다. 정말입니다.
1강에서 본 주문 처리는 대부분 순차였습니다. 이번 강에서는 나머지 두 개, 선택과 반복을 배웁니다. 이 둘이 있어야 비로소 "사람 대신 판단하는" 프로그램이 됩니다.
조건 — 배송비 규칙
여러분의 쇼핑몰 배송비 정책이 이렇다고 합시다.
- 3만 원 이상 주문 → 무료
- 제주·도서산간 → 3,000원 추가
- 그 외 → 3,000원
이 규칙을 사람이 주문마다 읽고 계산하면 하루 100건이 한계입니다. 컴퓨터에게 한 번만 알려 주면 100만 건도 처리합니다.
규칙 하나를 함수로 만들면 몇 번이든 다시 쓸 수 있습니다.
Python
브라우저에서 실행
🎮 배송비 규칙 실험실
아래에서 규칙을 켜고 끄고, 순서를 바꿔 볼 수 있습니다. 그때마다 가상 주문 200건이 즉시 다시 계산되어, 회사가 얼마를 벌고 얼마를 손해 보는지 보여 줍니다. 규칙 순서를 바꿨을 때 매출이 달라지는 것을 꼭 확인해 보세요.
반복 — 10만 건을 한 줄로
주문이 3건일 때는 손으로 셀 수 있습니다. 그런데 10만 건이라면?
for 한 줄이 사람 100명을 대신합니다.
Python
브라우저에서 실행
반복 안의 반복 — 조심해야 할 모양
"모든 주문에 대해, 모든 쿠폰이 적용되는지 검사해라." 말은 자연스럽지만 코드로 쓰면 반복 안에 반복이 됩니다.
이중 반복은 편리하지만 비쌉니다. 숫자를 눈으로 확인해 보세요.
Python
브라우저에서 실행
🤔 확인 문제
배송비 규칙에서
if 금액 >= 10000 을 if 금액 >= 30000 보다 먼저 검사하면 생기는 일은?해설
if / elif 는 먼저 맞는 조건에서 멈춥니다. 넓은 조건을 앞에 두면 좁은 조건은 영영 실행되지 않아요. 좁은 조건부터가 원칙입니다.🤔 확인 문제
주문 1,000건 각각에 대해 쿠폰 100장을 검사하는 코드가 있습니다. 주문이 2,000건으로 늘면 검사 횟수는?
해설 쿠폰 수는 그대로이므로 주문에만 비례합니다. 2,000 × 100 = 200,000번. 만약 쿠폰도 2배가 되면 그때는 400,000번, 즉 4배가 됩니다.
🤔 확인 문제
모든 알고리즘을 만드는 세 가지 기본 부품은?
해설 순차(차례대로) · 선택(if) · 반복(for) — 이 셋만 있으면 세상의 어떤 알고리즘도 표현할 수 있습니다. 이것을 구조적 프로그래밍이라고 불러요.