moment.js 소개, 사용법, 그리고 심화 이해
·
Programing/javascript
연관글 2025.04.24 - [Programing/javascript] - 자바스크립트 날짜 다루기: Date vs dayjs vs date-fns moment.js는 한때 자바스크립트에서 가장 널리 사용되던 날짜 및 시간 처리 라이브러리입니다. 간결하고 직관적인 API 덕분에 많은 개발자들이 사용했지만, 최근에는 파일 크기 및 성능 등의 이유로 dayjs, date-fns와 같은 대체 라이브러리로 옮겨가는 추세입니다. 그럼에도 불구하고 moment.js는 레거시 프로젝트나 일정 기능에서는 여전히 사용되기도 하므로 그 구조와 개념을 이해하는 것은 중요합니다.✅ moment.js란?날짜와 시간 관련 기능을 쉽게 처리할 수 있도록 설계된 JavaScript 라이브러리입니다.포맷팅, 파싱, 비교, 덧셈/뺄셈..
자바스크립트 날짜 다루기: Date vs dayjs vs date-fns
·
Programing/javascript
웹 애플리케이션에서 날짜와 시간을 다루는 작업은 매우 흔하지만, 자바스크립트의 기본 Date 객체만으로는 복잡한 날짜 계산이나 포맷 변경 등을 처리하기 까다롭습니다. 이를 보완하기 위해 등장한 라이브러리들이 dayjs, date-fns이며, 두 라이브러리는 moment.js의 대안으로 널리 쓰이고 있습니다.이 글에서는 자바스크립트에서 날짜를 다루는 세 가지 방법을 비교하고, 각각의 특징과 사용법을 예제로 정리합니다.✅ 기본 내장 객체: Dateconst now = new Date();console.log(now.toISOString()); // 현재 시간 ISO 포맷const specific = new Date("2024-04-01T12:00:00");console.log(specific.getFullY..
브라우저 저장소 정리: localStorage vs sessionStorage vs cookie
·
Programing/javascript
웹 애플리케이션은 사용자 상태를 유지하거나 설정 값을 저장하기 위해 클라이언트 측 저장소를 활용합니다. 대표적인 저장소로는 localStorage, sessionStorage, 그리고 cookie가 있으며, 각각의 특성과 용도에 따라 적절히 사용해야 성능과 보안 측면에서 이점을 얻을 수 있습니다.✅ 저장소 간 비교 요약구분localStoragesessionStoragecookie저장 위치브라우저브라우저브라우저 + 요청 시 서버 전송만료 시점수동 삭제 시까지 영구 저장탭(세션) 종료 시 삭제설정된 만료 시간 또는 세션 종료용량 제한약 5MB약 5MB약 4KB서버 전송 여부❌ 전송 안됨❌ 전송 안됨✅ 매 요청마다 함께 전송접근 방식JavaScriptJavaScriptJavaScript + HTTP보안 수준중..
자바스크립트 이벤트 위임(Event Delegation)과 성능 최적화
·
Programing/javascript
웹 페이지에서 많은 DOM 요소에 이벤트 리스너를 개별로 붙이면 성능 저하와 관리 복잡도가 발생할 수 있습니다. 이런 문제를 해결하는 효과적인 기법이 바로 이벤트 위임(Event Delegation)입니다. 이 글에서는 이벤트 위임의 개념, 장점, 실전 예제, 그리고 성능 최적화 포인트까지 정리합니다.✨ 이벤트 위임이란?자식 요소마다 개별적으로 이벤트를 붙이는 대신, 상위 요소에 이벤트 리스너를 등록하고 이벤트 버블링을 통해 처리하는 방식입니다.자바스크립트 이벤트는 기본적으로 버블링(Bubbling) 되므로, 상위 요소에서도 하위 요소에서 발생한 이벤트를 감지할 수 있습니다.📌 왜 이벤트 위임을 사용할까?성능 개선: DOM 요소가 많을수록 이벤트 핸들러를 줄일 수 있어 렌더링 효율 향상동적 요소 대응:..
자바스크립트 debounce와 throttle 차이 및 성능 최적화 예제
·
Programing/javascript
사용자 입력, 스크롤, 리사이즈 등 브라우저 이벤트는 짧은 시간에 여러 번 연속으로 발생하는 경우가 많습니다. 이런 경우, 무분별하게 이벤트 핸들러가 호출되면 성능 저하가 발생할 수 있습니다. 이를 방지하기 위해 자바스크립트에서는 debounce(디바운스)와 throttle(스로틀) 기법을 활용합니다.이 글에서는 두 개념의 차이점과 활용 예제를 정리합니다.✨ debounce란?연속된 이벤트 중 마지막 이벤트가 발생한 후 일정 시간 동안 아무 동작이 없을 때 한 번만 실행하는 방식입니다.📌 사용 시점검색창 자동완성입력창 유효성 검사창 크기 조절 이벤트 처리예제:function debounce(fn, delay) { let timer; return function(...args) { clearTi..
자바스크립트 IIFE 패턴(즉시 실행 함수 표현식)의 쓰임새와 모던 대안
·
Programing/javascript
자바스크립트의 IIFE(Immediately Invoked Function Expression)는 과거부터 변수 스코프를 보호하거나 초기화 코드를 실행할 때 자주 사용되던 패턴입니다. 최근에는 ES6 이후의 모듈 시스템과 블록 스코프 변수(let, const)로 인해 덜 사용되긴 했지만, 여전히 유용한 구조로 여겨지며 이해하고 있어야 할 중요한 문법입니다.✨ IIFE란?정의하자마자 즉시 실행되는 함수 표현식을 의미합니다.형식:(function() { // 코드 실행})();또는(() => { // 코드 실행})();✅ 왜 사용했을까?ES6 이전에는 var만 존재해 **함수 스코프(function scope)**를 만들기 위해 IIFE가 널리 사용되었습니다.예시 1: 변수 보호(function() { ..
자바스크립트 클로저(Closure)의 개념과 실전 활용 예제
·
Programing/javascript
자바스크립트를 공부하다 보면 반드시 마주하게 되는 개념 중 하나가 **클로저(Closure)**입니다. 클로저는 함수형 프로그래밍의 핵심이자, 자바스크립트의 유연하고 강력한 기능을 가능하게 하는 중요한 요소입니다. 이 글에서는 클로저의 정의부터 실전 예제까지 자세히 설명합니다.✨ 클로저란?클로저는 함수가 선언될 당시의 외부 변수 환경(스코프)을 기억하여, 함수 외부에서 해당 변수에 접근할 수 있는 기능을 말합니다.즉, 함수가 **자신이 선언된 렉시컬 환경(Lexical Environment)**을 기억하고, 그 환경에 있는 변수에 접근할 수 있게 해줍니다.🔍 가장 기본적인 예시function outer() { const name = "Alice"; function inner() { consol..
자바스크립트 비동기 처리 개념 정리(setTimeout, Promise, async/await)
·
Programing/javascript
자바스크립트는 기본적으로 싱글 스레드 언어입니다. 하지만 실제 웹 애플리케이션에서는 서버에서 데이터를 불러오거나, 타이머 등을 통해 비동기 작업을 자주 처리하게 됩니다. 이 글에서는 자바스크립트 비동기 처리의 기본 개념부터 대표적인 사용 방식인 setTimeout, Promise, async/await까지 단계별로 정리합니다.✨ 비동기 처리란?코드가 순차적으로 실행되지 않고, 결과가 나중에 도착하는 작업을 처리하는 방식입니다.대표적인 예: API 호출, 파일 읽기, 타이머, 이벤트 리스너⏳ setTimeout: 가장 기본적인 비동기 처리console.log("1초 후 실행 시작");setTimeout(() => { console.log("1초 후 실행됨");}, 1000);console.log("즉시 ..
자바스크립트 this 키워드 제대로 이해하기 (함수 / 객체 / 클래스에서)
·
Programing/javascript
자바스크립트의 this는 문맥(context)에 따라 다르게 동작하는 독특한 키워드입니다. 함수, 객체, 클래스 등 다양한 구조에서 this가 어떻게 달라지는지 제대로 이해하지 않으면 예기치 못한 결과를 초래할 수 있습니다. 이 글에서는 상황별 this의 의미와 사용법을 예제와 함께 설명합니다.✨ 전역 컨텍스트에서의 thisconsole.log(this); // 브라우저에서는 window, Node.js에서는 global전역에서의 this는 브라우저에선 window 객체를, Node.js에선 global 객체를 참조합니다.✨ 일반 함수에서의 thisfunction show() { console.log(this);}show(); // 브라우저 기준: window (strict 모드에서는 undefined..
자바스크립트 == vs === 비교 연산자의 차이와 올바른 사용법
·
Programing/javascript
자바스크립트에서 값을 비교할 때 가장 흔히 사용되는 연산자는 ==(느슨한 비교)와 ===(엄격한 비교)입니다. 이 둘은 겉보기에는 비슷하지만, 내부 작동 방식과 비교 결과는 전혀 다를 수 있습니다. 잘못 사용하면 의도치 않은 버그로 이어질 수 있기 때문에, 정확한 차이를 이해하고 상황에 맞게 사용하는 것이 중요합니다.✨ == (느슨한 동등 연산자)타입 변환을 허용함 (type coercion)비교 전에 두 값의 타입이 다르면 자동으로 형 변환 후 비교예시:'5' == 5 // true → 문자열 '5'가 숫자 5로 변환됨0 == false // true → false는 0으로 변환됨null == undefined // true → 둘은 느슨한 비교에서만 같음[] == '' /..