변수 선언과 타입 힌트(Type Hinting)
개념
파이썬은 동적 타입 언어입니다. 변수에 어떤 타입을 할당할지 명시하지 않아도 됩니다. 하지만 **3.5 이후부터는 타입 힌트(Type Hinting)**를 통해 변수와 함수의 타입을 명시할 수 있습니다.
name: str = "Alice"
age: int = 30
사용 시기
- 가독성 향상
- 코드 자동 완성 및 정적 분석
- 팀 프로젝트 시 데이터 흐름 추적
주의
- 타입 힌트는 런타임 강제는 하지 않음
mypy
,pyright
같은 툴로 정적 타입 검사 수행 가능
조건문과 삼항 연산자
개념
조건문은 if
, elif
, else
구문을 사용해 분기 로직을 처리합니다. Python 3.12에서도 기존과 동일합니다.
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
else:
grade = 'C'
삼항 연산자:
result = "Pass" if score >= 60 else "Fail"
사용 시기
- 조건에 따라 실행 흐름을 바꿀 때
- 짧은 조건 분기를 한 줄로 표현하고 싶을 때
반복문 (for, while, enumerate, range)
개념
Python은 두 가지 주요 반복문을 제공합니다.
for i in range(5):
print(i)
while i < 5:
print(i)
i += 1
enumerate()
를 활용한 인덱스 추적:
for index, value in enumerate(['a', 'b', 'c']):
print(index, value)
사용 시기
- 반복적으로 데이터를 처리해야 할 때
- 리스트, 튜플 등 iterable 객체 탐색 시
함수(Function) 정의와 매개변수 타입 지정
개념
파이썬 함수는 def
키워드로 정의하며, 타입 힌트를 함께 사용하면 더 명확해집니다.
def greet(name: str) -> str:
return f"Hello, {name}"
기본값 설정 및 가변 인자:
def add(x: int = 0, y: int = 0) -> int:
return x + y
def sum_all(*args: int) -> int:
return sum(args)
사용 시기
- 특정 기능을 재사용 가능하게 만들 때
- 가독성 높은 코드를 작성하고 싶을 때
리스트(List)와 컴프리헨션
개념
리스트는 가장 많이 쓰이는 시퀀스 자료형입니다.
fruits = ['apple', 'banana', 'cherry']
리스트 컴프리헨션:
squares = [x**2 for x in range(10)]
사용 시기
- 대량의 데이터를 간결하게 생성할 때
- 조건을 걸어 새로운 리스트를 만들 때
딕셔너리(Dictionary)와 세트(Set)
개념
딕셔너리는 키-값 쌍 구조의 자료형이고, 세트는 중복 없는 집합형입니다.
person = {"name": "Alice", "age": 30}
unique_numbers = {1, 2, 3, 2}
사용 시기
- 데이터에 식별자를 부여할 때 (딕셔너리)
- 중복 제거가 필요할 때 (세트)
클래스와 객체지향 프로그래밍 (OOP)
개념
Python은 클래스 기반의 객체지향 언어입니다.
class Person:
def __init__(self, name: str):
self.name = name
def greet(self) -> str:
return f"Hi, I'm {self.name}"
사용 시기
- 복잡한 데이터와 동작을 하나의 틀로 묶고자 할 때
- 상속, 캡슐화, 다형성이 필요한 구조 설계 시
예외 처리 (try, except, else, finally)
개념
예외 상황을 처리하기 위한 표준 구문입니다.
try:
result = 10 / 0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
else:
print("성공적으로 나눴습니다.")
finally:
print("항상 실행됩니다.")
사용 시기
- 파일 열기, 네트워크 통신, 사용자 입력 처리 등 불확실한 작업 수행 시
- 코드 오류 발생 시 예외 메시지를 통해 사용자에게 알릴 때
모듈과 패키지, import 구문
개념
Python의 강력한 기능 중 하나는 외부 모듈을 import
해서 재사용하는 것입니다.
import math
print(math.sqrt(16)) # 4.0
패키지 구조 예시:
project/
│
├── main.py
├── utils/
│ ├── __init__.py
│ └── calculator.py
from utils.calculator import add
사용 시기
- 코드를 여러 파일로 나누어 유지보수를 쉽게 하고 싶을 때
- 외부 라이브러리를 활용하고자 할 때
패턴 매칭 (match-case 문) [Python 3.10+]
개념
Python 3.10부터 등장한 match-case
문은 스위치 문과 비슷하게 특정 조건을 매칭하여 처리할 수 있습니다.
def check_status(code: int):
match code:
case 200:
return "OK"
case 404:
return "Not Found"
case _:
return "Unknown Error"
사용 시기
- 여러 조건 분기 시
if-elif
대신 가독성 있는 분기 작성 - 패턴 기반 로직 (구조 분해 등)에 매우 효과적
Python 3.12 : 타입 힌트 강화, 패턴 매칭의 정식 채택, 성능 개선
파이썬은 그 자체로 문법이 간결하고, 프로그래밍을 처음 배우는 사람은 물론, 전문가에게도 매우 매력적인 언어입니다.
이번 글에서 소개한 10가지 문법은 기초이면서도 실무에 반드시 필요한 핵심 요소들입니다. 특히 Python 3.12 기준에서는 타입 힌트 강화, 패턴 매칭의 정식 채택, 성능 개선 등이 도입되면서 더욱 체계적인 프로그래밍이 가능해졌습니다.
이 문법들은 언제 써야 할지 판단하는 능력이 실력을 결정합니다. 반복 학습과 실습을 통해 완전히 체득하시길 바랍니다.
이후에는 데이터 처리, 비동기 프로그래밍, 파일 입출력, 데코레이터, 제너레이터, 컨텍스트 매니저 등 고급 문법도 함께 익히시면 좋습니다.
이 주제로 다음 포스팅을 하도록 하겠습니다.