클로저 (2) 썸네일형 리스트형 <JS> 클로저에 대한 고찰 (소개 / 활용 / 단점 / 메모리) 1. 소개 * 배경 - 최근 기업 면접을 다니며 가장 자주 받은 질문 중 하나가 클로저에 대한 질문이었다. 간단하게만 묻고 넘어가는 기업도 있었지만 내가 어디까지 생각해봤는지 물어보는 기업도 있었다. 그래서 클로저가 무엇인지부터 시작해서 깊이 있게 고찰해보려 한다. * 클로저란 - 클로저는 외부 변수를 기억하고 이 외부 변수에 접근할 수 있는 함수를 의미한다. 자바스크립트의 렉시컬 환경은 외부 렉시컬 환경을 가리키는 outer 가 존재한다. - 알다시피 자바스크립트는 렉시컬 스코프를 따르므로 식별자가 현재 스코프에 존재하지 않으면 선언된 위치를 기준으로 외부 환경에서 해당 변수를 찾는다. - 결과적으로 자바스크립트의 함수는 모두 클로저이다. function func() { const x = 10; ret.. < FP > 함수형 프로그래밍이란? 1. 함수형 프로그래밍(FP) * 소개 - 최근 프로그래밍 패러다임은 크게 명령형 프로그래밍과 선언형 프로그래밍으로 나뉜다. - 명령형 프로그래밍 : 어떻게 할 것인지를 설명하는 방식으로 절차지향 프로그래밍과 객체지향 프로그래밍이 있다. - 선언형 프로그래밍 : 무엇을 할 것인지를 설명하는 방식으로 함수를 조합하여 SW를 만드는 함수형 프로그래밍이 있다. - 함수형 프로그래밍은 자료처리를 수학적 함수의 계산으로 표현하려 한다. f(x) 와 같은 것을 생각하면 좋겠다. * 의미 - 함수형 프로그래밍은 거의 모든 것을 순수함수로 나누어 문제를 해결하려한다. 이를 통해 가독성을 높이고, 유지보수를 용이하게 한다. - 함수형 프로그래밍의 가장 큰 특징은 순수함수, 1급함수, 불변성, 참조 투명성이다. 이들은 아.. 이전 1 다음