Memo

Memo

순수함수란 무엇인가? (Side Effect)

순수함수는 함수형 프로그래밍에서 많이 사용되는 개념으로, 오직 함수의 입력만이 함수의 결과에 영향을 주는 함수를 의미합니다. 순수함수가 되기 위해서는 사이드 이팩트가 없어야 합니다. Side Effect란? 함수의 입력 외에도 함수의 결과에 영향을 미치는 요인을 말합니다. 대표적으로 네트워크 요청, API 호출이 Side Effect 입니다. 자바스크립트에서 순수함수를 만들기 위해서는 데이터의 불변성을 유지하는 것이 중요합니다. 함수의 전달인자로 참조 자료형이 전달되는 경우, 의도치 않게 해당 객체 자체를 바꾸는 사이드 이펙트를 만들 수 있는데, 이는 해당 데이터의 불변성을 손상시킬 수 있습니다. 그래서 배열의 불변성을 보장하는 map, filter, reduce 등을 많이 사용합니다.

Memo

배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유

const는 상수, 즉 변하지 않는 값을 갖는 변수를 선언할 때 사용합니다. let과 다르게 const는 재할당을 할 수 없다는 특징을 가지고 있는데, 그럼에도 불구하고 const로 선언한 배열과 객체의 요소나 속성을 추가할 수 있는 이유는 배열과 객체가 참조자료형이기 때문입니다. 참조자료형은 변수에 값이 아닌 주소를 할당하기 때문에, const 키워드로 선언 및 할당을 하더라도 해당 변수에는 해당 배열과 객체의 주소만 담겨 있기 때문에 요소나 속성을 추가할 수 있습니다.

후끈후끈
'Memo' 카테고리의 글 목록