Python for AI, Embedded/Python: Core & Automation

파이썬(Python) 주요 자료형 총정리: 특징부터 핵심 데이터 타입 비교까지

임베디드 친구 2025. 6. 18. 22:07
반응형

지난 시간까지 변수를 만들고 화면에 입출력하는 방법을 배웠습니다. 변수라는 상자에 데이터를 담을 때, 그 데이터가 숫자인지, 글자인지, 혹은 여러 개의 묶음인지에 따라 성격이 달라지는데요. 이를 프로그래밍에서는 '자료형(Data Type)'이라고 부릅니다. 파이썬은 개발자가 복잡한 연산에 신경 쓰지 않고 비즈니스 로직에만 집중할 수 있도록 아주 유연하고 강력한 자료형들을 기본으로 제공합니다. 이번 포스팅에서는 파이썬 코딩의 실질적인 체력을 키워줄 주요 자료형들의 특징과 올바른 활용법을 자세히 짚어보겠습니다.

Generated by Gemini AI.

📌 핵심 요약 3줄

  • 파이썬의 자료형은 크게 단일 값(숫자, 문자, 불리언)과 여러 값을 담는 컬렉션(리스트, 튜플, 집합, 딕셔너리)으로 나뉩니다.
  • 리스트는 수정이 가능하지만, 튜플은 한 번 생성하면 절대 바꿀 수 없는 불변(Immutable)의 특성을 가집니다.
  • 집합은 중복을 허용하지 않고, 딕셔너리는 키-값(Key-Value) 구조로 데이터를 효율적으로 관리합니다.

📊 파이썬 핵심 자료형 한눈에 보기 (종합 비교)

본격적인 설명에 앞서, 파이썬에서 가장 중요한 컬렉션 자료형들의 핵심 차이점을 표로 먼저 정리해 드립니다. 이 표만 기억하셔도 자료형의 절반은 마스터하신 겁니다.

자료형 명칭 기호 순서(Index) 유무 중복 허용 여부 수정 가능 여부 주요 용도
리스트 (List) [] 있음 허용 가능 순차적 데이터 추가 및 변경
튜플 (Tuple) () 있음 허용 불가능 변하지 않는 설정값, 좌표 관리
집합 (Set) {} 없음 불가 가능 중복 제거, 집합 연산(합/교집합)
딕셔너리 (Dict) {} 없음 (Key로 접근) Key 중복 불가 가능 구조화된 데이터, JSON 변환

1. 숫자형 (Numeric Types) : 정수, 실수, 그리고 복소수

가장 기본적인 자료형으로, 수학적 계산에 사용됩니다.

  • 정수형 (int): 소수점이 없는 숫자입니다. 파이썬은 다른 언어와 달리 아주 큰 정수도 메모리가 허용하는 한 자릿수 제한 없이 마음껏 다룰 수 있다는 장점이 있습니다.
  • 부동소수점 (float): 소수점이 포함된 실수입니다. 대략 소수점 아래 15자리 정도의 정밀도를 제공합니다.
  • 복소수형 (complex): 실수부와 허수부로 이루어진 숫자로, 파이썬에서는 허수 단위를 기호 j로 표현합니다. 과학 계산이나 공학용 스크립트를 짤 때 유용합니다.
  • Python
     
    z = 3 + 4j  # 실수부 3, 허수부 4인 복소수
    

2. 문자열 (String) : 글자들의 집합

