메모이제이션 (Memoization) 메모이제이션 (Memoization) 이란 이름대로 메모 를 하는 것이 특징인데, 프로그래밍에서 반복되는 결과를 메모리에 저장 해놓고 다음에 같은 결과가 나올 때 다시 계산할 필요없이 빨리 실행 하는 기법이다. 마치 캐싱 과 같은 기능이라고 할 수 있다. JavaScript에서는 클로저 를 통해 계속 유지되는 저장공간을 만들 수 있기 때문에, 이것을 이용하면 메모이제이션 패턴을 구현할 수 있다. 메모이제이션 예시 만약 일반적인 재귀함수로 피보나치 수열 을 계산하는 함수를 구현하려고 한다면 다음과 같을 것이다. 피보나치 수열은 바로 앞 두 항의 합으로 이루어진 수열이다. 다음과 같이 진행된다. 0, 1, 1, 2, 3, 5, 8, 13, 21, ...... // 피보나..
커링(Currying) 커링 은 함수 하나가 n개의 인자를 받는 과정을 n개의 단일 인자 함수열로 만드는 것 을 말하며, 특히 함수를 재사용 할 때 유용하게 쓰이는 JavaScript의 함수형 프로그래밍 기법 중 하나다. 잠시 왜 함수형 JavaScript를 쓰는지 간단히 설명하자면, 반복을 최소화하고 간결하게 작성할 수 있기 떄문에 직관적이고 테스트하기 쉬운 코드를 구현할 수 있다는 강점이 있다. 실제로 커링 함수를 어떻게 작성해야 하는지 알아보자. function multiplyThree(x, y, z) { console.log(x * y * z); } multiplyThree(4, 5, 2); // 40 위와 같이 인자 3개를 받아 곱셈을 처리하는 multiplyThree 함수가 있다. 이 함수를 ..
이전에 JavaScript가 일급객체이기 때문에 할 수 있는 것 몇 가지를 나열한 적이 있다. 그 중 다음과 같은 항목이 있다. 'Javascript의 클로저(closure) 를 사용해 커링(currying) 과 메모이제이션(memoization) 이 가능하다' 위 문장 안에는 총 세 가지의 개념이 들어있는데, 우선 JavaScript에서 가장 중요한 개념 중 하나인 클로저(Closure) 에 대해 정리해보려고 한다. 클로저(Closure) 클로저는 매우 다양하게 정의되는데, 제일 간단히 설명하자면 함수내에서 작성된 함수 라고 할 수 있다. 일반적으로 함수 내에서 익명함수 형태로 내부함수를 정의하고 리턴하여 외부함수 바깥에서 사용한다. 하지만 이것만으로 클로저를 설명하기엔 부족한 것 같아 ..
- Total
- Today
- Yesterday
- 리스본 대성당
- 스코프체인
- 문어스테이크
- 버블링
- 리스본
- klm
- tapabento
- 절벽마을
- 에어프랑스
- 카보다로카
- 스코프
- vinhoverde
- 포르티망
- 디바스드림
- 클레리구스성당
- JavaScript
- 베나길
- 아제냐스두마르
- 비뉴베르드
- 알부페이라
- 포르투
- 포르토
- chama
- 베나길동굴
- 클로저
- 절벽트래킹
- 헤갈레이라저택
- 신트라투어
- 수하물분실
- 이벤트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |