혹시 리스트나 객체를 다른 변수에 할당했다가, 원본 데이터까지 엉뚱하게 바뀌어버린 버그를 경험한 적이 있으신가요?let a = [1-3];let b = a;b.push(4);console.log(a); // 결과는? [1-4] // "어라? 난 b만 바꿨는데 왜 a가 바뀌지?"우리는 프로그래밍을 처음 배울 때 "변수(Variable)는 값을 저장하는 상자"라고 배웁니다. 하지만 이 설명은 '반만 맞는' 이야기입니다. 이 '상자 모델'만 믿고 코딩을 하다가는 위와 같은 참조(Reference) 관련 버그 앞에서 속수무책이 될 수밖에 없습니다.오늘은 주니어 개발자가 가장 많이 오해하는 변수, 참조, 그리고 메모리의 진짜 관계를 파헤쳐 보겠습니다. 이 글을 다 읽고 나면, 더 이상 알 수 없는 데이터 변경 버..