파이썬을 처음 배우면서 변수에 값을 저장하는 법을 익혔다. 그런데 문득 궁금증이 생겼다. 화면에 보이는 모양이 비슷하면 다 같은 데이터라고 생각하기 쉬운데, 컴퓨터는 왜 굳이 숫자 10과 문자열 "10"을 구분해서 다루는 걸까? 오늘 학습한 내용을 바탕으로 '자료형(Data Type)이 도대체 왜 필요한지' 내 머릿속의 개념을 정리해 보려고 한다. 누군가를 가르치기 위함이 아니라, 내가 앞으로 코딩하면서 헷갈리지 않기 위해 남기는 복습 기록이다.
--------------------------------------------------------------------------------
1. 자료형이란 무엇이고, 왜 필요한가?
자료형은 단순히 데이터를 분류하기 위한 딱딱한 용어가 아니라, "이 값을 어떤 방식으로 다뤄야 하는지" 컴퓨터에게 알려주는 기준이다.
사람은 문맥을 통해 '아, 이건 계산해야 할 숫자구나', '이건 그냥 화면에 띄울 글자구나'라고 직관적으로 파악할 수 있다. 하지만 컴퓨터는 데이터의 의미를 사람처럼 스스로 추측하지 못한다. 예를 들어, 숫자 10과 20을 더하는 10 + 20은 30이라는 계산된 결과가 나오지만, 따옴표로 감싸진 문자열 "10" + "20"을 실행하면 "1020"처럼 글자가 그대로 이어 붙여진다. 즉, 컴퓨터가 데이터를 겉모습이 아닌 정해진 처리 방식에 따라 정확하게 연산하고 실행하기 위해 자료형이라는 구분이 필수적인 것이다.
--------------------------------------------------------------------------------
2. 내가 가장 헷갈렸던 3가지 기본 자료형
파이썬에서 가장 자주 쓰이면서도, 입문자인 내가 기초를 탄탄히 다지기 위해 꼭 완벽하게 이해해야 할 세 가지 자료형의 특징을 정리해 보았다.
- 숫자형 (int, float) : 더하기, 빼기, 곱하기, 나누기 등 실제 수치 계산을 위해 사용되는 데이터다. 가격, 나이, 점수, 수량처럼 계산이 필요한 값은 반드시 숫자형으로 다뤄야 한다. 파이썬에서는 소수점이 없는 정수(int)와 소수점이 있는 실수(float) 등으로 나뉘어 저장된다.
- 문자열 (str) : 문자들의 묶음, 즉 글자 데이터를 표현하는 형식으로 주로 큰따옴표(" ")나 작은따옴표(' ')로 감싸서 표현한다. 여기서 내가 가장 많이 한 실수는 따옴표 안에 숫자가 있을 때다. "10"은 사람 눈에 숫자 같아 보여도 파이썬에게는 그저 텍스트, 즉 문자열이다. 문자열은 숫자처럼 사칙연산을 하는 대상이 아니라 화면에 출력하거나 서로 이어 붙일 때 사용된다.
- 불리언 (bool) : 참(True)과 거짓(False) 딱 두 가지 값만 가지는 자료형이다. 처음엔 단순히 영어 단어인 줄 알았는데, 나중에 배울 조건문(if)에서 어떤 조건이 맞는지 아닌지를 판단할 때 사용하는 아주 핵심적인 데이터 타입이다.
--------------------------------------------------------------------------------
3. 변수의 자료형을 확인하는 습관, type() 함수
코딩을 하다 보면 내 눈에는 분명 똑같은 숫자처럼 보여도 실제 자료형이 달라서 에러가 나는 경우가 정말 많다. 파이썬에서는 숫자, 문자열, 불리언 등 서로 역할이 다른 데이터들을 그대로 섞어 쓰면 문제가 생기기 때문이다. 예를 들어, 숫자형 값인 10과 문자열 값인 "10"을 그대로 더하려고 하면 'TypeError'가 발생한다.
이럴 때 내 감이나 눈대중을 믿기보다는 type() 함수를 사용해 실제 데이터의 자료형을 직접 확인하는 습관이 매우 중요하다. print(type(10))을 실행하면 숫자를 의미하는 <class 'int'>가, print(type("10"))을 실행하면 문자열을 의미하는 <class 'str'>이 출력되므로 이 둘의 처리 방식이 근본적으로 다르다는 것을 코드상에서 명확히 확인할 수 있다.
--------------------------------------------------------------------------------
4. 자료형 변환 (Type Casting)으로 에러 극복하기
만약 사용자가 입력한 숫자 모양의 '문자열'을 실제로 계산하고 싶다면 어떻게 해야 할까? 다행히 파이썬은 자료형을 서로 바꿀 수 있는 형 변환 기능을 제공한다. 사용자로부터 값을 입력받는 input() 함수는 기본적으로 입력값을 무조건 '문자열' 형태로 받아들인다. 따라서 입력받은 나이나 점수를 가지고 더하기 빼기를 하려면 int()나 float() 함수를 사용해 강제로 숫자형으로 바꿔주어야 한다. 반대로 연산된 숫자 결과를 일반 문장과 매끄럽게 이어 붙여서 출력하고 싶을 때는 str() 함수를 써서 숫자를 문자열로 변환해 주면 된다. 이 형 변환 개념을 확실히 이해하니, 툭하면 뜨던 자료형 관련 에러 메시지가 덜 무섭게 느껴지기 시작했다.
--------------------------------------------------------------------------------
5. 오늘의 학습 마무리
오늘 학습을 통해 "자료형은 단순히 외워야 할 용어가 아니라, 코드가 왜 그렇게 동작하는지 이해하게 해주는 가장 기본적인 개념"이라는 것을 깨달았다. 숫자, 문자열, 불리언은 각각의 역할과 처리 방식이 완전히 다르며, 컴퓨터는 헷갈림 없이 정확한 연산을 하기 위해 이들을 철저히 구분한다.
처음에는 자료형이라는 개념이 조금 딱딱하게 다가왔지만, 이 기초를 튼튼하게 잡아두어야 앞으로 배우게 될 연산자나 조건문, 데이터 전처리도 훨씬 쉽게 배울 수 있을 것 같다. 다음번에는 오늘 정리한 자료형들을 바탕으로 데이터를 실제로 연산하고 비교하는 과정을 정리해 봐야겠다.

반응형