기본 콘텐츠로 건너뛰기

라벨이 javascript인 게시물 표시

[ES6] JavaScript Rest 파라미터 완전 정리: 가변 인자 처리와 Spread 차이

[ES6] JavaScript Rest 파라미터 완전 정리: 가변 인자 처리와 Spread 차이 AI 생성 이미지: [ES6] JavaScript Rest 파라미터 완전 정리: 가변 인자 처리와 Spread 차이 이 문서는 "[ES6] JavaScript Rest 파라미터 완전 정리: 가변 인자 처리와 Spread 차이"를 중심으로, 함수에 전달되는 가변 인자를 안전하고 명확하게 다루는 방법을 설명합니다. 예전의 arguments 대신 ES6의 Rest 파라미터(Rest Parameter) 를 사용하면, 전달된 값들을 정확한 배열 로 받아와 표준 배열 메서드로 쉽게 처리할 수 있습니다. 📚 목차 1. Rest 파라미터 기본 정의 및 문법 2. 사용 예시: 가변 인자 합계 계산 3. Rest 파라미터 vs Spread 연산자 차이 4. 정리 및 실무 팁 1. 📌 Rest 파라미터 기본 정의 및 문법 간단히 말해 Rest 파라미터는 함수 선언에서 식별자 앞에 점 세 개( ... )를 붙여 남은 모든 인자를 하나의 배열 로 묶는 문법입니다. "[ES6] JavaScript Rest 파라미터 완전 정리: 가변 인자 처리와 Spread 차이"의 핵심은 이 배열을 어떻게 안전하게 다루느냐에 있습니다. Rest 파라미터 문법 function myFunc(...rest) { ...

JavaScript로 첨부파일 확장자 검사하기

JavaScript로 첨부파일 확장자 검사하기 AI 생성 이미지: JavaScript로 첨부파일 확장자 검사하기 🤖 AI 웹 서비스용 파일 업로드 보안 구현 AI 기반 웹 애플리케이션에서는 사용자가 생성한 AI 결과물 이나 LLM 분석 파일 을 업로드하도록 허용하는 경우가 많습니다. 이때 클라이언트 검증 없이 파일을 수신하면 .jsp , .exe 같은 실행 파일이 서버에 저장되어 보안 사고로 이어질 수 있습니다. 다음 예제는 결과 파일을 안전하게 제한하기 위한 간단한 프런트엔드 검사입니다. PDF, TXT, CSV 같은 형식만 허용하고 그 외 확장자는 차단합니다. 이 페이지는 JavaScript로 첨부파일 확장자 검사하기 목적에 맞춘 실용적 예제를 제공합니다. 🧠 코드 예제 const MSG_FILE_EXT_INVALID = "{0} 형식의 파일은 업로드할 수 없습니다."; const ALLOWED_EXT = ["pdf", "txt", "csv", "json"]; const BLOCKED_EXT = ["jsp", "php", "exe", "dll", "asp", "aspx", "js", "bat"]; function validateAIUpload(files) { for (let i = 0; i 🧩 업로드 폼 예제 <form id="uploadForm" onsubmit="return false;"> <h4>AI 모델 결과 파일 업로드</h4> <input type="file" id...

JavaScript로 1부터 n까지 합 구하기 – 가우스 공식 n(n+1)/2 완전 정리

JavaScript로 1부터 n까지 합 구하기 – 가우스 공식 n(n+1)/2 완전 정리 AI 생성 이미지: JavaScript로 1부터 n까지 합 구하기 – 가우스 공식 n(n+1)/2 완전 정리 이 글은 JavaScript로 1부터 n까지 합 구하기 – 가우스 공식 n(n+1)/2 완전 정리라는 주제로, 반복문 없이 빠르게 합을 계산하는 방법을 정리합니다. 단순한 덧셈 루프 대신 초등 수학에서 자주 쓰이는 가우스 공식 n(n + 1) / 2 를 적용하면 코드가 더 간결하고 실행도 훨씬 효율적입니다. 📚 목차 1. 1부터 n까지 정수 합 공식 (가우스 공식) 2. JavaScript 예제 코드 3. HTML + 자바스크립트로 합계 계산기 만들기 4. 마무리 및 응용 아이디어 1. 1부터 n까지 정수 합 공식 (가우스 공식) 가우스가 알려준 방법 하나로 1부터 n까지의 합을 정확히 구할 수 있습니다. 합 = 1 + 2 + 3 + ... + n = n(n + 1) / 2 예시를 보면 이해가 빠릅니다. 1부터 10까지의 합: 10 × 11 / 2 = 55 1부터 100까지의 합: 100 × 101 / 2 = 5050 실무에서는 이 공식을 그대로 JavaScript에 적용하면 처리 속도와 코드 가독성 모두 이득입니다. JavaScript로 1부터 n까지 합 구하기 – 가우스 공식 n(n+1)...

웹 페이지의 가시성 상태 감지하기 - Visibility API를 활용한 자바스크립트 코드 설명

웹 페이지의 가시성 상태 감지하기 - Visibility API를 활용한 자바스크립트 코드 설명 AI 생성 이미지: 웹 페이지의 가시성 상태 감지하기 - Visibility API를 활용한 자바스크립트 코드 설명 웹에서 실행되는 페이지가 화면에 보이는지 아닌지를 판별하는 방법을 다룹니다. 이 글, 웹 페이지의 가시성 상태 감지하기 - Visibility API를 활용한 자바스크립트 코드 설명 은 Visibility API의 핵심 동작과, 이를 이용해 불필요한 리소스 사용을 줄여 성능을 개선하는 실무 팁을 제공합니다. 간단한 이벤트 기반 접근으로 배터리나 CPU 사용량을 절감할 수 있습니다. 1. 🛠️ 가시성 상태 감지 JavaScript 코드 "visibilitychange" 이벤트를 이용하면 탭 전환이나 창 최소화 등으로 페이지가 보이는지 숨겨졌는지를 실시간으로 감지할 수 있습니다. 이 섹션은 웹 페이지의 가시성 상태 감지하기 - Visibility API를 활용한 자바스크립트 코드 설명 에서 바로 적용 가능한 기본 예제를 보여줍니다. JavaScript 기본 감지코드 document.addEventListener("visibilitychange", () => { // 상태가 변경될 때마다 document.visibilityState 값을 확인 console.log("현재 페이지 상태:", document.visibilityState); }); 2. 🔍 코드 및 속성 설명 2-1. 이벤트 리스너 설명 document.addEventListener("visibilitychange", ...) : 탭 활성화...

[...new Set(arr)]로 JavaScript 배열 중복 제거하는 가장 간단한 방법

[...new Set(arr)]로 JavaScript 배열 중복 제거하는 가장 간단한 방법 AI 생성 이미지: [...new Set(arr)]로 JavaScript 배열 중복 제거하는 가장 간단한 방법 JavaScript로 배열을 다룰 때는 중복 요소를 제거 해야 할 일이 흔히 생깁니다. API 응답이나 폼 입력, 로그 데이터 같은 곳에서 동일한 값이 반복되면 집계나 렌더링 로직에 오류가 발생할 수 있습니다. 실무에서는 [...new Set(arr)]로 JavaScript 배열 중복 제거하는 가장 간단한 방법을 우선적으로 고려하는 경우가 많습니다. 이 글에서는 Set을 사용하는 간단한 패턴 과 filter()와 indexOf를 조합한 패턴 을 중심으로, 각각의 동작 원리와 장단점을 실무 관점에서 정리합니다. 1. Set을 활용한 배열 중복 제거 Set 은 중복을 허용하지 않는 컬렉션 입니다. 배열을 Set으로 바꾸면 중복 항목이 즉시 제거됩니다. 그런 다음 다시 배열로 변환하면 중복이 제거된 새로운 배열을 얻습니다. 간단하고 성능도 합리적입니다. 사실 [...new Set(arr)]로 JavaScript 배열 중복 제거하는 가장 간단한 방법은 바로 이 흐름을 말합니다. 1-1. 기본 예제 const arr = [1, 2, 3, 3, 4, 5, 5]; const uniqueArr = [...new Set(arr)]; console.log(uniqueArr); // [1, 2, 3, 4, 5] 위 예제는 new Set(arr) 로 중복을 제거하고, 전개 연산자 ... 로 다시 배열로 풀어냅니다. 결과적으로 uniqueArr 에는 중복이 제거된 값만 남습니다. 코드가 매우 직관적이라 유지보수가 쉽습니다. ...

[AI Tech] jQuery와 GPT로 테이블 짝수 행 스타일 자동화하기

[AI Tech] jQuery와 GPT로 테이블 짝수 행 스타일 자동화하기 AI 생성 이미지: [AI Tech] jQuery와 GPT로 테이블 짝수 행 스타일 자동화하기 🤖 [AI Tech] jQuery와 GPT로 테이블 짝수 행 스타일 자동화하기 반복되는 UI 작업을 줄이기 위해 개발 현장에서는 자동화 도구와 간단한 스크립트를 자주 결합합니다. 이 글, [AI Tech] jQuery와 GPT로 테이블 짝수 행 스타일 자동화하기에서는 jQuery 선택자와 AI 코드 어시스턴트를 예로 들어 실무에 바로 적용 가능한 방법을 정리합니다. 짧고 명확한 예제 중심으로 설명하니 따라 하기가 쉽습니다. 1️⃣ 짝수 행을 선택하는 jQuery 기본 문법 jQuery의 :even 선택자는 요소의 인덱스를 기준으로 짝수 항목을 골라냅니다. 여기서 인덱스는 0부터 시작하므로 첫 번째 행(인덱스 0)이 짝수로 처리된다는 점을 유의하세요. 상황에 따라 의도한 행이 선택되는지 간단히 확인하는 것이 좋습니다. // jQuery를 이용한 짝수 행 색상 변경 $(document).ready(function() { $('tr:even').css('background-color', '#f2f2f2'); }); 위 스니펫은 테이블의 가독성을 빠르게 개선하는 간단한 방법입니다. 특히 데이터 테이블, 로그 목록, 관리자 페이지처럼 행의 구분이 중요한 UI에서 유용합니다. 2️⃣ AI(GPT)로 자동 생성된 코드 예시 GPT에게 자연어로 요청하면 즉시 실행 가능한 코드 조각을 얻을 수 있습니다. 예를 들어 "[AI Tech] jQuery와 GPT로 테이블 짝수 행 스타일 자동화하기" 같은 목적을 설명하면, 프로젝트 구조에 맞춘 예제를 빠르게 생성해줍니다. 아래 테이...

JavaScript 문자열 타입 정리: typeof vs instanceof, String 객체의 함정

JavaScript 문자열 타입 정리: typeof vs instanceof, String 객체의 함정 AI 생성 이미지: JavaScript 문자열 타입 정리: typeof vs instanceof, String 객체의 함정 안녕하세요 — 타입과 런타임 동작을 좋아하는 개발자입니다. 코드를 작성하다 보면 문득 이렇게 묻게 됩니다. "문자열인데 왜 instanceof String 이 false일까?" 특히 Java나 다른 정적 타입 언어 경험이 있으면 더 혼란스러울 수 있습니다. 이 글은 JavaScript 문자열 타입 정리: typeof vs instanceof, String 객체의 함정 을 바탕으로, 원시 문자열(primitive string) 과 String 래퍼 객체 의 차이, 그리고 typeof 와 instanceof 를 실제로 언제, 왜 사용해야 하는지를 예제와 함께 명확히 설명합니다. 1. 🔍 자바스크립트 instanceof 연산자는 무엇을 확인하는가? instanceof 는 값이 특정 생성자(또는 클래스)의 인스턴스인지 판별합니다. 핵심은 객체의 프로토타입 체인에 해당 생성자의 prototype이 포함되어 있는지 여부입니다. 동작 원리: 좌변 객체의 프로토타입 체인을 거슬러 올라가며 우변 생성자의 prototype과 일치하는지 검사합니다. 2. 🤯 문자열에서 instanceof String 이 false가 나오는 이유 ...

JavaScript로 HTML 태그 제거하기 – 정규식과 DOM 방식 완전 정리

JavaScript로 HTML 태그 제거하기 – 정규식과 DOM 방식 완전 정리 AI 생성 이미지: JavaScript로 HTML 태그 제거하기 – 정규식과 DOM 방식 완전 정리 크롤링 결과나 WYSIWYG 에디터에서 받은 HTML을 그대로 사용하지 않고, 텍스트만 깔끔하게 뽑아야 할 때가 많습니다. 이 글은 JavaScript로 HTML 태그 제거하기 – 정규식과 DOM 방식 완전 정리 관점에서 실무에 바로 적용 가능한 처리법을 정리합니다. 여기서는 정규식을 이용한 간단한 방법과 그 한계, 그리고 브라우저나 서버 환경에서 더 안전하게 처리하는 DOM/파서 기반 대안을 차례로 설명합니다. JavaScript로 HTML 태그 제거하기 – 정규식과 DOM 방식 완전 정리 내용을 통해 상황에 맞는 선택 기준을 제시합니다. 📚 목차 1. 정규 표현식으로 HTML 태그 삭제하기 2. 예제 코드 설명 3. 정규식 방식의 한계와 주의사항 4. HTML 파서/DOM을 사용한 더 안전한 방법 5. 정리 1. 정규 표현식으로 HTML 태그 삭제하기 가장 간단한 접근은 JavaScript의 replace() 와 정규식을 이용해 <태그> 형태를 찾아 모두 제거하는 것입니다. 속도가 빠르고 코드도 짧아 간단한 전처리에 유용합니다. ...

자바스크립트로 이미지 파일 크기(용량) 추정하기: Canvas.toDataURL 실전 예제

자바스크립트로 이미지 파일 크기(용량) 추정하기: Canvas.toDataURL 실전 예제 AI 생성 이미지: 자바스크립트로 이미지 파일 크기(용량) 추정하기: Canvas.toDataURL 실전 예제 브라우저의 <img> 요소에서 로드된 이미지의 정확한 전송 파일 크기를 반환하는 표준 API는 없습니다. 대신 JavaScript와 Canvas 를 이용하면 브라우저에 렌더된 픽셀 데이터를 바탕으로 대략적인 이미지 용량(파일 크기 추정치) 을 계산해 사용자에게 보여줄 수 있습니다. 이 가이드에서는 img onload 이벤트 와 Canvas.toDataURL() 을 활용해, 단계별로 이미지 용량을 추정하는 방법을 설명합니다. 핵심은 "자바스크립트로 이미지 파일 크기(용량) 추정하기: Canvas.toDataURL 실전 예제"라는 접근으로 실제 구현 예제까지 제공합니다. 중요: 이 방식은 서버에서 전달된 원본 파일의 바이트 수와는 다를 수 있습니다. 브라우저에서 생성된 데이터의 근사치임을 염두에 두세요. 1. 왜 JavaScript로 이미지 용량(파일 크기)을 체크해야 할까? 프론트엔드에서 이미지 무게를 바로 확인하면 여러 상황에서 즉각적인 가치를 제공합니다. 사용자가 게시물이나 에디터에 지나치게 큰 이미지를 업로드하려 할 때 사전 안내를 하기 위해 모바일 데이터 사용을 줄이기 위한 UX 결정을 내릴 때 이미지 최적화를 통해 페이지 로드 속도와 Core Web Vitals를 개선하려 할 때 갤러리...

jQuery prev_week / next_week 유틸 함수로 YYYY-MM-DD 날짜 이동하기

jQuery로 일주일 전·후 날짜 구하기 – prev_week, next_week 함수 구현 웹 화면에서 지난 주 / 다음 주로 이동하는 달력이나 통계 화면 을 만들다 보면 “일주일 전 날짜”, “일주일 후 날짜”를 쉽게 구하는 함수가 있으면 편합니다. jQuery 자체에는 날짜 계산 기능이 없기 때문에 prev_week , next_week 같은 함수는 직접 구현해야 합니다. 이 글에서는 JavaScript의 Date 객체를 활용해 YYYY-MM-DD 형식 으로 일주일 전/후 날짜를 계산하는 방법을 정리합니다. 1. prev_week / next_week 기본 구현 코드 아래 예제는 문자열 날짜(YYYY-MM-DD) 를 받아서 일주일 전/후 날짜를 반환하는 함수입니다. function prev_week(date) { // date를 JavaScript Date 객체로 변환합니다. var newDate = new Date(date); // 7일 전의 날짜를 계산합니다. newDate.setDate(newDate.getDate() - 7); // YYYY-MM-DD 형식으로 반환합니다. return newDate.toISOString().substring(0, 10); } function next_week(date) { // date를 JavaScript Date 객체로 변환합니다. var newDate = new Date(date); // 7일 후의 날짜를 계산합니다. newDate.setDate(newDate.getDate() + 7); // YYYY-MM-DD 형식으로 반환합니다. return newDate.toISOString().substring(0, 10); } 위 함수는 각각 7일 전 / 7일 후 의 날짜를 구한 뒤, toISOString() 으로 문자열로 바꾸고...

BitMEX WebSocket: JS로 실시간 데이터 구독 및 인증하기

BitMEX WebSocket: JS로 실시간 데이터 구독 및 인증하기 AI 생성 이미지: BitMEX WebSocket: JS로 실시간 데이터 구독 및 인증하기 이 문서는 BitMEX WebSocket: JS로 실시간 데이터 구독 및 인증하기 구현을 실전 중심으로 정리합니다. 핵심은 HMAC 기반의 인증 절차와 인증 후 개인 토픽을 안정적으로 구독하는 흐름입니다. 실무에 바로 적용할 수 있도록 필수 단계와 주의점을 간결하게 설명합니다. 1. 🔑 필수 라이브러리 설정 (CryptoJS) BitMEX WebSocket에 인증 요청을 보내려면 HMAC-SHA256 서명이 필요합니다. 브라우저 환경에서는 CryptoJS 라이브러리를 사용해 서명을 생성하는 것이 가장 간단합니다. 아래 스크립트는 서명을 위해 필요한 최소 구성입니다. HTML <script> 태그 추가 <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/hmac-sha256.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/enc-base64-min.js"></script> 2. 🛠️ WebSocket 연결 및 인증/구독 JavaScript 코드 아래 예제는 API 키와 시크릿으로 서명을 만든 뒤 인증 메시지를 전송하고, 인증이 완료되면 개인 토픽을 구독하는 흐름을 보여줍니다. BitMEX WebSocket: JS로 실시간 데이터 구독 및 인증하기 구현 시 핵심 패턴입니다. J...

jQuery DateTimePicker: 시작일/종료일 연동 구현하기

jQuery DateTimePicker: 시작일/종료일 연동 구현하기 AI 생성 이미지: jQuery DateTimePicker: 시작일/종료일 연동 구현하기 기간을 선택하는 UI에서는 시작일이 종료일보다 늦을 수 없고, 종료일은 시작일보다 앞설 수 없습니다. 이 가이드는 jQuery DateTimePicker: 시작일/종료일 연동 구현하기를 목표로 onShow 콜백을 활용해 두 필드 간의 유효성 검사를 실시간으로 적용하는 방법을 단계별로 설명합니다. 1. 🌐 HTML 구조 및 라이브러리 준비 날짜/시간 입력용 input 요소를 준비하고, 페이지에 jQuery와 DateTimePicker 플러그인을 포함해야 합니다. 기본 마크업은 간단합니다. HTML <input> 태그 <!-- 시작일/시간 선택 필드 --> <input type="text" id="popupSdt" placeholder="시작일시 선택"> <!-- 종료일/시간 선택 필드 --> <input type="text" id="popupEnd" placeholder="종료일시 선택"> <!-- (참고: jQuery 및 DateTimePicker 플러그인 파일 로드가 필요합니다.) --> 2. 🛠️ JavaScript 시작일/종료일 연동 로직 여기서는 피커가 화면에 보일 때마다 상대 필드의 값을 확인해 자신의 minDate 또는 maxDate 를 업데이트합니다. 이렇게 하면 사용자가 유효하지 않은 기간을 선택하지 못하도록 즉시 차단할 수 있습니다. JavaScript 코드 // 로...