3.2 제어 흐름 (Control Flow)

학습목표
파이썬의 가장 강력한 제어문을 학습하는 단원입니다. 우리가 작성한 코드가 위에서 아래로만 무식하게 흐르는 것을 막고, 상황에 따라 다른 길로 빠지게 하거나(조건문), 똑같은 작업을 수백 번 알아서 반복하도록(반복문) 트래픽을 통제하는 교통순경의 역할을 배웁니다. 아울러 예기치 못한 사고(오류)를 우아하게 넘기는 예외 처리 기술까지 마스터하여 프로그램의 논리적 실행 흐름을 완벽히 조작해 봅시다.
세부 학습 목차
3.2.1 조건문 기초: 흐름도와 if/else
프로그램이 갈림길을 선택하게 만드는 컴퓨터 과학의 분기(Branching) 이론과 순서도(Flowchart) 기호를 배웁니다. 아울러 파이썬의 핵심 분기문인 if와 else의 기본 구조, 그리고 자바 개발자가 헷갈리기 쉬운 파이썬만의 ‘들여쓰기(Indentation)’ 블록 규칙을 확실히 다집니다.
3.2.2 조건문 심화: 다중 조건과 중첩 if
단순한 양자택일을 넘어 3가지 이상의 길로 쪼개지는 elif 다중 조건문, 여러 조건을 엮어내는 논리 연산자, 명시적 논리식 없이도 참/거짓을 판별하는 파이썬 고유의 Truthy/Falsy 검사법, 그리고 조건문 안에 조건문이 포개어지는 중첩(Nested) if문을 깊이 있게 다룹니다.
3.2.4 반복문 for (데이터 순회)
컨베이어 벨트에 올라온 수만 개의 컬렉션(리스트 등) 데이터를 하나씩 차례로 꺼내 처리하는 파이썬 특유의 for 문법 순회(Iteration) 원리를 이해하고, zip()과 f-string을 묶어 우아하게 매핑하는 기법을 학습합니다.
3.2.5 반복문 while (조건 반복과 제어)
특정 조건이 참인 한 영원히 끝없이 도는 while 문의 패러다임과 부작용(무한 루프)을 이해합니다. 무한의 사슬을 끊어버리는 강력한 break 명령어를 배우고 텍스트 RPG 전투 예제로 실습합니다.
3.2.6 이중 반복문과 별 찍기
단일 차원의 제어를 넘어 서로 맞물려 돌아가는 이중 반복문(Nested Loops) 톱니바퀴 메커니즘을 배웁니다. 중첩 반복문의 영원한 수련법인 12가지 별 찍기 예제를 돌려보며 2차원 공간 지각력을 극대화합니다.
3.2.7 예외 처리
통제할 수 없는 외부 요인(네트워크 끊김, 없는 파일 읽기 등)으로 인해 프로그램이 허무하게 뻗어버리는(Crash) 것을 막기 위해, 에러를 부드럽게 감싸 안는 try ~ except 방어벽 구축 기법을 배웁니다.
🎉 정리
지금까지 우리는 코드의 실행 맥락을 입맛대로 제어하는 ‘제어 흐름(Control Flow)’을 완벽하게 마스터했습니다. 이제는 for 반복문 안에 if 조건문을 중첩하여 넣으면서 복잡한 데이터 분류 작업도 너끈히 자동화할 수 있는 강력한 코딩 논리력을 갖게 되었습니다. 이 논리력을 바탕으로, 다음 장에서는 컨베이어 벨트 위에 올라갈 진짜 부품들인 ‘자료 구조(Data Structures)’의 세계로 진입해 보겠습니다.