콘텐츠로 이동

P2-8.1 값(value), 변수(variable), 타입(type)

Section ID: P2-8.1 Version: v2026.07.20

P2-7에서는 코드가 어디에서 실행되는지 봤습니다. Colab에서 실행할 수도 있고, 로컬 PC(local PC)의 터미널에서 Python 인터프리터(Python interpreter)를 실행할 수도 있습니다.

이제부터는 Python 문법을 아주 좁게 복구합니다. 다만 목적은 Python 사용법을 외우는 것이 아니라, 앞으로 수식과 데이터를 코드로 읽을 때 반복해서 만나는 일반 개념을 잡는 것입니다.

여기서는 “Python을 잘하는 사람”이 되는 것보다, 수학 계산, 작은 데이터 확인, NumPy와 Pandas 실습을 읽을 수 있을 만큼 Python의 기본 단어를 회복하는 데 집중합니다.

즉, 지금 이 말을 배우는 이유도 분명합니다. 뒤에서 리스트, 딕셔너리, NumPy 배열, Pandas DataFrame을 읽을 때 지금 다루는 대상이 값인가, 이름은 무엇인가, 숫자인가 문자열인가를 구분하지 못하면 작은 예제도 금방 막히기 때문입니다.

첫 번째 단어는 값(value), 변수(variable), 타입(type)입니다.

여기서는 값(value), 변수(variable), 타입(type)의 기본 구분을 설명합니다. 이 세 단어는 Python에만 갇힌 표현이 아니라, 대부분의 프로그래밍 언어와 데이터 처리 도구가 공통으로 쓰는 최소 단위입니다. 이후 Part 2에서 이 개념들을 다시 만날 때는 개념사전도 함께 기준점으로 삼습니다.

이번 절에서 남길 3개 문장

처음 읽을 때는 아래 세 문장만 먼저 붙잡아도 충분합니다.

  1. 값(value)은 계산이 실제로 다루는 데이터 자체입니다.
  2. 변수(variable)는 그 값을 다시 부르기 위해 붙인 이름입니다.
  3. 타입(type)은 그 값으로 무엇을 할 수 있는지를 구분하는 종류 정보입니다.

즉 뒤에서 리스트, 딕셔너리, NumPy 배열, Pandas DataFrame을 읽을 때도 먼저 지금 보는 대상이 값인가, 어떤 이름으로 다시 가리키는가, 어떤 타입이라 가능한 연산이 무엇인가를 묻게 됩니다.

앞 장의 실행 환경이 그 계산을 어디서 어떤 프로그램으로 실행할까를 다뤘다면, 여기서는 그 실행 자리에서 실제로 어떤 값이 생기고 어떤 이름으로 다시 가리키며 어떤 타입으로 구분되는지 읽습니다. 다음 절에서는 이 값들이 리스트, 딕셔너리, 반복, 함수처럼 더 큰 구조와 처리 흐름으로 확장됩니다.

용어 이 절에서 먼저 잡을 뜻
값(value) 계산이 실제로 다루는 데이터 자체입니다.
변수(variable) 값을 다시 가리키기 위해 붙인 이름입니다.
타입(type) 그 값으로 무엇을 할 수 있는지 구분하는 종류 정보입니다.
할당(assign) Python에서 이름에 값을 연결하는 동작입니다.
기본 타입(basic type) int, float, str, bool처럼 처음부터 자주 만나는 값 종류입니다.

핵심 기준: 값(value), 변수(variable), 타입(type)

  • 값(value), 변수(variable), 타입(type)을 구분할 수 있습니다.
  • =이 수학의 등호와 완전히 같은 뜻이 아니라, Python에서는 이름에 값을 할당(assign)하는 문법임을 설명할 수 있습니다.
  • int, float, str, bool의 기본 차이를 설명할 수 있습니다.
  • type()으로 값의 타입을 확인할 수 있습니다.
  • 숫자처럼 보이는 문자열과 실제 숫자를 구분해야 함을 설명할 수 있습니다.
  • Python이 동적 타입(dynamic typing) 언어처럼 보이는 이유와, 그렇다고 타입이 느슨하게 섞이는 것은 아님을 설명할 수 있습니다.

