21. 순차 실행만 있는 세계 — 무엇이 불가능한가
3- 프로그램이 위에서 아래로 한 줄씩만 실행된다고 상상하자
4- 조건 분기(if)가 없으면: 로그인 검증 불가 — 비밀번호가 맞든 틀리든 같은 결과
5- 반복(for/while)이 없으면: 데이터 1만 건을 처리하려면 같은 코드를 1만 번 복붙해야 함
6- 즉, 순차 실행만으로는 판단도 반복도 할 수 없다
72. Why — 제어 흐름이 존재하는 이유
8- 현실의 문제는 본질적으로 조건부다 (Knuth, 1968)
9 - 검색: 값이 같으면 반환, 아니면 다음으로 → if 필수
10 - 정렬: 두 값을 비교해 교환 여부를 결정 → if 필수
11 - 반복: 모든 원소를 순회 → for/while 필수
12- Böhm & Jacopini (1966)는 모든 알고리즘이 순차·분기·반복 세 가지만으로 표현 가능함을 증명했다
13- 이 세 가지가 프로그래밍의 최소 완전 집합이라는 뜻
143. 핵심 한 문장
15- 제어 흐름은 '프로그램에 의지를 부여하는 것'이다
16- 순차 실행 = 레일 위의 기차 (정해진 길만 감)
17- 제어 흐름 추가 = 기차에 운전사가 탄 것 (갈림길에서 판단하고, 필요하면 되돌아감)
184. 구체적 예시 — 순차 vs 제어 흐름
19- 예시 1: 로그인 검증
20 - 순차만: 비밀번호 입력 → 무조건 "환영합니다" 출력 (보안 없음)
21 - if 추가: 비밀번호 입력 → 일치하면 환영, 아니면 거부
22- 예시 2: 평균 계산
23 - 순차만: x_1 + x_2 + x_3 을 하드코딩 (데이터 개수가 바뀌면 코드 수정 필요)
24 - for 추가: 어떤 길이의 리스트든 \sum_{i=1}^{n} x_i / n 자동 계산
25- 예시 3: 리스트에서 최댓값 찾기
26 - 순차만: 불가능 — 모든 쌍을 비교하는 코드를 미리 알 수 없음
27 - for + if: 순회하며 현재 최댓값과 비교, 더 크면 갱신
285. 실제 AI 파이프라인에서의 제어 흐름
29- 데이터 전처리는 if/for의 집합체다
30 - for: 수만 장의 이미지를 한 장씩 순회
31 - if: 이미지 크기가 기준 미달이면 제거 (필터링)
32 - if: 결측값(NaN)이면 평균으로 대체 (imputation)
33 - for + if: 텍스트 토큰을 순회하며 불용어(stopword)면 건너뛰기
34- 머신러닝 학습 루프 자체가 제어 흐름이다 (Goodfellow et al., 2016)
35 - for epoch in range(100): 전체 데이터 반복
36 - if val_loss < best: 모델 저장 (early stopping 판단)
376. 세 가지 제어 흐름 구조 요약
38- 순차(Sequence): 위에서 아래로 — 기본값
39- 분기(Selection): if / elif / else — 조건에 따라 경로 선택
40- 반복(Iteration): for / while — 같은 작업을 반복 수행
41- 이 세 구조만 있으면 튜링 완전(Turing-complete)한 프로그램을 작성할 수 있다 (Böhm & Jacopini, 1966)