피드로 돌아가기
What Really Happens When You Write x = 10
Dev.toDev.to
Backend

Variable-as-Container 관점을 탈피한 Name-to-Object Binding 모델 분석

What Really Happens When You Write x = 10

Anton Shcherbatov2026년 6월 30일3beginner

Context

변수를 데이터를 저장하는 물리적 공간으로 인식하는 기존의 컨테이너 모델 기반 사고방식 분석. 이러한 오해로 인한 Mutable Object 공유 시의 Side Effect 및 메모리 동작 원리 파악의 한계점 식별.

Technical Solution

  • 값의 저장이 아닌 객체 생성 후 이름을 연결하는 Name Binding 메커니즘 채택
  • 데이터 실체인 Object와 접근 경로인 Name의 역할을 완전히 분리한 아키텍처 설계
  • y = x 할당 시 객체 복제가 아닌 동일 Object에 대한 참조 카운트 증가 방식 적용
  • 값 변경 시 기존 객체 수정이 아닌 새로운 Object 생성 및 Name의 Rebinding 수행
  • Object-based Reference 모델을 통한 메모리 효율성 및 동적 타이핑 기반 확보

- Mutable Object(List, Dict 등) 할당 시 의도치 않은 공유 참조 발생 여부 검토 - is(Identity)와 ==(Equality) 연산자의 내부 동작 차이를 고려한 조건문 설계 - 대규모 데이터 구조 변경 시 원본 보존을 위한 Deep Copy 필요성 판단

원문 읽기