세 가지 기준

여기서는 Python 문법 자체보다, 코드가 데이터를 어떻게 다루는지 봅니다. 아래 세 가지 기준이 뒤 절의 리스트, 딕셔너리, 반복 설명을 읽는 바탕이 됩니다.

기준 왜 중요한가 이 절에서 필요한 이해 수준
값은 계산이 실제로 다루는 대상이다 숫자, 문자열, 참거짓이 왜 다르게 동작하는지 여기서 시작한다 코드 안의 3, "AI", True가 모두 값이라고 이해한다
변수는 값을 다시 가리키기 위한 이름이다 수학의 등호와 Python의 =을 구분하는 데 필요하다 score = 82는 등식이 아니라 이름 붙이기라고 설명할 수 있다
타입은 값으로 어떤 연산이 가능한지를 정한다 문자열과 숫자가 왜 섞여서 오류가 나는지 설명해 준다 같은 +라도 값의 종류에 따라 다르게 동작한다고 이해한다

값은 계산이 다루는 실제 대상이다

일반적으로 값(value)은 계산의 대상입니다. 숫자, 텍스트, 참거짓처럼 프로그램이 다루는 실제 데이터가 값입니다.

Python에서는 숫자, 문자열, 참거짓 같은 값이 코드 안에서 직접 만들어지고 계산에 참여합니다.

예를 들어 다음은 모두 값입니다.

  • 3
  • 3.14
  • "AI"
  • True
  • False

값은 혼자 있을 수도 있고, 계산에 참여할 수도 있습니다.

문제 상황: 숫자 값 하나가 계산에 직접 참여하는 가장 작은 예를 먼저 보고 싶습니다. 입력(input): 정수 값 32. 기대 출력(output): 두 값을 더한 계산식 3 + 2. 확인할 개념: 값은 코드 안에 직접 나타날 수 있고 연산의 입력이 됩니다.

# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
3 + 2

문제 상황: 같은 + 기호가 문자열에서는 어떻게 다르게 동작하는지 확인하고 싶습니다. 입력(input): 문자열 "AI""Book". 기대 출력(output): 두 문자열을 이어 붙이는 계산식. 확인할 개념: 같은 연산자라도 값의 타입에 따라 의미가 달라질 수 있습니다.

# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
"AI" + "Book"

위 두 줄은 모두 +를 사용하지만 의미가 다릅니다. 첫 번째는 숫자 덧셈이고, 두 번째는 문자열(string)을 이어 붙이는 동작입니다. 같은 기호라도 값의 타입(type)에 따라 동작이 달라질 수 있습니다.

Python 공식 튜토리얼도 Python 인터프리터를 계산기처럼 사용하며 숫자와 텍스트를 먼저 소개합니다. 이 절에서는 이 흐름을 Python 코드 읽기의 출발점으로 삼습니다.

정리하면 다음과 같습니다.

관점 일반적인 설명 Python에서는
값(value) 계산이 다루는 실제 데이터 3, 3.14, "AI", True처럼 코드 안에 직접 쓸 수 있음
연산(operation) 값에 적용하는 처리 +, >=, 함수 호출 등으로 표현됨
타입(type) 값으로 가능한 동작을 제한하는 정보 같은 +라도 숫자와 문자열에서 다르게 동작할 수 있음

이름과 타입의 관계를 보여 주는 작은 예시

Python에서는 같은 이름이 시간이 지나며 다른 타입의 값을 가리킬 수 있습니다.

문제 상황: 같은 변수 이름이 다른 타입의 값을 가리킬 수 있음을 직접 확인하고 싶습니다. 입력(input): 먼저는 정수 82, 다음에는 문자열 "82"를 넣은 score. 기대 출력(output): score의 타입이 int에서 str로 바뀌어 출력됩니다. 확인할 개념: Python에서는 이름보다 값이 타입을 가지며, 재할당 시 타입도 달라질 수 있습니다.

1
2
3
4
5
6
# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
score = 82
print(type(score))

score = "82"
print(type(score))

첫 번째 score는 정수(int)를 가리킵니다. 두 번째 score는 문자열(str)을 가리킵니다. 이름은 같지만 값이 바뀌었고, 값의 타입도 바뀌었습니다.

