Python

파이썬 Switch 문, 이제 이렇게 쓰세요! (2025년 최신 가이드) - Switch Case 완벽 예제

드리프트2 2025. 3. 22. 17:27

파이썬 Switch 문, 이제 이렇게 쓰세요! (2025년 최신 가이드) - Switch Case 완벽 예제

 

많은 프로그래밍 언어에서 switch 문은 변수나 표현식의 값에 따라 여러 코드 블록 중 하나를 선택해서 실행할 수 있게 해주는 아주 유용한 도구인데요.

C (씨언어), Java (자바), JavaScript (자바스크립트) 같은 언어에는 switch 문이 기본적으로 있지만, 아쉽게도 파이썬 (Python)에는 switch 문이 내장되어 있지 않습니다.

하지만 걱정 마세요!

파이썬 (Python)에서도 switch 문과 비슷한 기능을 구현할 수 있는 여러 가지 방법들이 있습니다.

특히 파이썬 (Python) 3.10 버전부터는 match 문이라는 아주 멋지고 파이썬 (Python)스러운 방법으로 switch-case 기능을 구현할 수 있게 되었답니다.

이번 튜토리얼에서는 switch 문을 흉내내는 전통적인 방법들부터 시작해서, 파이썬 (Python) 3.10 버전부터 새롭게 도입된 match 문까지 자세히 알아보겠습니다.

핵심 요약

  • 파이썬 (Python)에는 기본 switch 문은 없지만, 여러 가지 대안을 사용할 수 있습니다.
  • 파이썬 (Python) 3.10 버전부터 제공되는 match 문이 switch-case 기능을 구현하는 가장 파이썬 (Python)다운 방법입니다.
  • 간단한 매핑의 경우에는 딕셔너리 (dictionary)를 사용하는 것이 여전히 효과적인 방법입니다.

전통적인 방법들

파이썬 (Python) 3.10 버전 이전에는 개발자들이 switch 문을 흉내내기 위해서 주로 딕셔너리 (dictionary)나 if-elif-else 체인을 사용했는데요.

두 가지 일반적인 방법을 한번 살펴볼까요?

  1. 딕셔너리 (Dictionary) 사용

딕셔너리 (dictionary)는 키 (key)에 함수나 값을 매핑해서 저장할 수 있기 때문에, switch-case 동작을 효과적으로 흉내낼 수 있습니다.

# 예제: 딕셔너리 (Dictionary)를 사용한 기본적인 Switch 문

def case_one():
    return "Case 1 실행됨"

def case_two():
    return "Case 2 실행됨"

def default_case():
    return "기본 Case"

switch = {
    1: case_one,
    2: case_two
}

# 입력 값
case_value = 1

# 해당하는 case 실행
result = switch.get(case_value, default_case)()
print(result)
  1. if-elif-else 체인 사용

if-elif-else 체인은 직관적이지만, case가 많아지면 코드가 복잡해지고 지저분해질 수 있습니다.

# 예제: if-elif-else 체인을 사용한 기본적인 Switch 문

case_value = 3

if case_value == 1:
    result = "Case 1 실행됨"
elif case_value == 2:
    result = "Case 2 실행됨"
else:
    result = "기본 Case"

print(result)

 

Match 문 (파이썬 3.10+ 버전)

파이썬 (Python) 3.10 버전부터 새로 도입된 match 문은 switch-case 기능을 더 구조적으로 구현할 수 있게 해줍니다.

패턴 매칭을 지원하기 때문에 다른 언어의 전통적인 switch 문보다 훨씬 더 강력하답니다.

문법

match 변수:
    case 패턴_1:
        # 코드 블록
    case 패턴_2:
        # 코드 블록
    case _:
        # 기본 블록

 

예제 1: 기본적인 Match-Case 문

case_value = 2

match case_value:
    case 1:
        result = "Case 1 실행됨"
    case 2:
        result = "Case 2 실행됨"
    case _:
        result = "기본 Case"

print(result)

 

예제 2: 고급 패턴 매칭

패턴 매칭을 사용하면 데이터 구조 매칭과 같이 더 복잡한 case들을 처리할 수 있습니다.

# 예제: 튜플 (tuple) 매칭

data = ("action", 42)

match data:
    case ("action", value) if value > 40:
        result = f"값 {value}인 action"
    case ("action", value):
        result = f"더 작은 값 {value}인 action"
    case _:
        result = "매치 없음"

print(result)

 

방법은 언제 사용하면 좋을까요?

  • 딕셔너리 (Dictionary): case가 단순하고 값 또는 함수에 직접 매핑될 때 유용합니다.
  • If-Elif-Else: case 수가 적거나 조건이 복잡한 표현식을 포함할 때 사용하면 좋습니다.
  • Match 문: 복잡한 매칭 시나리오나 튜플 (tuple), 리스트 (list), 딕셔너리 (dictionary) 같은 구조화된 데이터를 다룰 때 사용하세요.

 

FAQ (자주 묻는 질문)

 

파이썬 (Python)은 다양한 방법으로 switch-case 동작을 구현할 수 있도록 해주는데요.

딕셔너리 (dictionary), if-elif-else 체인부터 시작해서 새롭고 강력한 match 문까지, 여러분의 상황에 맞는 가장 적절한 방법을 선택해서 사용할 수 있습니다.

파이썬 (Python) 3.10 버전 이후부터는 match 문이 switch-case 기능을 구현하는 가장 좋고 파이썬 (Python)스러운 방법이라고 할 수 있는데요.

다양한 옵션들을 잘 이해하고 프로젝트에 가장 적합한 접근 방식을 선택해보세요!