[Java] 얕은 복사(Shallow Copy) vs 깊은 복사(Deep Copy)
"복사했는데 원본이 바뀌었습니다"분명 객체를 복사해서 복사본만 수정했는데, 원본 객체의 값까지 함께 바뀌는 현상입니다. 디버깅이 어렵고, 원인을 모르면 반복적으로 발생합니다. 문제의 근본 원인은 자바가 객체를 다루는 방식 — 참조(Reference)에 대한 이해 부족입니다.이 글에서는 자바 메모리 모델에서 참조가 어떻게 동작하는지부터 시작하여, 얕은 복사와 깊은 복사의 차이를 명확하게 설명하겠습니다.1. 자바의 참조(Reference) 이해하기복사 이야기를 시작하기 전에, 자바에서 변수가 객체를 어떻게 가리키는지 반드시 알아야 합니다. 이 개념을 건너뛰면 얕은 복사와 깊은 복사의 차이를 직관적으로 이해하기 어렵습니다.1-1. 기본 타입 vs 참조 타입자바의 변수는 두 종류로 나뉩니다.기본 타입은 값 자체..
IT/Java
2026. 3. 8. 09:30
