기본 콘텐츠로 건너뛰기

라벨이 jquery인 게시물 표시

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...

jquery contains

jquery contains AI 생성 이미지: jquery contains 복잡한 DOM에서 텍스트를 기준으로 요소를 정확히 골라야 할 때가 있습니다. 이럴 때 유용한 도구가 바로 jQuery의 :contains() 필터이며, 검색어로는 종종 "jquery contains"로 찾아볼 수 있습니다. 클래스나 ID가 없어도 텍스트 내용을 기준으로 원하는 요소를 선택하고 조작할 수 있다는 점이 큰 장점입니다. 1. 📝 :contains() 선택자의 기본 구문 :contains() 는 특정 요소의 텍스트 노드에 지정한 문자열이 포함되어 있는지를 판별하는 선택자입니다. 실무 문서나 검색에서 "jquery contains"라는 표현으로 설명되는 경우가 많습니다. 기본적인 구문 $("요소:contains(텍스트)") "요소" : 검색을 시작할 태그명 또는 CSS 선택자(예: li , div.box , p )를 지정합니다. "(텍스트)" : 요소 내부에서 찾고자 하는 문자열을 작은따옴표( '' )나 큰따옴표( "" )로 감싸서 전달합니다. 주의: :contains() 는 기본적으로 대소문자를 구분합니다. 예를 들어 'Apple' 과 'apple' 은 서로 다른 결과를 만듭니다. 2. 💡 실습 예제: 목록에서 특정 항목 찾기 HTML 코드 간단한 과일 목록을 예로 들겠습니다. 내부 텍스트를 기준으로 항목을 골라야 할 때 유...

