Python제어 흐름

match-case 기본

값의 형태와 구조에 따라 분기하는 Python `match-case`의 기본 패턴을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

python
command = ("move", 10, 20)

match command:
    case ("move", x, y):
        print(x, y)
    case ("quit",):
        print("bye")

설명

  • match-case는 단순 값 비교를 넘어, 자료 구조의 모양까지 기준으로 분기할 수 있게 해 줍니다.
  • 튜플, 리스트, 리터럴 값, 변수 바인딩 같은 패턴을 조합할 수 있습니다.
  • 여러 형태의 입력을 구조적으로 해석할 때 if-elif보다 읽기 좋은 경우가 있습니다.
  • 특히 "첫 원소가 명령 종류이고 뒤 값이 매개변수인 구조"를 다룰 때 직관적입니다.

짧은 예제

python
value = ["point", 3, 4]

match value:
    case ["point", x, y]:
        print(f"point = ({x}, {y})")
    case _:
        print("unknown")

빠른 정리

표현의미
match value:대상 값 검사 시작
case pattern:패턴별 분기
변수 바인딩패턴 내부 값을 이름으로 받기
case _:기본 분기

공식 참고: More Control Flow Tools

주의할 점

단순 상수 비교 몇 개만 있으면 if-elif가 더 읽기 쉬울 때도 있습니다. match-case는 구조를 분해해야 할 때 특히 빛난다고 생각하면 좋습니다.