deep copy 3

깊은 복사(Deep copy) 경험

이번에 회사에서 carInspection 즉 셀러가 차량의 수리 이력등을 등록 및 수정하는 기능을 개발하게 되었습니다. 이때 carInspection의 등록은 PopUp에 있는 버튼을 통해서 등록할 수 있었는데 만약 셀러가 버튼을 눌러서 carInspeciton을 등록하고, 등록 이후에 창을 다시 열어서 수정을 하던 도중 취소를 하면 이전에 등록했던 carInspection 정보가 유지가 되어야 했습니다. 위의 기능을 개발하기 위해 등록하기 버튼을 눌렀을 때 duplicatedConditionList에도 원본 객체에 등록된 정보를 똑같이 할당해 주었는데 이때 원본 객체를 그대로 전달하면 수정을 할 때 duplicatedConditionList 또한 변하기 때문에 완벽한 깊은 복사 즉 Deep Copy를 ..

지식 정리 📝 2023.12.08

JSON 함수를 통한 Deep Copy

먼저 user 객체를 생성합니다. let user = { name: "sungjun", age: 50, size: { height: 200, weight: 70, } }; 다음으로 deepCopy 객체를 생성한 후 JSON.stringify() 함수를 통해 user객체를 문자열로 변환합니다. 그 후 JSON.parse() 함수를 통해 문자열 user를 다시 object 형태로 변환해줍니다. (정말 간편한 방법인 것 같습니다.) let deepCopy = JSON.parse(JSON.stringify(user)); 다음으로 deepCopy.size.height의 값을 250으로 변경하신 후 결과를 보시면 user객체와 별개로 값이 변경되는 걸 확인하실 수 있습니다. deepCopy.size.height =..

Deep Copy, Shallow Copy

지금 까지 여러 강의를 수강하면서 잘 이해가 되지 않았는데 이번에는 이해가 되어서 글 작성을 해보려고 합니다. const obj = { property1: "1", property2: { subProperty1: '2-1', subProperty2: '2-2', } } 먼저 위와 같이 obj를 생성해 줬습니다. const obj2 = Object.assign({}, obj); //shallow copy(얕은 복사) 다음으로 obj2를 생성하고 Object.assign() 함수를 사용해 {} 빈 객체에 obj를 복사하였습니다. 이것이 바로 shallow copy를 의미합니다. 얕은 복사를 했을 경우 obj2의 property1의 값을 변경했을 경우 obj1의 값과는 무관합니다. 하지만 obj2 객체에 있는..