이런 점 때문에 Python은 초반에 작성 절차가 짧게 느껴질 수 있습니다. 변수를 만들 때마다 타입 선언을 먼저 쓰지 않아도 됩니다.

하지만 작성 절차가 짧다는 말이 아무 값이나 섞어도 된다는 뜻은 아닙니다.

문제 상황: 문자열과 숫자를 그대로 더하려 하면 어떤 문제가 생기는지 보고 싶습니다. 입력(input): 문자열 "82"와 정수 3. 기대 출력(output): 타입이 맞지 않아 의도대로 계산되지 않는 예시. 확인할 개념: 동적 타입 언어처럼 보여도 타입에 맞지 않는 연산은 오류가 날 수 있습니다.

1
2
3
4
5
# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
score = "82"
bonus = 3

print(score + bonus)

이 코드는 의도대로 동작하지 않습니다. 문자열과 숫자를 그대로 더할 수 없기 때문입니다. Python은 타입을 늦게 확인하는 경향이 있지만, 값의 타입에 맞지 않는 연산을 조용히 넘어가지는 않습니다.

따라서 이 예시는 다음 기준으로 정리합니다.

  • 타입 선언을 먼저 많이 쓰지 않아도 작은 코드를 빠르게 실행할 수 있습니다.
  • 이름보다 값이 타입을 갖는다는 기준으로 읽습니다.
  • 실행 중 타입이 맞지 않으면 오류가 날 수 있습니다.
  • 그래서 데이터를 다룰 때 type()으로 확인하는 습관이 중요합니다.

변수는 값에 붙인 이름이다

일반적으로 변수(variable)는 값을 다시 사용할 수 있게 붙이는 이름입니다. 언어에 따라 변수 선언 방식과 타입 규칙은 다르지만, “값을 이름으로 참조한다”는 역할은 공통으로 나타납니다.

Python에서는 =을 사용해 값에 이름을 붙입니다.

문제 상황: 값에 이름을 붙이고 그 이름들로 다시 계산하는 가장 기본 패턴을 확인하고 싶습니다. 입력(input): width = 20, height = 45. 기대 출력(output): 두 값을 곱한 area가 출력됩니다. 확인할 개념: =은 수학 등호가 아니라 이름과 값을 연결하는 할당 문법입니다.

1
2
3
4
5
# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
width = 20
height = 45
area = width * height
print(area)

여기서 width, height, area는 변수(variable)입니다.

수학에서 x = 3을 볼 때는 등식처럼 읽는 경우가 많습니다. 하지만 Python 코드에서 width = 20은 “왼쪽과 오른쪽이 같다”는 주장이라기보다, “20이라는 값에 width라는 이름을 붙인다”는 실행 문장에 가깝습니다.

따라서 다음처럼 같은 이름에 다른 값을 다시 붙일 수 있습니다.

문제 상황: 같은 변수 이름을 다시 쓰면 마지막 값만 남는다는 점을 확인하고 싶습니다. 입력(input): score에 차례로 10, 12를 할당. 기대 출력(output): 최종적으로 12가 출력됩니다. 확인할 개념: 재할당은 같은 이름이 다른 값을 가리키게 만드는 동작입니다.

1
2
3
4
# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
score = 10
score = 12
print(score)

출력되는 값은 12입니다. score라는 이름이 먼저는 10을 가리켰고, 나중에는 12를 가리키게 되었기 때문입니다.

변수를 “상자”라고 설명하기도 합니다. 다만 Python 문맥에서는 “값에 붙인 이름”이라는 기준이 더 정확합니다. 특히 리스트처럼 바뀔 수 있는 값(mutable value)을 다룰 때 이 차이가 중요해집니다. 그 내용은 P2-8.2에서 다시 봅니다.

관점 일반적인 설명 Python에서는
변수(variable) 값을 참조하기 위한 이름 이름이 객체를 가리키는 방식으로 이해하면 이후 리스트 설명과 연결됨
할당(assignment) 이름과 값을 연결하는 동작 score = 82처럼 =을 사용함
재할당(reassignment) 같은 이름이 다른 값을 가리키게 하는 동작 score = "82"처럼 같은 이름에 다른 타입의 값을 붙일 수 있음

