23.05.28 13:04 작성
·
420
·
수정됨
0
강의에서는 불변성을 지키기 위해 Shallow Copy(얕은 복사)를 하신다고 하셨는데,
이는 많은 혼동을 야기하는 것 같습니다.
https://developer.mozilla.org/en-US/docs/Glossary/Shallow_copy
https://developer.mozilla.org/en-US/docs/Glossary/Deep_copy
에 따르면,
Shallow Copy 는 원본 객체의 속성과 동일한 참조를 공유하는 복사본이고
Deep Copy 는 원본 객체의 속성과 동일한 참조(동일한 기본 값을 가리킴)를 공유하지 않는 복사본이라 되어있습니다.
강사 님이 생각하시는 참조가 Shallow Copy 고,
불변성을 지키기 위해 사용하는 것이 Deep Copy 가 아닌지요?
강사님의 강의는 앞으로 개발 능력 향상에 아주 도움이 되기에, 정확한 이해를 위해 질문드려봅니다.
답변 1
0
2023. 05. 28. 13:27
저는 강좌에서 정확하게 설명했다고 생각하는데요. 실제로 코드도 그렇게 만들고 있고요.
일단 리액트에서는 항상 얕은 복사를 하고, 바꾸고자 하는 속성이 담긴 객체만 참조를 끊는 깊은복사를 합니다.
프로그래밍은 말보다는 코드를 보시면 됩니다.