inblog logo
|
p4rksk
    JavaScript

    JavaScript - 얕은 복사, 깊은 복사

    박선규's avatar
    박선규
    Feb 20, 2024
    JavaScript - 얕은 복사, 깊은 복사
    Contents
    깊은 복사
     
    📌
    현존하는 모든 그림은 데이터를 기반으로 그림을 그린다.
    엔진에다 던지면 prev(이전) next(이후)
    엔진이 변경을 감지하는 경우는 이전 데이터가 있는 경우다.
    이 엔진을 리엑트라고한다.
    전제 조건이 원본 데이터가 불변 해야 된다. 여기서 얘기하는 불변은 메모리 영역 안에서 변경이 불가능하며,
    변수에 할당할 때 새로운 값이 만들어져 주소 값이 재 할당 된다는 의미다. 딮 카피 → 깊은 복사(원본 불변 카피)
    Animal a = new Animal(); Animal b = new Animal(a);
     
    얕은 복사 → 주소 값 (메모리에 하나만 뜬다.)
    Animal a = new Animal(); Animal b = a;
     
    next 데이터 = fiterArr
    여기서 prev 데이터 = arr
    DELETE
     

    얕은 복사

    📌
    얕은 복사는 데이터의 주소 값을 복사한다. 그래서 데이터 변경이 이 일어나면 원 데이터도 함께 변경된다.
    <script> let arr = [1, 2, 3]; //배열에 4 추가하기 arr.push(4); console.log(arr); </script>
    notion image
     
    notion image
    📌
    얕은 복사는 기존 데이터가 변경 되기 때문에 데이터의 무결성이 깨진다. 그러나 데이터의 주소를 복사하기 때문에 메모리 관점에서는 유리하다.
     

    깊은 복사

    📌
    깊은 복사는 실제 데이터를 메모리 공간에 복사하는것을 의미한다. 복사된 데이터에 변경이 발생해도 원본 데이터는 영향을 받지 않는다.
    <script> let arr = [1, 2, 3]; console.log(arr); let copyArr = [0, ...arr, 4]; console.log(copyArr); </script>
    notion image
    깊은복사
    notion image
    Share article

    p4rksk

    RSS·Powered by Inblog