혼공단

혼자 공부하는 자바스크립트 3주차 Chapter 04

Hocube 2024. 7. 18. 15:45
반응형

[기본 미션] 비파괴적 처리와 파괴적 처리의 의미와 장단점 설명하기

자바스크립트는 자료 처리를 위해서 다양한 연산자, 함수, 메서드를 제공한다.

자료 처리 연산자, 함수, 메서드는 크게 비파괴적 처리파괴적 처리로 구분할 수 있다.

처리 후 원본의 상태 변화에 따라 구분한다.

 

 

1. 파괴적 처리 : 처리 후에 원본 내용이 변경 된다.

// 변수 선언
const array = ["강아지", "토끼", "고양이"]

// 배열 맨 뒷 부분에 "말" 추가
array.push("말")
4

// 원본(array) 내용이 변경되었다.
array
(4) ["강아지", "토끼", "고양이", "말"]
장점 : 메모리가 절약된다.
단점 : 원본이 사라지기 때문에 오류가 났을 때 위험할 수 있다.

 

과거에는 컴퓨터 메모리가 부족해 프로그래밍 언어와 라이브러리들은

최대한 메모리를 절약해서 사용하는 방식으로 설계가 되었다.

 

배열처럼 크기가 어느정도인지 모르는 대상의 원본과 결과를 모두 메모리에 저장하는 것은 위험할 수 있다.

그래서 배열처럼 거대해질 수 있는 자료는 메모리를 절약할 수 있게 대부분 파괴적 처리로 이루어졌다.

 

 

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

// 변수 선언
const a = '혼자공부하는'
const b = '자바스크립트'

// 문자열을 연결
const c = a + b

c
"혼자공부하는자바스크립트"

// 원본 내용이 변경되지 않았다.
a
"혼자공부하는"
b
"자바스크립트"

 

장점 : 원본을 저장하기 때문에 자료 보호를 할 수 있다.
단점 : 메모리를 절약할 수 없다

 

메모리가 여유로운 현대의 프로그래밍 언어와 라이브러리는 자료 보호를 위해서 대부분 비파괴적 처리를 한다.

 

 

 

[선택 미션] p. 173 확인 문제 3번 문제 풀고, 풀이 과정 설명하기

다음 표시된 함수들이 파괴적 처리를 하는지 비파괴적 처리를 하는지 구분하시오.

 

p.173 확인 문제 3번

 

① 비파괴적 처리 - 원본 문자열이 변하지 않았다.

② 파괴적 처리 - push() 함수를 사용해 맨 뒷부분에 "감"을 추가하였기 때문에 원본 내용이 변경되었다.

③ 비파괴적 처리 - 원본 문자열이 변하지 않았다.

④ 비파괴적 처리 - 원본 문자열이 변하지 않았다.

반응형