고로시롤의 성능 문제를 개선하기 위해 병렬 처리를 적용하고, 그 과정에서 발생한 Riot Games API 규칙 준수 문제를 해결했습니다. 이 글은 RateLimiter 를 통해 외부 API 규칙을 준수하는 방법에 대해 소개합니다.
동기 처리와 비동기 처리 함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 실행된다. 이때 생성된 함수 실행 컨텍스트는 실행 컨텍스트 스택(콜 스택)에 푸시되고 함수 코드가 실행된다. 함수 코드의 실행이 종료되면 콜 스택에서 팝되어 제거된다. 자바스크립트 엔진은 단 하나의 실행 컨텍스트 스택을 갖는다. 자바스크립트 엔진은 한 번에 하나의 ...
호출 스케줄링 함수를 일정 시간이 경과된 이후 호출되도록 함수 호출을 예약하려면 타이머 함수를 사용한다. 이를 호출 스케줄링이라 한다. 타이머 생성 함수: setTimeout, setInterval 타이머 제거 함수: clearTimeout, clearInterval 타이머 함수는 호스트 객체이다. > ECMAScript 사양에는 정의되어 있지 않지...
이벤트 드리븐 프로그래밍 이벤트와 그 이벤트에 대응하는 함수를 통해 사용자와 애플리케이션은 상호작용을 할 수 있다. 이와 같이 프로그램의 흐름을 이벤트 중심으로 제어하는 프로그래밍 방식을 이벤트 드리븐 프로그래밍이라 한다. click, keydown, focus 등 브라우저는 어떤 동작이 발생하면 이를 감지해 이벤트를 발생시킨다. 애플리케이션이 특...
Math 는 생성자 함수가 아니다. 표준 빌트인 객체인 Math 정적 프로퍼티와 정적 메소드만 제공한다. Date 는 빌트인 객체이면서 동시에 생성자 함수다.
베이직 과정은 개발자에게 중요한 역량인 문제 해결력이 무엇인지 경험할 수 있도록 만들어진 과정이다. 2주 동안 문제를 정의하고 설계하는 연습을 하며, 문제를 해결하며 성장할 수 있는 기회를 제공한다.
순환 종속성은 두 클래스가 각자에 의존할 때 발생한다. Nest.js 에서는 모듈과 모듈사이 혹은 프로바이더와 프로바이더 사이에서 발생할 수 있다.
표준 빌트인 객체인 Number 객체는 생성자 함수 객체다. 따라서 new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다.
ES6 이전까지 자바스크립트의 함수는 별다른 구분 없이 사용되었다. 즉, ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있으면서, 생성자 함수로서 호출할 수 있다. ES6 에서는 함수를 사용 목적에 따라 세가지 종류로 명확히 구분한다.
자바스크립트는 클래스가 필요하지 않은 프로토타입 기반 객체지향 언어이다. ES6 에서는 클래스가 도입되었으며, 클래스 기반 객체지향 프로그래밍 언어와 흡사한 새로운 객체 생성 메커니즘을 제공한다.
providers 는 Nest 의 기본 개념이다. services, respositories, factories, helpers 등이 모두 providers 이다. 주요 아이디어는 종속성으로 주입될 수 있다는 것이다.
Nest.js의 요청 생명주기는 요청 → 미들웨어 → 가드 → 인터셉터 → 파이프 → 인터셉터 → 예외 필터 → 응답 순으로 이루어진다.
클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다. 외부 함수보다 중첩 함수가 더 오래 유지되는 경우 중첩 함수는 이미 생명 주기가 종료된 외부 함수의 변수를 참조할 수 있다. 이러한 중첩 함수를 클로저라고 부른다.
실행 컨텍스트는 자바스크립트의 동작 원리를 담고 있는 핵심 개념이다. 실행 컨텍스트를 바르게 이해하면 자바스크립트가 스코프를 기반으로 식별자와 식별자에 바인딩된 값을 관리하는 방식과 호이스팅이 발생하는 이유, 클로저의 동작 방식 등을 이해할 수 있다.