타입은 값으로 할 수 있는 일을 제한한다

일반적으로 타입(type)은 값의 종류입니다. 더 넓게 보면, 타입은 그 값으로 어떤 계산을 할 수 있고 어떤 계산은 할 수 없는지를 정하는 정보입니다.

Python에서는 type()으로 값의 타입을 확인할 수 있습니다.

문제 상황: 대표적인 기본 값들이 각각 어떤 타입으로 읽히는지 한 번에 보고 싶습니다. 입력(input): 3, 3.14, "AI", True. 기대 출력(output): 각 값의 type(...) 결과. 확인할 개념: 기본 숫자, 문자열, 불리언은 서로 다른 타입으로 구분됩니다.

1
2
3
4
5
# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
print(type(3))
print(type(3.14))
print(type("AI"))
print(type(True))

대표적인 기본 타입은 다음과 같습니다.

타입 읽는 법 예시 의미
int integer 3, 100 정수
float floating-point number 3.14, 0.5 소수점이 있는 수
str string "AI", "42" 문자열
bool boolean True, False 참 또는 거짓

Python 공식 문서는 정수 값은 int, 소수부가 있는 수는 float 타입으로 설명합니다. 텍스트는 str 타입의 문자열로 다룹니다.

일반적인 언어 유형에서 Python의 위치

값, 변수, 타입을 본 뒤에야 Python의 특징을 조금 더 정확히 볼 수 있습니다. 프로그래밍 언어는 여러 기준으로 나눌 수 있지만, 여기서는 깊은 분류를 외우기보다 Python 코드 읽기에 필요한 몇 가지 관점만 봅니다.

구분 흔한 설명 Python을 볼 때 중요한 점
정적 타입(static typing) 변수나 표현식의 타입을 실행 전에 더 엄격하게 확인하는 경향 Java, C, C++ 같은 언어를 떠올리면 int score처럼 타입 선언이 먼저 보이는 경우가 많습니다.
동적 타입(dynamic typing) 실행 중 값이 실제 타입을 가지고, 이름은 그 값을 가리키는 경향 Python에서는 score = 82.5처럼 이름에 값을 붙이고, 값의 타입은 실행 중 확인됩니다.
컴파일 언어(compiled language) 실행 전에 별도 변환 단계가 중요하게 드러나는 경우 C/C++ 같은 언어는 컴파일 단계가 학습 초반부터 크게 보일 수 있습니다.
인터프리터 언어(interpreted language) 코드를 실행하며 바로 확인하는 흐름이 두드러지는 경우 Python은 대화형 프롬프트와 스크립트 실행을 통해 작은 코드를 빠르게 확인하는 흐름을 지원합니다.
스크립팅/글루 언어(scripting/glue language) 기존 도구와 파일, 시스템을 이어 붙이는 용도로 자주 쓰이는 언어 Python은 데이터 파일, 라이브러리, 분석 도구를 연결하는 실습에서 자주 만납니다.

이 표는 언어를 엄밀하게 분류하기 위한 표가 아닙니다. 실제 언어와 실행 환경은 더 복잡합니다. 여기서 중요한 것은 Python이 “타입을 미리 많이 선언하고 시작하는 언어”라기보다, 값을 만들고 실행하면서 확인하는 흐름이 강하다는 점입니다.

Python 공식 요약도 Python을 고수준(high-level), 인터프리터 방식(interpreted), 동적 의미론(dynamic semantics)을 가진 언어로 설명합니다. 이 설명은 이 절에서 Python을 작은 계산을 바로 확인하는 예시 언어로 쓰는 이유와 맞닿아 있습니다. 다만 실행해 보기 전까지 타입 문제가 드러나지 않을 수 있으므로, type()으로 확인하는 습관이 중요합니다.

숫자처럼 보여도 문자열일 수 있다

자주 만나는 혼동은 숫자와 문자열입니다.

문제 상황: 겉모양이 비슷해 보여도 숫자와 문자열의 계산 결과가 달라진다는 점을 확인하고 싶습니다. 입력(input): 숫자 30, 문자열 "30". 기대 출력(output): 숫자 쪽은 31, 문자열 쪽은 "301"처럼 이어 붙은 결과. 확인할 개념: 숫자처럼 보이는 문자열은 실제 숫자 연산과 다르게 동작합니다.