문자열은 작은따옴표(')나 큰따옴표(")로 감싸서 표현합니다. 파이썬의 문자열은 다루기가 아주 편리해서 다양한 연산을 지원합니다.

Python
 
greeting = "Hello"
name = "Alice"
# 더하기(+) 기호로 문자열을 이어 붙일 수 있습니다.
full_message = greeting + " " + name  # 결과: "Hello Alice"

# 인덱싱을 통해 원하는 글자만 쏙 뽑아올 수도 있습니다.
print(name[0])  # 결과: 'A' (첫 번째 글자)

3. 리스트 (List) vs 튜플 (Tuple) : 비슷하지만 다른 쌍둥이

여러 개의 데이터를 한 번에 묶어서 순서대로 관리하고 싶을 때 사용하는 자료형입니다.

① 리스트 (List)

대괄호([])를 사용하며, 안에 들어있는 요소를 자유롭게 추가, 수정, 삭제할 수 있어 가장 역동적으로 쓰입니다. 서로 다른 자료형을 섞어서 넣는 것도 가능합니다.

Python
 
fruits = ["apple", "banana"]
fruits.append("orange")  # 요소 추가
print(fruits)  # 결과: ['apple', 'banana', 'orange']

② 튜플 (Tuple)

소괄호(())를 사용하며, 리스트와 거의 같지만 "한 번 만들면 절대 수정할 수 없다"는 강력한 제약이 있습니다. 데이터의 안정성을 보장해야 하는 3차원 좌표나 시스템 환경 설정값을 묶을 때 필수적입니다.

Python
 
coordinates = (10, 20)
# coordinates[0] = 30  <- 값을 바꾸려고 하면 에러 발생! 데이터 보호 기능.

4. 집합 (Set) : 중복은 절대 용납하지 않는다

중괄호({})를 사용하며, 수학의 집합 개념을 코드로 옮겨온 것입니다.

가장 큰 특징은 중복된 값을 자동으로 제거해 준다는 점과 순서가 없다는 점입니다. 순서가 없기 때문에 인덱스 번호(set[0])로 접근할 수 없습니다. 대신 합집합(union), 교집합(intersection) 같은 강력한 수학적 연산을 바로 수행할 수 있습니다.

Python
 
unique_numbers = {1, 2, 2, 3}  # 중복된 2를 넣어도 하나만 남음
print(unique_numbers)  # 결과: {1, 2, 3}

5. 딕셔너리 (Dictionary) : 사전처럼 키와 값을 매칭

사전에서 단어를 찾으면 뜻이 나오는 것처럼, 키(Key)와 값(Value)을 한 쌍으로 묶어 관리하는 아주 유용한 자료형입니다. 집합처럼 중괄호({})를 사용하지만 Key: Value 형태로 데이터가 들어갑니다.

Python
 
person = {
    "name": "John",
    "age": 30,
    "city": "Seoul"
}
# 인덱스 번호 대신 'Key' 이름으로 값을 바로 찾아옵니다.
print(person["name"])  # 결과: John

웹에서 데이터를 주고받을 때 자주 쓰는 JSON 형식과 완벽하게 호환되기 때문에, 실무에서 데이터베이스나 API를 다룰 때 밤낮으로 쓰이는 자료형입니다.


6. 참/거짓의 불리언(Boolean)과 빈 값을 뜻하는 None

  • 불리언 (bool): 오직 True와 False 두 가지 값만 가집니다. 컴퓨터에게 "이 조건이 맞니 틀리니?"를 물어보고 프로그램의 흐름을 바꿀 때(조건문) 사용합니다.
  • None 타입: 다른 언어의 null과 비슷한 개념으로, "현재 값이 비어 있음"을 명시적으로 나타내는 특별한 자료형입니다. 변수를 미리 만들어두고 나중에 값을 채워 넣을 때 초기화 용도로 자주 씁니다.

7. 개발을 위한 팁

  • 가장 알맞은 컬렉션 선택하기: 데이터를 다룰 때 습관적으로 리스트만 쓰지 마세요. 수정되면 안 되는 값은 튜플(())을, 데이터 유무를 빠르게 검사하거나 중복을 없애야 할 때는 집합({})을, 매칭되는 구조화된 데이터는 딕셔너리({})를 선택하는 것이 코드의 안정성과 성능(속도)을 모두 올리는 비결입니다.
  • 리스트에서 중복을 없애는 마법: 리스트 안에 중복된 데이터가 가득할 때, 이를 집합으로 바꿨다가 다시 리스트로 돌려놓으면 코드 한 줄로 중복이 제거됩니다.
Python
 
  my_list = [1, 2, 2, 3, 3, 3]
  clean_list = list(set(my_list))  # 결과: [1, 2, 3]

8. 흔히 하는 실수

  • 부동소수점 연산의 미세한 오차: 컴퓨터는 숫자를 이진수로 처리하기 때문에, 실수 계산 시 미세한 잔여 오차가 발생할 수 있습니다. 예를 들어 0.1 + 0.2 == 0.3을 실행하면 False가 나옵니다. 정확한 금액 계산 등이 필요할 때는 일반 float 대신 decimal 모듈을 사용해야 안전합니다.
  • 딕셔너리 Key 존재 여부 미확인: 딕셔너리에 존재하지 않는 키를 무작정 부르면(person["hobby"]) 프로그램이 에러를 내며 멈춰버립니다. 안전하게 값을 가져오려면 .get() 메서드를 쓰는 버릇을 들이는 것이 좋습니다.
Python
 
  # 키가 없으면 에러 대신 None을 반환하여 안전합니다.
  hobby = person.get("hobby") 

💡 맺음말

이번 시간에는 파이썬이 제공하는 무기들인 주요 자료형들을 깊이 있게 살펴보았습니다. 정수나 문자열 같은 단순한 형태부터 리스트, 딕셔너리 같은 복잡한 묶음까지 각자의 쓰임새가 명확하다는 것을 느끼셨을 텐데요. 자료형의 특성을 제대로 파악하고 있어야 다음 단계인 조건문과 반복문을 다룰 때 데이터들을 자유자재로 요리할 수 있습니다.

실습 중에 잘 안 풀리거나 궁금한 점이 생기면 언제든 댓글로 질문 남겨주세요. 여러분의 코딩 메이트가 되어 드리겠습니다. 감사합니다!

반응형