불변성의 개념이 잘 이해가 가지 않습니다.
강의 2분 30초 쯤을 듣는데 #1과 #2가 본질적으로 무슨 차이인지 잘 이해가 가지 않습니다
결국엔 둘다 상태값을 오렌지,딸기,바나나로 바꿔버리는 것 같은데..#1은 불변성을 지키지 못하고 #2는 불변성을 지킨다는건 어떻게 이해해야하나요 ㅠㅠ
구글링해보니 어떤 값을 직접적으로 변경하지 않고 새로운 값을 만들어 낸다고 하는데..#1은 배열을 완전히 지웠다가 새로 만드는거고 #2는 지우지않고 딸기 부분만 끼워넣는 차이라고 보면 될까요?
답변 1
1
안녕하세요.
아래와 같이 fruits 배열이 있을 때
const fruits = ["딸기", "바나나"]
우리는 "오렌지"가 추가된 배열을 얻고자 합니다.
그럼 이때 fruits.push("오렌지"); 라고 쓴다면, fruits 배열은 ["딸기", "바나나", "오렌지"]가 되지만 이는 fruits 배열을 변경한 것이기에 불변성을 지키지 못한 사례입니다.
불변성을 지키기 위해, fruits 배열은 변경하지 않고 참조만 하여 새로운 배열을 만들어낼 수도 있습니다. 이때 기존 배열을 지우는 과정은 없습니다. 단순히 참조만 하는 거죠.
const fruits = ["딸기", "바나나"]
const newFruits = [...fruits, "오렌지"];
그럼 newFruits는 ["딸기", "바나나", "오렌지"] 값을 가지는 배열이 됩니다. fruits 배열은 변경되지 않았고 ["딸기","바나나"] 값을 그대로 가지고 있습니다.
살펴보시고 잘 이해가 안 되시면 추가 질문 주세요.
화이팅입니다. :-)
안녕하세요.
0
62
1
[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?
0
285
1
useEffect 훅에서 else 유무에 따른 결과
0
222
1
useAxios 훅의 dependency array 설정
0
254
1
useEffect에서 변수 업데이트 관련 질문
0
389
1
rest_framework.generics.CreateAPIView의 model 속성 유무
0
276
1
bootstrap4
0
480
4
리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요
1
374
1
admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법
0
578
3
useState는 필수일까요?
0
272
1
python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.
0
610
4
Django allauth를 사용한 소셜 로그인 시 에러
0
660
1
프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러
0
569
2
useLocalStorage() 함수 사용여부
0
238
1
django에 LOGIN_URL = '/accounts/login/'의 의미?
0
454
1
리듀서의 의미 재확인
0
439
1
simple-jwt Refresh Token 사용 노하우
0
906
2
docker compose 를 통한 배포 관련 오류 문의
0
686
1
파이썬 속도 장고 관련 궁금한게 있습니다.
0
372
1
is_like_user
0
238
1
related_name 오류
0
278
1
re_path 오류
0
265
1
re_path url
0
255
1
No post matches the given query
0
671
2





