구조 분해와 스프레드의 데이터 복사 경계
구조 분해와 스프레드는 객체·배열의 모양을 읽기 쉽게 다루지만, 얕은 복사 한계를 알아야 상태 변경 버그를 피한다.
| 경계 | 안전한 경우 | 위험한 경우 | 대응 |
|---|---|---|---|
| Primitive | 숫자와 문자열을 꺼내 사용 | 타입 변환만 주의 | 그대로 사용 가능 |
| Top-level object | 1단계 속성만 바꾸기 | 중첩 객체를 함께 수정 | 수정할 단계마다 복사 |
| Array item | 원시값 배열 변환 | 객체 배열의 item mutation | map으로 새 item 생성 |
| Merge order | 뒤 값이 앞 값을 덮음 | 기본값과 사용자값 순서 착각 | 우선순위를 코드에 드러냄 |
| State update | 불변 업데이트가 필요한 UI 상태 | 원본을 직접 수정 | 새 참조와 새 중첩 참조 생성 |
복사 문법을 쓸 때는 새로 만든 껍데기와 여전히 공유되는 내부 참조를 구분해야 한다.