혼공js
[혼공js] 3주차
다빈짱123
2024. 1. 16. 17:33
<기본미션>
JavaScript에서 비파괴적 처리(non-destructive)와 파괴적 처리(destructive)는 데이터를 다루는 두 가지 접근 방식
💟 비파괴적 처리
원본 데이터를 변경하지 않고, 새로운 데이터를 생성하거나 반환하는 방식. 원본 데이터는 그대로 유지되며, 새로운 데이터는 필요한 변형이나 조작을 거쳐 생성된다.
*장점 :
- 원본 데이터 보존: 비파괴적 처리는 원본 데이터를 보존하기 때문에, 필요한 경우에 언제든지 원래의 데이터로 복구할 수 있다.
- 재사용 가능: 변형된 데이터를 여러 곳에서 사용할 수 있다. 재사용이 가능하다.
- 불변성(immutability) 강조: 불변성은 코드의 예측 가능성을 높이고 버그를 줄일 수 있다.
*단점 :
- 메모리 사용률: 새로운 데이터를 생성하므로 메모리 사용량이 늘어날 수 있다.
- 성능 영향: 더 많은 메모리 사용과 데이터의 복사로 인해 성능에 영향을 미칠 수 있다.
💟 파괴적 처리
괴적 처리는 원본 데이터를 직접 변경하는 방식. 원본 데이터 자체가 수정되며, 새로운 데이터를 생성하지 않는다.
*장점 :
- 메모리 효율성: 새로운 데이터를 생성하지 않기 때문에 메모리 효율이 높아진다.
- 성능 향상: 메모리 사용이 적고 데이터를 직접 수정하므로 성능에 이점을 줄 수 있다.
*단점 :
- 원본 데이터 손실: 원본 데이터가 변경되기 때문에, 필요에 따라 원본 데이터를 복원하기가 어려울 수 있다.
- 버그 발생 가능성: 원본 데이터를 변경하면서 예상치 못한 버그가 발생할 수 있다.
- 불변성 : 불변성 유지가 어렵다.
<추가미션>
① 비파괴적: strA의 내용이 바뀌지 않았다.
② 파괴적: arrayB의 내용이 바뀌었다.
③ 비파괴적: arrayC의 내용이 바뀌지 않았다.
④ 비파괴적: strD의 내용이 바뀌지 않았다.