혼공js

[혼공js] 3주차

다빈짱123 2024. 1. 16. 17:33

<기본미션>

JavaScript에서 비파괴적 처리(non-destructive)와 파괴적 처리(destructive)는 데이터를 다루는 두 가지 접근 방식

💟 비파괴적 처리

원본 데이터를 변경하지 않고, 새로운 데이터를 생성하거나 반환하는 방식. 원본 데이터는 그대로 유지되며, 새로운 데이터는 필요한 변형이나 조작을 거쳐 생성된다.

*장점 :

  1. 원본 데이터 보존: 비파괴적 처리는 원본 데이터를 보존하기 때문에, 필요한 경우에 언제든지 원래의 데이터로 복구할 수 있다.
  2. 재사용 가능: 변형된 데이터를 여러 곳에서 사용할 수 있다. 재사용이 가능하다.
  3. 불변성(immutability) 강조: 불변성은 코드의 예측 가능성을 높이고 버그를 줄일 수 있다.

*단점 :

  1. 메모리 사용률: 새로운 데이터를 생성하므로 메모리 사용량이 늘어날 수 있다.
  2. 성능 영향: 더 많은 메모리 사용과 데이터의 복사로 인해 성능에 영향을 미칠 수 있다.

💟 파괴적 처리

괴적 처리는 원본 데이터를 직접 변경하는 방식. 원본 데이터 자체가 수정되며, 새로운 데이터를 생성하지 않는다.

*장점 :

  1. 메모리 효율성: 새로운 데이터를 생성하지 않기 때문에 메모리 효율이 높아진다.
  2. 성능 향상: 메모리 사용이 적고 데이터를 직접 수정하므로 성능에 이점을 줄 수 있다.

*단점 :

  1. 원본 데이터 손실: 원본 데이터가 변경되기 때문에, 필요에 따라 원본 데이터를 복원하기가 어려울 수 있다.
  2. 버그 발생 가능성: 원본 데이터를 변경하면서 예상치 못한 버그가 발생할 수 있다.
  3. 불변성 : 불변성 유지가 어렵다.

 

<추가미션>

① 비파괴적: strA의 내용이 바뀌지 않았다.

② 파괴적: arrayB의 내용이 바뀌었다.

③ 비파괴적: arrayC의 내용이 바뀌지 않았다.

④ 비파괴적: strD의 내용이 바뀌지 않았다.