inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

웹 게임을 만들며 배우는 React

7-3. action 만들어 dispatch 하기

얕은복사와 깊은 복사에 대해서 질문해요

327

hoze12

작성한 질문수 6

0

1. 만약 const num= [a: 1, b: 2] 처럼 주어질 때 
const cloneNum = num 이와 같이 그냥 할당하는 
경우는 num, cloneNum 둘 다 동일한 주소값을 
바라보고 있으므로 (얕은 복사가 아닌)참조관계 라고 하나요? 
[여태 이런 경우는 얕은 복사로 이해했거든요..
그래서 불변성을 지키기 위해 전개 연산자(...) 같은 걸 
사용해서 깊은 복사를 해야 한다고 (다른 곳에서)배웠던 거 같아서요.
그리고 속성이 기본값이 아닌 참조 타입인 경우
1차 깊은 복사만, 내부 속성(2차 깊은 복사)까지 복사되려면 
immer같은 라이브러리등을 사용해야 한다고]

2. 얕은복사는 최상위 객체만 기존 객체와의 
참조 관계를 끊는 (내부는 아직 기존 객체의 주소값을
바라보는 ) 걸 말하고 깊은 복사는 내부의 
속성들(내부 속성이 객체 또는 배열)까지 참조 관계가
끊어진 상태를 말하나요?

3. 그럼 저기 num 배열을
const cloneNum2 = [...num]; 처럼 하면 
내부 속성은 객체 또는 배열이 아니니 깊은 복사가 
되는 건가요? 

4. 추가로 값인 경우 예를 들어서
let str = 'hello';
let cloneStr = str 이렇게 할당하게 되면 
기본값은 그냥 깊은 복사가 되는 건가요? 

제가 질문을 잘못해서 죄송해요;;

얕은복사, 깊은 복사의 의미가 애매해서 
질문했어요 ㅜㅜ

react

답변 1

0

제로초(조현영)

1. 얕은복사가 아니라 참조입니다.

2. 네 맞습니다.

3.num 배열은 자바스크립트에 존재하지않는 문법입니다만...?

4. 원시값은 얕은복사 깊은복사 참조 이런 게 없습니다. 그냥 복사입니다.

0

hoze12

질문에 답변 감사드립니다. 
저거 배열 오타 ;;
const num= [{ a: 1 }, {b: 2}]

0

제로초(조현영)

네 그럼 얕은복사겠죠?

0

hoze12

네 ~

참조랑 얕은복사을 혼동해서 그랬던 거 같습니다.
사실 인터넷에 뒤져보면 다 제 질문처럼 정리해놓은게 
많아서 그렇게 생각했었는데 이번기회에 알게되어
정말 감사드린다는 말밖에 할 수 없군요 

제로초님 감사합니다. 

npm run dev 실행 시 포트가 안뜨는 문제

0

240

2

timeouts.current를 useEffect 의 input값으로 넣었을때

0

98

2

렌더링 테스트 코드 (Hooks)

0

93

1

Cannot find package 'react-refesh' 이런 에러 뜨시는 분들 보세요.

0

167

1

해당 에러 뜨는 분들 보세요. "Uncaught TypeError: ReactDom.createRoot is not a function"

1

209

1

강사님 레포지토리에서 코드 복사 시 master 브랜치 말고 react18 브랜치꺼 복붙하세요ㅠㅠ

0

108

1

useMemo와 useCallback 사용 시기

0

221

2

onRightClickTd가 작동을 하지 않습니다.

0

237

1

action.type 불러오는 방식

0

226

2

onClickRedo 질문

0

177

1

const Try = require(./Try) 빨간줄

0

262

1

npx webpack 실행시

0

324

1

지뢰찾기 강좌에서 빈칸들 한번에 열기 파트에서 여쭤보고싶은부분이 있어서 글 올립니다.

0

243

1

강좌에서 다루지 않은 기능들은 어떻게 학습하면 좋을까요?

0

319

1

react devtool이 enable 않됩니다.

0

548

2

React 랜더링이 되지 않습니다.

0

422

2

비동기로 동작하는 setState에 대해서

0

340

1

npm run dev 할 때 에러발생

0

497

2

memo, PureComponenet, shouldComponentUpdate 관련 질문

0

211

1

devMiddleware의 필요성

0

358

1

리액트에서 화살표 함수를 사용해야하는 이유

0

948

2

path.join관련질문

0

288

2

2-9. 웹팩 데브 서버와 핫 리로딩 설치과정 시 에러

0

384

1

next.js 에서 이와 비슷한 예제를 돌리고있는데 react랑 달라서 질문 드립니

1

503

4