1
2
3
4
5
6
# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
age_number = 30
age_text = "30"

print(age_number + 1)
print(age_text + "1")

30은 숫자입니다. "30"은 문자열입니다.

그래서 age_number + 131이 되지만, age_text + "1""301"처럼 문자열을 이어 붙입니다.

이 차이는 AI 실습에서도 중요합니다. CSV 파일이나 엑셀 파일에서 읽은 값은 겉으로는 숫자처럼 보여도 문자열로 들어올 수 있습니다. 모델 계산은 숫자 타입을 기대하는데, 데이터가 문자열이면 계산이 실패하거나 전처리(preprocessing)가 필요해집니다.

예를 들어 다음 상황을 생각할 수 있습니다.

원본 데이터 사람이 보는 의미 Python에서 확인해야 할 점
"100" 수량 100 문자열인지 숫자인지 확인
"0.92" 확률 점수 0.92 float으로 바꿔야 하는지 확인
"True" 참처럼 보이는 텍스트 실제 bool인지 확인
"2026-06-24" 날짜 문자열인지 날짜 타입인지 확인

이 절에서는 모든 타입 변환을 외우는 대신, “값이 어떻게 보이는가”와 “Python이 어떤 타입으로 다루는가”가 다를 수 있다는 점을 기준으로 남깁니다.

불리언은 조건 판단의 기본 재료다

불리언(boolean)은 True 또는 False 값을 갖는 타입입니다.

문제 상황: 비교 연산이 불리언 값을 만든다는 점을 간단한 점수 기준으로 보고 싶습니다. 입력(input): score = 92, 기준 60. 기대 출력(output): passed 값과 그 타입이 출력됩니다. 확인할 개념: 비교식의 결과는 True 또는 Falsebool 타입입니다.

1
2
3
4
5
6
# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
score = 92
passed = score >= 60

print(passed)
print(type(passed))

score >= 60은 비교(comparison)입니다. 이 비교의 결과는 True 또는 False입니다.

AI 실습에서는 불리언을 자주 만납니다.

  • 점수가 기준 이상인가?
  • 데이터에 결측치가 있는가?
  • 예측값이 임계값(threshold)을 넘었는가?
  • 학습 데이터와 테스트 데이터를 나누는 조건을 만족하는가?

Part 2 Chapter 5에서 확률 점수와 서비스 결정을 구분했습니다. 그때도 모델 점수는 숫자였고, 정책 조건을 통과한 결과는 행동으로 이어졌습니다. Python에서는 이런 조건 판단이 불리언 값으로 표현됩니다.

작은 데이터 처리 예시

다음 예시는 학생 점수 하나를 숫자로 다루고, 기준을 넘었는지 확인합니다.

문제 상황: 실제 데이터처럼 이름, 점수, 기준값, 통과 여부를 함께 다루는 작은 예를 보고 싶습니다. 입력(input): 학생 이름, 점수 82.5, 기준 60.0. 기대 출력(output): 이름, 점수, 통과 여부가 차례로 출력됩니다. 확인할 개념: 문자열, 실수, 불리언이 한 예제 안에서 각기 다른 역할로 함께 쓰일 수 있습니다.

# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
student_name = "Kim"
score = 82.5
threshold = 60.0

passed = score >= threshold

print(student_name)
print(score)
print(passed)

여기서 값과 타입을 나누어 보면 다음과 같습니다.

이름 타입 의미
student_name "Kim" str 학생 이름
score 82.5 float 점수
threshold 60.0 float 통과 기준
passed True bool 기준 통과 여부

이 예시는 단순하지만 이후 데이터 처리와 모델 평가에서 계속 반복됩니다.

데이터는 값으로 들어옵니다. 변수는 그 값에 이름을 붙입니다. 타입은 그 값을 어떤 방식으로 계산할 수 있는지 결정합니다.

타입 오류는 좋은 신호일 수 있다

Python에서 타입이 맞지 않으면 오류가 날 수 있습니다.

