ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 마스터 시리즈 3화 – 변수와 자료형 제대로 이해하기
    기술과 산업/언어 및 프레임워크 2025. 4. 29. 12:23
    728x90

    파이썬 변수와 자료형의 구조적 이해를 바탕으로 실무에서 흔히 발생하는 오류를 예방하는 방법까지 정리합니다. int, float, str, bool 등 기본 자료형부터 참조 구조까지 완전 정복합니다.


    1. 도입 – 변수 선언은 단순하지 않다

    코딩 입문에서 가장 먼저 배우는 개념 중 하나가 **변수(variable)**다.
    그러나 파이썬에서는 이 단순해 보이는 변수 선언이
    타 언어와는 매우 다른 원리로 작동한다.

    특히 동적 타이핑(dynamic typing) 언어라는 특성은,
    초기에 잘못된 습관을 들이면
    이후 디버깅과 확장 단계에서 큰 혼란을 불러온다.

    이번 글에서는 단순 문법 설명을 넘어
    파이썬 변수와 자료형의 구조적 이해를 기반으로
    실제 현업에서 마주치는 실수와 대응까지 정리한다.


    2. 본문 – 변수 선언과 자료형 핵심 정리

    2.1 변수란 무엇인가

    x = 10
    
    • x는 변수 이름
    • 10은 정수형 리터럴
    • =는 대입 연산자이며, 메모리 주소를 참조하는 방식으로 연결된다

    파이썬의 변수는 C나 Java처럼 '메모리 공간에 값을 할당'하는 것이 아니라
    객체(Object)를 참조(reference)하는 방식으로 작동한다.

    즉, 변수는 이름표일 뿐이며,
    실제 값은 객체로 존재하고, 변수는 그것을 가리킨다.


    2.2 동적 타이핑(Dynamic Typing)

    파이썬에서는 변수에 자료형을 명시하지 않는다.

    x = 10         # int
    x = "hello"    # str
    x = [1, 2, 3]  # list
    
    • 변수 x는 다양한 타입의 값을 자유롭게 가질 수 있다
    • 유연하지만, 타입 혼동으로 인한 런타임 에러 가능성이 존재한다

    따라서 실제 프로젝트에서는 다음과 같은 방어적 습관이 필요하다.

    assert isinstance(x, int)
    

    이렇게 타입을 명시적으로 확인하는 방식은
    동적 타이핑 환경에서 오류를 사전에 차단하는 데 유용하다.


    2.3 주요 자료형 요약

    자료형 예시 설명

    int x = 5 정수형
    float x = 3.14 실수형
    str x = "hello" 문자열
    bool x = True 논리형 (True / False)
    list x = [1, 2, 3] 순서 있는 변경 가능한 자료형
    tuple x = (1, 2) 순서 있지만 변경 불가능
    set x = {1, 2, 3} 중복 없는 집합 자료형
    dict x = {'a': 1} 키-값 쌍을 저장하는 해시맵

    2.4 불변(immutable) vs 변경 가능(mutable)

    이 개념은 변수와 객체의 관계를 이해하는 데 핵심이다.

    구분 자료형 예시 설명

    불변형 int, float, str, tuple 값을 바꾸면 새 객체 생성
    변경형 list, dict, set 기존 객체 자체가 수정

    예시:

    a = [1, 2, 3]
    b = a
    b.append(4)
    
    print(a)  # [1, 2, 3, 4]
    
    • a와 b는 같은 객체를 참조하고 있기 때문에 b를 수정하면 a도 함께 바뀐다
    • 변수 간 대입은 복사가 아닌 참조임을 명확히 인지해야 한다

    2.5 타입 확인 및 변환

    타입 확인

    type(x)          # 타입 출력
    isinstance(x, int)  # 특정 타입 여부 확인
    

    타입 변환

    int("10")       # 문자열 → 정수
    float("3.14")   # 문자열 → 실수
    str(123)        # 숫자 → 문자열
    list("abc")     # 문자열 → 리스트
    

    실무에서는 API 요청, 사용자 입력 등 외부 데이터가 모두 문자열로 들어오기 때문에
    명시적 형 변환이 빈번하게 사용된다.


    3. 인사이트 – 실수하지 않는 변수 관리의 핵심

    파이썬은 자유롭지만, 이 자유는 초보자에게는 위험 요소가 되기도 한다.
    아래는 실무에서 자주 발생하는 변수 관련 실수 유형과 그에 대한 대응이다.

    실수 유형 설명 해결 방법

    변수 재사용 오류 같은 이름에 다른 타입 할당 변수명 설계 시 의도 명확히 표현
    타입 혼동 사용자 입력을 숫자로 처리하려다 오류 int(input())과 같은 명시적 변환 필요
    참조 오류 리스트 참조로 인한 의도치 않은 변경 .copy() 또는 copy.deepcopy() 사용
    불변형 오해 문자열 수정 시 예상 외 결과 문자열은 항상 새로운 객체로 생성됨을 인지

     

     

    정리

    • 변수는 객체를 참조하는 이름표이며, 메모리 구조까지 이해해야 실수를 줄일 수 있다
    • 동적 타이핑 언어에서는 타입 혼란을 방지하기 위해 명시적 검증 습관이 중요하다
    • 불변과 변경 가능한 자료형 구분은 데이터 처리의 핵심 기초다
    728x90
Designed by Tistory.