자바스크립트 비파괴적, 파괴적 처리

박은정·2021년 7월 18일
0
post-thumbnail

자바스크립트는 자료처리를 위해 다양한 연산자, 함수, 메소드를 제공한다
자료 처리 연산자, 함수, 메소드는 처리 후 원본의 상태 변화에 따라
비파괴적 처리파괴적 처리 로 구분이 가능하다

  • 비파괴적 처리 : 처리 후 원본 내용이 변경되지 않는다
  • 파괴적 처리 : 처리 후 원본 내용이 변경된다

비파괴적 처리

+ 연산자를 이용해 문자열을 연결하는 경우
a와 b를 연결해 c를 만든 후에 a와 b를 살펴보면 원본 내용이 변하지 않는다

> const a = "Hello"
> const b = "JavaScript"

> const c = a + b // 문자열 연결처리

> c
// 'Hello JavaScript'

> a
// 'Hello'

> b
// 'JavaScript'

파괴적 처리

배열의 메소드들은 원본이 변경된다

> const array = ['사과', '배', '바나나']

> array.push('귤')
// 4

> array
// (4) ['사과', '배', '바나나', '귤']

과거에는 컴퓨터 메모리가 많이 부족해서 프로그래밍 언어와 라이브러리는 최대한 메모리를 절약해서 사용하는 방식으로 설계되었다.
그래서 결과가 기본 자료형이면 메모리를 조금만 차지해서 → 원본과 결과를 모두 메모리에 저장해도 크게 무리가 없었다
하지만 배열처럼 크기가 어느 정도인지 모르는 대상의 원본과 결과를 모두 메모리에 저장하는 것은 위험했기에
배열과 같이 거대해질 수 있는 자료는 메모리를 절약할 수 있게 대부분 파괴적 처리로 이루어졌다.

메모리 절약이 가능하지만, 원본이 사라지기에 위험하다
그래서 메모리가 여유로운 현대의 프로그래밍 언어와 라이브러리 는 자료보호를 위해 대부분 비파괴적 처리를 한다

어떠한 처리가 파괴적인지 비파괴적인기 구분하는 방법은 코드를 여러 번 실행하면서 외우는 방법밖에 없다
이러한 이유로 대학교 시험이나 회사 면접에서 어떠한 처리인지 묻는 문제는 많이 출제되니
개념을 기억해두었다가 프로그램을 만들 때마다 쓰임을 익히는 것이 좋다

profile
새로운 것을 도전하고 노력한다

0개의 댓글