2강 / 20강

조건과 반복 — 컴퓨터에게 판단을 맡기는 법

배송비 규칙 하나가 주문 10만 건을 처리한다

조건과 반복 — 컴퓨터에게 판단을 맡기는 법
알고리즘을 만드는 재료는 딱 세 가지 — 순서대로, 조건에 따라, 반복해서.

세상의 모든 알고리즘은 단 세 가지 부품으로 만들어집니다. 정말입니다.

➡️
순차
위에서 아래로 차례대로
🔀
선택
조건에 따라 갈라짐 if
🔁
반복
같은 일을 여러 번 for

1강에서 본 주문 처리는 대부분 순차였습니다. 이번 강에서는 나머지 두 개, 선택과 반복을 배웁니다. 이 둘이 있어야 비로소 "사람 대신 판단하는" 프로그램이 됩니다.

조건 — 배송비 규칙

여러분의 쇼핑몰 배송비 정책이 이렇다고 합시다.

  • 3만 원 이상 주문 → 무료
  • 제주·도서산간 → 3,000원 추가
  • 그 외 → 3,000원

이 규칙을 사람이 주문마다 읽고 계산하면 하루 100건이 한계입니다. 컴퓨터에게 한 번만 알려 주면 100만 건도 처리합니다.

규칙 하나를 함수로 만들면 몇 번이든 다시 쓸 수 있습니다.
Python 브라우저에서 실행

🎮 배송비 규칙 실험실

아래에서 규칙을 켜고 끄고, 순서를 바꿔 볼 수 있습니다. 그때마다 가상 주문 200건이 즉시 다시 계산되어, 회사가 얼마를 벌고 얼마를 손해 보는지 보여 줍니다. 규칙 순서를 바꿨을 때 매출이 달라지는 것을 꼭 확인해 보세요.

배송비 규칙 실험실 — 규칙 순서를 바꾸면 매출이 달라집니다
불러오는 중…

반복 — 10만 건을 한 줄로

주문이 3건일 때는 손으로 셀 수 있습니다. 그런데 10만 건이라면?

for 한 줄이 사람 100명을 대신합니다.
Python 브라우저에서 실행

반복 안의 반복 — 조심해야 할 모양

"모든 주문에 대해, 모든 쿠폰이 적용되는지 검사해라." 말은 자연스럽지만 코드로 쓰면 반복 안에 반복이 됩니다.

이중 반복은 편리하지만 비쌉니다. 숫자를 눈으로 확인해 보세요.
Python 브라우저에서 실행
🤔 확인 문제
배송비 규칙에서 if 금액 >= 10000 을 if 금액 >= 30000 보다 먼저 검사하면 생기는 일은?
🤔 확인 문제
주문 1,000건 각각에 대해 쿠폰 100장을 검사하는 코드가 있습니다. 주문이 2,000건으로 늘면 검사 횟수는?
🤔 확인 문제
모든 알고리즘을 만드는 세 가지 기본 부품은?