728x90
728x90
웹 애플리케이션 개발에서 비동기 요청을 중간에 취소해야 하는 상황은 종종 발생한다.예를 들어, 검색창에 입력할 때마다 API 요청을 보내는데 사용자가 입력을 빠르게 바꾼다면, 이전 요청은 불필요하게 서버 리소스를 차지하게 된다.이런 경우 AbortController를 사용하면 깔끔하게 해결할 수 있다. AbortController란?AbortController는 브라우저에서 제공하는 Web API 중 하나로, fetch와 같은 비동기 작업을 명시적으로 취소할 수 있도록 지원한다.AbortController 객체는 signal 속성을 가지고 있으며, 이 signal을 비동기 요청에 전달하면, 컨트롤러에서 취소 명령(abort())을 내릴 수 있다. 기본 사용 예시const controller = new A..
JavaScript에서 Symbol은 고유한 식별자를 만들 때 사용되는 원시 타입이다.ES6(ECMAScript 2015)에서 도입되었으며, 객체의 키로 사용하거나 고유한 값이 필요할 때 활용할 수 있다.그런데 Symbol에는 두 가지 생성 방식이 있다.Symbol()과 Symbol.for()가 있는데,각각 어떨 때 사용할 수 있을지 알아보았다.Symbol() 기본 개념const a = Symbol("desc");const b = Symbol("desc");console.log(a === b); // falseSymbol("desc")를 호출하면 매번 새로운 심볼이 생성된다비록 설명 문자열(desc)이 같더라도, 실제 심볼 값은 서로 다르다.따라서 동일한 설명을 가진 심볼을 여러 번 생성해도 전혀 같은 ..
## 파트2 - chapter 1🍋 부록 B는 연습문제주어진 구문에서 접근 가능한 변수를 JS 엔진이 어떻게 결정하나?이름이 같은 두 변수의 경우 어떻게 처리되나?위의 두 질문에 대답하기 위해서 스코프를 잘 알아야 한다 👍JS는 일반적으로 스코프 언어, 따라서 실행 전 파싱 및 컴파일이 일어남 (위에서 아래로 실행되지만)스코프 규칙은 컴파일 단계에서 결정되고, 런타임에서는 잘 변경되지 않는다 🍣JS에서 함수는 일급값 (함수는 어디서 호출되던 정의할 때 결정된 스코프를 따름 -> 클로저)모듈은 코드 정리를 위한 디자인 패턴. 스코프를 통해 제한된 변순나 함수를 설정할 수 있고 접근할 수도 있다. 고전 컴파일러 이론1단계 토크나이징/렉싱 -> 2단계 파싱 -> 3단계 코드 생성 (AST to Code)..
### 부록 AJS는 값 할당 과정에서 값/참조 어떤 것을 넣게 할지 선택할 수 없다.값의 타입에서 값/참조 할당이 정해진다원시타입 -> 값 복사 할당객체값 -> 참조 할당JS의 이런 작동방식은 변경 불가능하다. 익명 함수를 변수에 선언했을 때 JS는 해당 익명 함수의 이름을 추론한다.따라서 익명 함수도 이름이 있을 수 있다다만, 추론으로 이름을 가져도 익명함수는 익명함수이고 익명함수로 재귀 함수를 구현하면 문제가 발생할 여지가 있다.다만, 함수에는 역할이 있고 해당 역할을 표현하는 이름을 지어주는 것이 더 효과적이다.화살표 함수는 사실 특수한 목적을 지닌 함수 (this 키워드가 참조하는 렉시컬 환경을 핸들링하기 위함)클래스/객체 리터럴을 정의할 때 생성된 함수를 매서드라고 부르는데, JS에서 매서드와..
## chapter 4 함수나 블록 단위로 변수의 스코프를 한정짓는 것은 프로그래밍 언어의 기본스코프 안에는 다른 스코프가 올 수 있고, 해당 스코프에서는 해당 스코프 및 바깥 스코프 레벨의 변수만 접근할 수 있다.안쪽 스코프나 숨겨진 변수는 접근 불가능위와 같은 스코프를 렉시컬 스코프라고 한다 🎶 JS의 스코프는 특이점이 두 가지 있는데 호이스팅과 var이다.var 변수는 블록 위치와 관계 없이 함수 기준으로 스코프가 생성된다.var가 아닌 let, const는 TDZ 특징 때문에 특이하게 작동클로저는 JS와 같이 함수를 first class value로 취급하는 언어에서 렉시컬 스코프 모델을 사용했을 때 나타나는 자연스러운 결과물바깥 스코프에 있는 변수를 참조하는 함수가 있는 경우, 이 함수가 변수..
## chapter 3이터레이터 디자인 패턴은 데이터를 일정 단위로 쪼개고 점진적으로 처리한다는 아이디어다.next() 메서드가 있는 게 이터레이터 패턴의 대표적인 예인데, next를 호출하면 쪼개진 단위로 다음 데이터를 불러온다.더 이상 불러올 데이터가 없으면 예외를 발생시킨다.이터레이터 패턴의 핵심은 데이터를 처리할 때 표준화된 방법을 제공한다는 점이다.JS에서 이터레이터 패턴은 ES6에 추가되어 next() 메서드는 이터레이터 result 라 불리는 객체를 반환하고 해당 객체 내부에는 done과 value가 있어야 한다고 정의된다.반복 작업이 안끝나면 done은 false다for of 문법으로 이터레이터 result 객체를 소비할 수 있다... 같은 전개구문, 나머지 매개변수로도 소비 가능하다. 이..