2021년 1월 11일 복기

Ji Taek Lim·2021년 1월 11일
0

아 어제 계산기를 했는데 advanced 너무 어려웠다. 페어분들의 코드를 봤는데도... 이따가 해봐야지

오늘은 홍식님께서 shallow copy 와 deep copy에 대해서 설명해주셨다..

안녕하세요, 금요일 오전에 주신 질문인데 답변 받지 못하셔서 답답하셨겠습니다. 저희는 헬프데스크 답변을 1 영업일 이내에 하려고 많은 노력을 기울이고 있습니다. 쉽게 말씀 드리면 금요일 업무 시간 외 질문은 월요일에 답변 드립니다. 이번 질문은 금요일 오전에 질문을 주셨기 때문에 이 경우에 해당하지 않고 1일 이내에 답변드리지 못한 질문에 해당합니다. 저희 노력이 부족하여 답변을 드리지 못하게 된 점 죄송합니다 🙇

다만, 질문의 범위가 비교적 넓어 저희가 구체적으로 무엇을 답변드릴지 어려운 질문이기도 합니다. 아마도 저희 담당 엔지니어님이 답변하기 어려웠던 이유도 이 넓은 범위 때문이 아닐까 생각합니다. shallow copy와 deep copy 자체에 대해서 물어보신다면 이는 헬프데스크에 일부 답변이 되어있기도 하고, 관련 설명이 코언즈에 있기도 해서 사실 "이미 설명 되어있다."라고 말씀드려도 되기도 합니다.

하지만 질문해주신 분의 더 나은 이해를 위해 제가 추가 질문을 드리겠습니다.

me.todos와 merged.todos가 같은 주소를 가지고 있나요?

같은 주소를 가지고 있다면, 이것은 shallow copy인가요? 아니라면, 이것은 shallow copy인가요?

이 세가지 질문에 답할 수 있으면 잘 이해하셨다고 생각합니다.
일부 답변을 드리자면, 2번에 대해서는 답변드릴 수 있겠습니다. 같은 주소를 가지고 있습니다. 그렇기 때문에 merged.todos가 요소도 함께 늘어났겠죠?

shallow copy는 레퍼런스를 참조하기 때문에

복사해온 값이 바뀌면 원본이 바뀌면..

복사한 값이 바뀌게 된다.

deep copy는 원본이 바뀌어도 바뀌지가 않는다...

DATA type

primate type -> 깊은 복사

reference type -> 레퍼런스 type은

배열이나 객체를 할때 .

그래서 deep copy

shallow copy 의 개념이 나왔다.

reference type이라면 원본이 바뀔 수도 있으니까

deep copy를 할지 shallow copy를 할지 고민을 해줘야 한다.

let arr = [1, 2, 3, 4];

let newArr = [];

for(let i of arr){
    newArr.push(i)
};

console.log(newArr);
[1, 2, 3, 4]

newArr.pop();
4
console.log(newArr);
(3) [1, 2, 3]

console.log(arr);
(4) [1, 2, 3, 4]



관건은 자료가 reference type인가

primative type인가가 중요하다.

git workflow

http://minsone.github.io/git/github-managing-remotes-adding-a-remote

https://backlog.com/git-tutorial/kr/stepup/stepup2_3.html

git branch 활용
https://academy.realm.io/kr/posts/360andev-savvas-dalkitsis-using-git-like-a-pro/

https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html

merge는 newbranch에 있는것을 복사해와라

정환님께서 학습할수 있는 자료를 알려주셨다.. 감사합니다...

git 을 게임으로 배운다.

https://learngitbranching.js.org/?locale=ko


profile
임지택입니다.

0개의 댓글