객체의 1차원적인 값들만 복사하고, 내부의 참조(포인터)는 그대로 유지하는 복사 방식
void main() {
List<int> original = [1, 2, 3];
List<int> shallowCopy = original; // 얕은 복사 (주소를 공유)
shallowCopy[0] = 100;
print(original); // [100, 2, 3] (원본도 변경됨)
print(shallowCopy); // [100, 2, 3]
}
🔴 원본(original)과 복사본(shallowCopy)이 같은 메모리 주소를 가리키므로, 변경이 같이 일어남!
객체 내부의 모든 값과 참조형 데이터까지 새롭게 복사하여 원본과 완전히 독립적인 객체를 만드는 복사 방식
void main() {
List<int> original = [1, 2, 3];
List<int> deepCopy = List<int>.from(original); // 깊은 복사
deepCopy[0] = 100;
print(original); // [1, 2, 3] (원본 유지)
print(deepCopy); // [100, 2, 3] (복사본만 변경됨)
}
✅ List<int>.from(original)을 사용하여 새로운 리스트를 생성하여 완전히 독립적인 객체를 만들었음.