[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로 테이블 짝수 행 스타일 자동화하기" 같은 목적을 설명하면, 프로젝트 구조에 맞춘 예제를 빠르게 생성해줍니다. 아래 테이...

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() 으로 문자열로 바꾸고...

jQuery 플러그인 패턴 템플릿 완전 정리: $.fn.pluginName 예제와 사용법

jQuery 플러그인 패턴 템플릿 | pluginName 기본 구조와 사용법 jQuery 플러그인 패턴 템플릿: pluginName 기본 구조 완벽 정리 jQuery를 사용하다 보면 공통 기능을 플러그인 으로 만들어서 재사용하고 싶을 때가 많습니다. 이때 매번 구조를 처음부터 짜기보다는, 플러그인 패턴 템플릿 을 하나 만들어 두면 매우 편리합니다. 이 글에서는 아래와 같은 pluginName jQuery 플러그인 템플릿 코드 를 기반으로, 각 부분이 어떤 역할을 하는지, 어떻게 수정해서 나만의 플러그인을 만들 수 있는지 SEO 친화적인 설명과 함께 정리합니다. jQuery 플러그인 기본 템플릿 코드 (function($) { // 플러그명 (생성자 역할) $.pluginName = function(element, options) { // 기본 옵션 var defaults = { foo: 'bar', onFoo: function() {} }; var plugin = this; // 플러그인 설정 객체 plugin.settings = {}; var $element = $(element), element = element; // 초기화 plugin.init = function() { // 사용자 옵션과 기본 옵션 병합 plugin.settings = $.extend({}, defaults, options); }; // public 메서드 (외부에서 호출 가능) plugin.foo_public_method = function() { ...

Slick Carousel 활용: 중앙 슬라이드 강조 효과 (Center Mode Scale)

FRONTEND / UI LIBRARY ✨ Slick Carousel 활용: 중앙 슬라이드 강조 효과 (Center Mode Scale) jQuery Slick Carousel의 Center Mode를 활용하여 현재 중앙 슬라이드는 크게, 양옆의 슬라이드는 작게 축소(Scale Down)하여 강조하는 모던한 UI 구현 방법을 알아봅니다. 📑 목차 1. 필수 라이브러리 및 기본 HTML 구성 2. Slick Carousel 초기화 옵션 (Center Mode) 3. CSS 핵심: 축소(Scale) 및 Z-index 계층 제어 4. 마무리: 동적 UI의 핵심 1. 필수 라이브러리 및 기본 HTML 구성 이 효과를 구현하기 위해서는 jQuery와 Slick Carousel 라이브러리가 필요합니다. CDN을 통해 빠르게 로드하고 기본 HTML 구조를 잡습니다. <!-- jQuery & Slick 라이브러리 로드 --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link href="http://cdn.jsdelivr.net/jquery.slick/1.5.5/slick.css" rel="stylesheet" /> <script src="http://cdn.jsdelivr.net/jquery.slick/1.5.5/slick.min.js"></script> <!-- 캐러셀 컨테이너 --> <div class="content"> <di...

bxSlider custom Botton

FRONTEND / JQUERY jQuery bxSlider: 나만의 커스텀 버튼(Prev/Next/Stop)으로 슬라이더 제어하기 bxSlider의 기본 스타일을 벗어나, 별도로 제작한 버튼 이미지나 HTML 요소로 슬라이더를 완벽하게 제어하는 방법을 알아봅니다. 인스턴스 변수를 활용한 API 호출 패턴을 실무 예제로 정리했습니다. 📑 목차 1. HTML 구조: 슬라이더와 제어 버튼 분리 2. 핵심 로직: 인스턴스 저장 및 API 호출 3. 전체 JavaScript 구현 코드 4. 요약 및 주의사항 1. HTML 구조: 슬라이더와 제어 버튼 분리 가장 먼저 해야 할 일은 bxSlider가 적용될 리스트( ul > li )와 이를 제어할 버튼들을 HTML 상에 배치하는 것입니다. 이때 제어 버튼들은 bxSlider 컨테이너 외부에 있어도 상관없으며, 고유한 ID 를 부여하여 스크립트에서 식별할 수 있게 합니다. <div class="slider-wrapper"> <!-- 1. 커스텀 컨트롤 버튼 영역 --> <div class="custom-controls"> <button type="button" id="btn_prev">이전</button> <button type="button" id="btn_stop">정지/재생</button> <button type="button" id="btn_next">다음</but...

jQuery로 가벼운 '오늘 본 상품' 세로 슬라이더 구현하기 (플러그인 없이 DOM 조작 최적화)

FRONTEND jQuery로 가벼운 '오늘 본 상품' 세로 슬라이더 구현하기 (플러그인 없이 DOM 조작 최적화) 무거운 라이브러리 없이 jQuery만으로 쇼핑몰 사이드바의 '오늘 본 상품' 영역을 구현하는 방법을 알아봅니다. DOM 조작을 통한 효율적인 세로 롤링 로직과 코드를 소개합니다. 📑 목차 1. 마크업 구조: 시맨틱한 리스트 구성 2. jQuery 핵심 로직: 무한 롤링 구현 3. 활용 팁 및 퍼포먼스 고려사항 4. 자주 묻는 질문(FAQ) 1. 마크업 구조: 시맨틱한 리스트 구성 쇼핑몰 사이드바 UI는 한정된 공간을 효율적으로 사용해야 합니다. div 대신 dl 과 dd 태그를 사용하여 데이터 리스트의 시맨틱한 구조 를 잡는 것이 좋습니다. 초기 화면에는 기획된 개수(예: 3개)만 노출하고 나머지는 스타일로 숨김 처리합니다. <div class="todayBg"> <dl> <!-- 위로 이동 버튼 (Prev) --> <img src="/images/btn_up.gif" class="prev" alt="위로"> <!-- 상품 리스트 (초기 3개 노출) --> <dd><a href="#"><img src="/img/p1.jpg" alt="상품1"></a></dd> <dd><a href="#"><img src="/img/p2...

jQuery .prop() vs .attr(): DOM 상태 제어의 핵심 원리와 실무 표준 패턴

FRONTEND ENGINEERING jQuery .prop() vs .attr(): DOM 상태 제어의 핵심 원리와 실무 표준 패턴 HTML 속성(Attribute)과 DOM 프로퍼티(Property)의 기술적 차이를 명확히 분석하고, 체크박스 등 동적 UI의 데이터 무결성을 보장하는 실무 코딩 표준과 이벤트 핸들링 전략을 제시합니다. 📑 목차 1. Attribute와 Property의 본질적 차이 2. Boolean 속성 제어와 데이터 정합성 3. 상태 변경 시 이벤트 트리거 전략 4. 요약: 언제 무엇을 써야 할까? 1. Attribute와 Property의 본질적 차이 jQuery 1.6 버전 이후 명확히 구분된 .prop() 와 .attr() 의 차이는 단순한 문법적 선호도가 아닌, 브라우저가 문서를 해석하는 메커니즘의 차이에서 비롯됩니다. 엔터프라이즈급 애플리케이션의 안정성을 확보하려면 이 두 개념의 생명주기를 이해해야 합니다. Attribute (.attr()): HTML 마크업에 명시된 텍스트 그 자체입니다. 페이지가 처음 로드될 때의 초기 상태(Default Value) 를 의미하며, 사용자 입력으로 값이 변해도 원본 속성값은 유지됩니다. Property (.prop()): 브라우저 파싱 후 메모리에 적재된 DOM 객체의 실시간 속성입니다. 사용자의 인터랙션이나 스크립트에 의해 변경되는 현재 상태(Current Value) 를 대변합니다. 2. Boolean 속성 제어와 데이터 정합성 체크박스의 checked , selected , disabled 와 같은 상태값은 문자열이 아닌 Boolean(...

jQuery 실무 패턴: filter와 map으로 완성하는 폼 데이터 직렬화 및 유효성 검사

FRONTEND DEV jQuery 실무 패턴: filter와 map으로 완성하는 폼 데이터 직렬화 및 유효성 검사 복잡한 엔터프라이즈 폼 UI에서 데이터를 효율적으로 제어하는 jQuery 메서드 체이닝 기법을 다룹니다. :visible 선택자부터 filter, map, join을 조합하여 스파게티 코드를 방지하고, 직렬화와 유효성 검사를 간결하게 처리하는 실무 노하우를 공유합니다. 📑 이 글에서 다루는 내용 1. :visible로 렌더링된 필드만 타겟팅하기 2. filter()를 이용한 데이터 정제 로직 3. map()과 join()을 활용한 선언적 직렬화 4. 실전 응용: 유효성 검사(Validation) 파이프라인 5. 가독성 튜닝: is()와 not()의 적절한 활용 1. :visible로 렌더링된 필드만 타겟팅하기 엔터프라이즈 환경의 폼 UI는 사용자 권한이나 상호작용에 따라 필드가 동적으로 숨겨지거나 나타나는 경우가 빈번합니다. 이때 단순히 $('input') 으로 데이터를 수집하면 숨겨진 필드의 값까지 포함되어 로직 오류를 유발할 수 있습니다. jQuery의 :visible 선택자는 현재 화면에 렌더링된 요소만 정확히 타겟팅 합니다. type="hidden" 속성뿐만 아니라 CSS로 display: none 처리된 요소까지 자동으로 배제하므로, 사용자가 실제로 입력 가능한 데이터만 추출 할 때 필수적입니다. // 화면에 보이는 input 요소의 개수만 반환 $("input:visible").length; 2. filter()를 이용한 데이터 정제 로직 선택된 요소 집합(Collection)에서 특정 조건에 맞는 요소만 남겨야 할 때 filter() 메서드가 강력한 힘을 발휘합니다. 이는 반복문 내에서 if 문을 남발하는 것을 방지하고, 의도를 명확하게 드러내는 코드를 작성하게 돕습니다. $("input:visible") .f...

jQuery bxSlider: 배경색 동기화와 동적 UI 구현을 위한 실무 가이드

FRONTEND / UI UX jQuery bxSlider: 배경색 동기화와 동적 UI 구현을 위한 실무 가이드 슬라이드 전환 시 주변 배경색을 유기적으로 동기화하여 사용자 몰입감을 높이는 프론트엔드 기술을 소개합니다. jQuery bxSlider의 onSlideAfter 이벤트와 HTML5 Data Attributes를 결합해 유지보수 효율성을 극대화하는 전략을 다룹니다. 📑 목차 1. bxSlider 초기화 및 이벤트 핸들링 전략 2. 유지보수에 유리한 HTML 구조와 Data 속성 3. 핵심 동작 로직 상세 분석 4. 실무 응용: 브랜딩과 테마 확장 1. bxSlider 초기화 및 이벤트 핸들링 전략 메인 배너 슬라이더 구현 시, 단순히 이미지만 교체하는 방식을 넘어 주변 영역의 배경색(Background Color)까지 동기화하면 훨씬 세련되고 일체감 있는 사용자 경험(UX)을 제공할 수 있습니다. 이를 구현하기 위해 jQuery bxSlider의 onSlideAfter 콜백 함수를 핵심적으로 활용합니다. 아래 코드는 슬라이더가 전환된 직후 현재 인덱스를 감지하고, 해당 인덱스에 매핑된 컬러 값을 추출하여 타겟 영역의 CSS를 실시간으로 변경하는 로직입니다. var slider; $(document).ready(function () { slider = $('.bxslider').bxSlider({ pagerCustom: '.banner_name_target', // 커스텀 페이저 UI 연결 auto: true, // 자동 재생 활성화 autoControls: false, ...

자바스크립트 클로저(Closure) 완벽 가이드: 원리부터 jQuery 실전 패턴까지

JAVASCRIPT / ENGINEERING 자바스크립트 클로저(Closure) 완벽 가이드: 원리부터 jQuery 실전 패턴까지 클로저의 핵심 원리인 스코프 체인과 상태 유지를 이해하고, 메모리 누수 방지법과 jQuery 플러그인 확장 등 실무 레거시 코드 분석에 필요한 핵심 패턴을 정리합니다. 📑 목차 1. 클로저(Closure)의 핵심 개념과 원리 2. 상태 유지와 캡슐화: 카운터 예제 3. 메모리 누수(Memory Leak) 관리 4. 실전 응용: jQuery 플러그인과 IIFE 패턴 1. 클로저(Closure)의 핵심 개념과 원리 자바스크립트에서 클로저는 함수와 그 함수가 선언될 당시의 렉시컬 환경(Lexical Environment)의 조합 을 의미합니다. 쉽게 정의하면, 내부 함수가 외부 함수의 변수(스코프)를 기억하고, 외부 함수가 종료된 후에도 계속 접근할 수 있는 메커니즘 입니다. 다음은 가장 기본적인 클로저의 형태입니다. function test(name) { var text = name + ' 님'; // 내부 함수(클로저)가 외부 변수 text를 참조 var tk = function() { console.log(text); }; return tk; } var myFunc = test('개발자'); myFunc(); // 출력: "개발자 님" 위 코드에서 test 함수는 실행이 끝났지만, 반환된 tk 함수는 여전히 text 변수를 기억하고 있습니다. 이는 함수가 생성될 때의 스코프 체인 을 유지하기 때문입니다. 2. 상...

Ext JS Grid와 jQuery ajaxForm 연동: 비동기 파일 업로드 하이브리드 패턴 구현

WEB DEVELOPMENT Ext JS Grid와 jQuery ajaxForm 연동: 비동기 파일 업로드 하이브리드 패턴 구현 Ext JS의 UI 강점과 jQuery ajaxForm의 유연성을 결합하여 Grid 컴포넌트 내에서 비동기 파일 업로드를 구현하는 실무적인 하이브리드 패턴을 상세히 분석합니다. 📑 목차 1. Ext JS와 jQuery 하이브리드 아키텍처 2. jQuery ajaxForm을 이용한 동적 업로드 로직 3. 데이터 유형별 이원화된 처리 흐름 4. 레거시 환경에서의 기술 통합 전략 5. [부록] 실전 구현 코드 예제 1. Ext JS와 jQuery 하이브리드 아키텍처 이 기술 가이드는 Ext JS의 강력한 UI 프레임워크 와 jQuery의 유틸리티성을 결합하여, 단일 프레임워크만으로는 구현하기 까다로운 기능을 해결하는 사례를 다룹니다. 기본 아키텍처는 다음과 같이 구성됩니다. Data Model & Store: 게시판(BBS) 데이터를 구조화하고 CRUD 처리를 위한 Proxy 설정이 포함된 스토어 객체입니다. Grid Panel: 사용자에게 데이터 목록을 제공하며, 핵심 기능인 파일 첨부를 위한 버튼 렌더러(Renderer) 가 포함되어 있습니다. Form Panel: Grid에서 선택된 항목의 상세 정보를 보여주며, selectionchange 이벤트를 통해 Grid와 데이터를 실시간으로 동기화합니다. 2. jQuery ajaxForm을 이용한 동적 업로드 로직 Ext JS 내부의 FileField 가 가진 제약을 우회하기 위해, 순수 JavaScript와 jQuery를 ...