문제 상황: 숫자처럼 보이는 문자열과 실제 숫자를 비교하면 왜 문제가 생기는지 보고 싶습니다. 입력(input): 문자열 "82.5"와 실수 60.0. 기대 출력(output): 비교가 의도대로 되지 않는 오류 예시. 확인할 개념: 데이터가 숫자처럼 보여도 실제 타입이 다르면 비교와 계산이 실패할 수 있습니다.

1
2
3
4
5
# 이 예제는 값, 변수, 타입이 코드에서 어떻게 구분되는지 확인합니다.
score = "82.5"
threshold = 60.0

print(score >= threshold)

이 코드는 의도대로 동작하지 않습니다. score는 숫자처럼 보이지만 실제로는 문자열이고, threshold는 실수입니다.

이런 오류를 만나면 “Python이 이상하다”고 보기보다, 먼저 질문을 바꿉니다.

  • 이 값은 실제로 어떤 타입인가?
  • 파일에서 읽는 과정에서 문자열로 들어오지 않았는가?
  • 숫자로 바꿔야 하는 값인가?
  • type()으로 확인했는가?

데이터 처리에서 타입 오류는 귀찮은 장애물이지만, 동시에 데이터의 상태를 알려주는 신호이기도 합니다.

사례 및 예시

사례 1. CSV에서 읽은 점수가 왜 계산되지 않는가

한 학습자가 학생 점수 CSV를 읽어 평균을 내려고 한다고 하겠습니다. 화면에는 82.5, 91.0, 77.0처럼 숫자로 보이는데, 막상 더하거나 비교하려 하면 예상과 다르게 동작할 수 있습니다.

사람이 먼저 쓰는 기준은 보통 숫자처럼 보이면 숫자겠지입니다. 하지만 실제 코드에서는 "82.5"처럼 문자열일 수 있고, 이 경우 더하기나 비교 연산은 숫자처럼 동작하지 않습니다.

이 절의 , 변수, 타입 구분은 바로 이 실패를 읽기 위한 기본 도구입니다. 값은 실제 데이터이고, 변수는 그 값에 붙인 이름이며, 타입은 그 값으로 어떤 연산이 가능한지를 정합니다. 따라서 겉모양보다 type()으로 실제 타입을 확인하는 습관이 중요해집니다.

확인 가능한 결과는 간단합니다. 화면에 같은 82.5처럼 보여도 type(score)str이면 숫자 계산 전에 변환이 필요하고, float이면 바로 수치 계산에 쓸 수 있습니다.

체크리스트

  • 값(value), 변수(variable), 타입(type)을 구분할 수 있다.
  • Python의 =이 이름에 값을 할당(assign)하는 문법임을 설명할 수 있다.
  • int, float, str, bool의 기본 차이를 설명할 수 있다.
  • 숫자처럼 보이는 문자열과 실제 숫자를 구분할 수 있다.
  • type()으로 값의 타입을 확인할 수 있다.
  • 타입 오류가 났을 때 데이터 상태를 먼저 확인해야 함을 설명할 수 있다.
  • 화면에는 숫자처럼 보여도 실제 타입을 먼저 확인해야 하는 이유를 설명할 수 있다.

출처와 참고 자료

  • Python Software Foundation, What is Python? Executive Summary, Python.org, 확인 날짜: 2026-07-20. Python의 동적 의미론(dynamic semantics), 동적 타이핑(dynamic typing), 고수준 내장 자료구조 설명 확인에 사용했다.
  • Python Software Foundation, An Informal Introduction to Python, Python 3.14.6 documentation, 확인 날짜: 2026-07-20. Python 대화형 예제에서 프롬프트, 숫자, 문자열, 리스트가 어떻게 소개되는지 확인하는 근거로 사용했다.
  • Python Software Foundation, Built-in Types, Python 3.14.6 documentation, 확인 날짜: 2026-07-20. int, float, str, bool 등 기본 타입과 타입별 연산 차이를 확인하는 근거로 사용했다.
  • Python Software Foundation, Data model, Python 3.14.6 documentation, 확인 날짜: 2026-07-20. Python에서 객체가 정체성(identity), 타입(type), 값(value)을 가진다는 설명 확인에 사용했다.