본문 바로가기
728x90

Callbyreference2

[PYTHON] 가변 객체와 불변 객체의 인자 전달 차이점 및 사이드 이펙트 해결 방법 7가지 파이썬을 다루는 많은 개발자들이 겪는 가장 당혹스러운 순간 중 하나는 "함수 내부에서 수정한 적 없는 변수값이 함수 밖에서 변해버리는 상황"일 것입니다. 이는 파이썬의 핵심 설계 원칙인 '객체 참조에 의한 호출(Call by Object Reference)'과 가변(Mutable) vs 불변(Immutable) 객체의 특성 차이에서 기인합니다. 이러한 원리를 정확히 이해하지 못하면 대규모 시스템에서 추적하기 어려운 버그(사이드 이펙트)를 양산하게 됩니다. 본 포스팅에서는 객체 유형에 따른 메모리 관리 방식의 근본적인 차이를 분석하고, 실무에서 흔히 발생하는 예상치 못한 데이터 변조 문제를 안전하게 해결하는 7가지 전문적인 방법을 제시합니다.1. 가변(Mutable) vs 불변(Immutable) 객체의 .. 2026. 4. 12.
[JAVA] Java의 파라미터 전달 방식: Call by Value인가, Call by Reference인가? 자바 개발자 사이에서 가장 흔하면서도 깊이 있게 다뤄지는 논쟁 중 하나는 바로 "자바의 파라미터 전달 방식"입니다. 면접 질문으로도 단골인 이 주제에 대해 많은 이들이 "기본형은 Call by Value이고, 참조형(객체)은 Call by Reference이다"라고 오해하곤 합니다.결론부터 명확히 말씀드리면, 자바는 100% 'Call by Value' 방식으로 동작합니다. 이 글에서는 왜 자바가 참조형 변수를 다룰 때조차 Call by Value인지, 그리고 JVM 메모리 구조상에서 어떤 일이 벌어지는지 심도 있게 파헤쳐 보겠습니다.1. 용어의 명확한 정의논의를 시작하기 전, 두 용어의 핵심 차이를 이해해야 합니다.Call by Value (값에 의한 호출): 함수 호출 시 전달되는 변수의 '값'을 복.. 2026. 1. 15.
728x90