본문 바로가기
혼공학습단 11기(完)

[혼공스] 3주차 미션

by jaeheon0520 2024. 1. 16.

어느새 3주차를 마무리하는 시점이 되었다.

 

하루에 5장 정도씩 보던 게 어느새 이만큼 쌓였구나 싶기도 하고

 

방학이 금방 흘러가고 있는 것 같아 불안한 마음도 있는 것 같다.

 

불안한 마음이 들 때마다 혼공단을 처음 시작할 때 보았던 문구가 떠올라 마음을 다잡게 된다.

 

불안이 차곡차곡 쌓이지 않게 오늘은 오늘의 불안을, 내일은 내일의 불안을 정리하자!

 

(공부한 내용 정리는 '혼공학습단' 카테고리를 확인하시면 되겠습니다.)

 

기본 미션

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

 

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

 

비파괴적 처리와 파괴적 처리의 의미?

 

  • 비파괴적 처리(non-destructive):
    → 처리 후에 원본 내용이 변경되지 않는 연산자, 함수, 메소드
    → 원본과 결과가 모두 메모리에 존재한다.
    → 메모리가 여유로운 현대 프로그래밍 언어와 라이브러리는 자료 보호를 위해 대부분 비파괴적 처리를 한다.
  • 파괴적 처리(destructive):
    → 처리 후에 원본 내용이 변경되는 연산자, 함수, 메소드
    → 1995년경에는 컴퓨터 메모리가 많이 부족해 배열처럼 크기가 어느 정도인지 모르는 대상의 원본과 결과를 모두 메모리에 저장하는 것은 위험할 수 있었다. 그래서 배열과 같이 크기가 거대해질 수 있는 자료는 메모리를 절약할 수 있게 대부분 파괴적 처리로 이루어졌다.

 

비파괴적 처리의 장점과 단점 정리

 

  비파괴적 처리 파괴적 처리
장점 자료의 원본을 보호할 수 있다 메모리 절약
단점 메모리가 낭비될 수 있음 원본이 사라지기 때문에 위험할 수 있다

 

학교 강의 시간에 관련된 내용을 중요하게 다뤘었는데 이번 미션에서 간단하게 복습하고 넘어가면 좋을 것 같다.

원본이 변경되는 파괴적 처리는 사용을 지양해야 한다고 배웠다. 꼭 파괴적 처리 방법을 사용해야 한다면 스프레드 연산자(...)를 이용하여 사본을 만들어 활용하자. 배열을 다룰 때는 아래 고차함수를 활용하자.

 

*고차함수(Higher order function): 하나 이상의 함수를 인자로 취하거나, 함수를 결과로 반환하는 함수

 

위 고차함수를 이용하여 Array 를 다루는 방법에 익숙해지도록 하자. (이 방법에 익숙해지지 않으면 실무에 투입되었을 때 많이 고생하게 될 것이라고 하셨다.)

 

선택 미션

p.173 확인 문제 3번 문제 풀고, 풀이 과정 설명하기

 

문제: 다음 표시된 함수들이 파괴적 처리를 하는지 비파괴적 처리를 하는지 구분해 맞는 것에 O 표시하세요.

 

[파괴적 처리 / 비파괴적 처리]

 

풀이: 문자열 strA의 원본 내용이 바뀌지 않았으므로 split() 메소드는 비파괴적 처리이다.

 

 [ 파괴적 처리 / 비파괴적 처리]

 

풀이: 배열 arrayB의 원본 내용이 변경되었으므로 push() 메소드는 파괴적 처리이다.

 

 [파괴적 처리 / 비파괴적 처리 ]

 

풀이: 배열 arrayC의 원본 내용이 바뀌지 않았으므로 map() 메소드는 비파괴적 처리이다.

 

 [파괴적 처리 / 비파괴적 처리 ]

 

풀이: 문자열 strD의 원본 내용이 바뀌지 않았으므로 trim() 메소드는 비파괴적 처리이다.

'trim()' 메서드는 문자열의 양쪽 끝에서 공백(공백, 탭, 줄바꿈)을 제거하는 문자열 메서드이다.

 

마무리

학교 교수님께서도 파괴적 처리와 비파괴적 처리에 대해서 굉장히 강조하고 넘어가셨는데 다시 만나서 반가웠다!

 

기본 미션, 선택 미션이 모두 관련 내용일 만큼 이번 주차에서 중요한 개념이었다.

 

실무에서뿐만 아니라 기술 면접에서도 물어볼 만한 내용이니 틈틈이 복습하도록 해야겠다.

 

다음 주부터 본격적으로 어려운 내용이 등장하는 것 같은데 정신 바짝 차리고 가자!

 

오늘 하루도 쌓였다.