코딩을 처음 배우면서 가장 흥미롭게 다가오는 개념 중 하나가 바로 '조건문'이다. 지금까지는 위에서 아래로만 똑같이 순서대로 실행되는 정적인 코드를 다뤘지만, 현실의 프로그램은 항상 같은 행동만 하지 않는다. 현실에서 "비가 오면 우산을 챙기고, 아니면 그냥 나간다"라고 판단하듯, 일상의 '만약(~라면)'이라는 분기 구조를 코드로 옮긴 것이 바로 파이썬의 조건문이다. 오늘은 프로그램이 상황에 따라 어떻게 다른 선택을 하는지, 내가 학습한 파이썬 조건문(if, elif, else)의 핵심과 주의점들을 정리해 본다.
--------------------------------------------------------------------------------
1. 조건문이란 무엇인가? (프로그램 안의 갈림길)
조건문은 특정 조건이 맞는지(참/거짓)를 확인하고 그 판단 결과에 따라 프로그램의 실행 흐름을 나누는 분기 구조다. 값을 계산하고 출력하는 것을 넘어, 로그인 성공 여부, 점수에 따른 등급 분류 등 상황에 맞게 다르게 반응하는 똑똑한 프로그램을 만들기 위한 필수적이고 중심적인 도구다.
--------------------------------------------------------------------------------
2. if, elif, else의 역할 차이 완벽 이해
파이썬 조건문에서 가장 기본이 되면서도 초보자가 헷갈리기 쉬운 세 가지 구조의 역할을 명확히 구분해 보았다.
- if (기본 조건 분기): "만약 이 조건이 참이라면"이라는 뜻으로, 맨 처음 조건을 검사할 때 사용한다. 조건식의 결과가 참(True)일 때만 특정 블록의 코드가 실행되고, 거짓(False)이면 건너뛰고 다음으로 넘어간다.
- elif (추가 조건 검사): 한 가지 조건만으로는 여러 상황을 나누기 어려울 때 사용한다. 앞선 if 조건이 거짓일 때 다음 조건을 순서대로 검사하게 해주는 도구다. if문 다음에 개수 제한 없이 여러 번 사용할 수 있으며, 여러 갈래 중 하나를 선택하는 흐름을 만든다.
- else (나머지 기본 처리): 앞서 제시한 if나 elif의 어떤 조건에도 맞지 않을 때 최종적으로 실행되는 '그 밖의 경우'를 처리하는 영역이다. 특정 조건식을 적지 않으며 생략도 가능하지만, 빠뜨리는 예외 상황을 줄이고 흐름을 완성도 있게 구성하는 데 유용하다.
--------------------------------------------------------------------------------
3. 조건을 판단하는 비교 연산자와 논리 연산자
조건식 자리에는 반드시 참(True) 또는 거짓(False)으로 평가될 수 있는 표현이 들어가야 한다.
- 비교 연산자 : <, >, == (같다), != (다르다), >=, <= 등을 사용하여 두 값을 비교한다.
- 논리 연산자 : 조건이 여러 개일 때 이를 묶어주는 역할을 한다. and (모두 참일 때 참), or (하나라도 참이면 참), not (조건을 반전시켜 거짓이면 참으로 만듦)이 있으며, 여러 개가 혼합될 경우 우선순위는 not > and > or 순서로 처리된다.
- 파이썬만의 직관적인 연산자인 in과 not in도 있다. 리스트, 튜플, 문자열 내에 특정 값이 포함되어 있는지를 직관적인 영어 문장처럼 판별할 수 있어 매우 유용하다.
--------------------------------------------------------------------------------
4. 파이썬 문법의 핵심: 콜론(:)과 들여쓰기(Indentation)
다른 프로그래밍 언어들은 중괄호 {}나 세미콜론 ;으로 코드 블록의 시작과 끝을 표시하지만, 파이썬은 들여쓰기로 이를 구분한다. if 조건문: 과 같이 조건문 끝에는 반드시 콜론을 붙여주어야 하며, 그 아래에 실행될 종속 문장들은 일정한 간격(보통 공백 4칸 혹은 탭)으로 안쪽으로 밀어내어 들여쓰기를 해야 한다. 같은 블록 내의 실행문들은 들여쓰기 깊이가 동일해야 하며, 이것이 지켜지지 않으면 여지없이 문법 오류(Syntax Error)가 발생한다.
--------------------------------------------------------------------------------
5. 학습하며 깨달은 실수 포인트와 리팩토링 팁
- 다중 if와 if-elif-else의 차이 : 여러 개의 if를 나열하면 각각 독립적으로 모든 조건을 처음부터 끝까지 다 검사한다. 반면 if-elif-else는 위에서부터 차례로 검사하다가 하나라도 조건이 참이면 하위 블록을 실행하고, 나머지 조건은 스킵(무시)한다. 따라서 순서 배치가 잘못되어 넓은 조건이 좁은 조건을 가려버리는 논리적 오류를 범하지 않도록 주의해야 한다.
- Early Return 기법 (조건문 리팩토링) : 조건문 안에 또 조건문이 들어가는 중첩 if문이 깊어지면 코드의 가독성이 크게 떨어진다. 이때 함수 내에서라면 'Early Return' 기법을 활용해, 예외 처리나 짧은 절차를 먼저 if로 판별하고 return으로 일찍 함수를 중단시켜버리면 복잡한 else 중첩을 없애고 코드를 훨씬 명시적으로 정리할 수 있다.
--------------------------------------------------------------------------------
마무리
오늘 학습한 조건문은 단순한 문법 암기가 아니라, 정적인 코드를 상황 반응형 코드로 바꾸고 프로그램에 '판단 능력'을 부여하는 중심 도구다. 프로그램이 조건에 따라 다른 길(분기)을 걷는 구조를 이해했으니, 다음번에는 이 갈림길 구조를 여러 번 반복해서 돌게 만드는 '반복문(for, while)'의 원리를 연결해서 학습해 보아야겠다.

반응형
'프로그래밍 개발 공부' 카테고리의 다른 글
| [개발 트렌드] 프론트엔드와 백엔드의 경계 붕괴: Next.js와 풀스택 프레임워크가 바꾸는 미래 (0) | 2026.05.02 |
|---|---|
| [개발 실무] 프로그램은 왜 매번 다르게 동작할까? 상태(State)와 사이드 이펙트(Side Effect) 완벽 가이드 (0) | 2026.04.30 |
| [개발 트렌드] 개발자는 코드를 덜 읽고 더 이해해야 한다: 코드 이해보다 시스템 이해가 중요해지는 이유 (0) | 2026.04.25 |
| [개발 실무] "왜 내 프로그램은 자꾸 느려지고 멈출까?" 메모리는 무한하지 않다 — 메모리 관리와 가비지 컬렉션(GC)의 모든 것 (0) | 2026.04.23 |
| [Python 학습] 1-6 프로그램이 세상과 소통하는 법: 파이썬 입출력(Input/Output) 완벽 정리 🚀 (1) | 2026.04.20 |