자바스크립트 즉시 실행 함수(IIFE): 클로저 문제 해결 및 스코프 관리
반복문과 비동기 코드에서 발생하는 클로저 문제
자바스크립트에서 반복문 내에 비동기 작업을 포함할 때, 특히 var 키워드로 선언된 변수를 사용할 경우 흔히 예상치 못한 동작을 마주하게 됩니다. 이는 변수가 반복문의 마지막 값으로만 참조되는 클로저(Closure) 문제입니다.
예를 들어, 다음 코드를 살펴보겠습니다. 여러 지연된 메시지를 출력하려 하지만, 모든 메시 ...
7월 21일 01:18에 게시됨
Promise 상태 전이 구현하기
자체 구현된 Promise의 상태 변화 처리
실제로 Promise를 직접 구현하면서 상태 전이 로직을 어떻게 설계할지 고민해보겠습니다. 먼저 공식 문서에 정의된 Promise의 동작 방식을 분석해 보고, 이를 바탕으로 자신의 클래스를 설계합니다.
// 공식 Promise 사용 예시
new Promise((resolve, reject) => {
resolve(1);
});
이 코드에서 알 수 있듯이 Promise는 자바스 ...
7월 14일 06:43에 게시됨
커링과 팩토리 함수, JS 프론트엔드 개발 활용법
1. 커링(Currying)의 실제 활용
커링은 여러 인자를 받는 함수를 하나의 인자를 받는 함수들의 체인으로 변환하는 기법입니다. 코드 재사용성과 지연 실행(lazy evaluation)을 가능하게 합니다.
활용 1: 공통 파라미터 고정을 통한 API 클라이언트 생성
// 일반적인 fetch 함수
function request(baseUrl, path, query) {
const params = new URLSearchParams(query).to ...
6월 28일 19:11에 게시됨
자바스크립트 핵심 개념
객체 기초 이해
객체 생성 방식
const newObject = new Object()
속성 정의 방법
const vehicle = new Object()
vehicle.brand = 'Yamaha'
vehicle.model = 'V-Star Silverado 1100'
vehicle.year = 2005
vehicle.purchaseDate = new Date(2005, 3, 12)
객체 속성은 초기화 단계에서 명시적으로 선언할 필요가 없으며, 할당 시 자동으로 생성된다.
객체는 속성 집합으로 ...
6월 17일 00:31에 게시됨
Rust에서의 오류 처리와 모듈 리팩터링
이전 장에서는 명령행 인터페이스를 갖는 간단한 텍스트 검색 도구인 미니 버전의 grep을 구현하기 시작했습니다. 이 프로그램은 주어진 파일 내에서 특정 문자열을 찾는 기능을 수행합니다. 현재까지 작성된 코드는 기본적인 동작은 하지만, 여전히 예외 상황에 대한 처리가 부족한 상태입니다.
문제점: 잘못된 입력 처리
현재 프로그램은 사용자가 정확히 ...
6월 10일 18:21에 게시됨
Python 네임스페이스 스코프와 함수 객체 활용
스코프는 네임스페이스가 효력을 발휘하는 범위를 의미합니다. 파이썬에는 내장 네임스페이스, 전역 네임스페이스, 지역 네임스페이스가 존재합니다.
내장 네임스페이스: 프로그램의 어떤 시점, 어떤 위치에서든 접근 가능합니다.
전역 네임스페이스: 프로그램 전체에서 접근 가능합니다.
지역 네임스페이스: 일반적으로 해당 지역(함수 내부 등)에서만 유효 ...
6월 8일 22:43에 게시됨