Frontend 109

HTML, DevTools Sources에 안 보이는 문제 해결 (sourceURL 사용)

개발자 모드에서 디버깅이 필요한데, 소스코드가 보이지 않는 문제가 있었다. 🚀 요약 HTML 내부 이 스크립트는:별도의 JS 파일이 아님URL(경로)이 없음브라우저가 파일로 식별할 수 없음👉 즉, DevTools 기준에서는 “파일이 아닌 익명 스크립트”이다. 📌 3-2. Chrome의 처리 방식 (VM 파일)브라우저는 이름 없는 스크립트를 다음과 같이 처리한다.VM123VM456👉 임시 가상 파일(VM)로 생성한다.이 때문에:Sources 탭 트리에 안 보이거나어디 코드인지 찾기 어려움브레이크포인트 유지 불가 📌 3-3. window.open + redirect 환경 영향서버 렌더링 과정에서 redirect 발생 가능캐시가 없는 상태이 경우 DevTools는:원본 리소스를 정확히 추적하지 못함파..

Frontend/javaScript 2026.04.17

자바스크립트 모듈 패턴 (IIFE, Closure)

📌 자바스크립트 모듈 패턴을 활용한 안전한 데이터 관리 전략✅ 1. 개요: 전역 변수 선언의 구조적 취약점자바스크립트에서 var 키워드를 사용해 파일 최상단에 변수를 선언하는 방식(Global Scope)은 데이터 노출과 오염에 매우 취약하다. 조회용 데이터라 할지라도 브라우저 콘솔을 통해 누구나 접근하고 수정할 수 있다면, 런타임 환경에서 데이터 무결성을 보장할 수 없다. 본 글에서는 즉시 실행 함수(IIFE)와 클로저(Closure)를 활용하여 데이터를 캡슐화하는 모듈 패턴에 대해 기술한다.✅ 2. 개념 및 패턴 기본 구조✅ 2-1. 개념즉시 실행 함수(IIFE): 함수 정의와 동시에 실행되는 패턴으로, 내부 변수가 전역 스코프에 침범하는 것을 방지한다.클로저(Closure): 함수가 선언될 당시의..

Frontend/javaScript 2026.04.10

첨부파일 관리 (DataTransfer)

📌 1.type="file" HTML에서 요소는 사용자가 로컬 컴퓨터에서 파일을 선택해 서버로 업로드할 수 있게 하는 입력 필드다.file 입력 필드에 들어가는 데이터는 FileList 객체로 input[type="file"].files를 호출하면 FileList 객체가 반환된다. ✅ 동작 원리1️⃣ html의 기본 요소 중 하나인 file 요소는 클릭 시 로컬 파일 탐색기 창을 열고, 2️⃣ 파일을 선택하면, 요소의 값이 파일 객체로 채워진다.3️⃣ 폼 제출 시, 파일이 multipart/form-data 형식으로 서버에 전송된다. ⚠️ 주의: 태그의 enctype이 반드시 multipart/form-data로 지정되어야 파일이 전송된다. 📌 2. DataTransfer을 이용한 커스텀커스텀하..

Frontend/javaScript 2025.11.08

vue3 프로젝트 생성 (node, vue cli, 에러 해결)

1. node.js 설치 1-1. 다운로드https://nodejs.org/en 1-2. 설치 후 확인node -vnpm -v 2. Vue cli 설치2-1. 설치npm install -g @vue/cli 2-2. 설치 확인vue --version *Error: EPERM: operation not permitted, rmdir 에러 발생 시 관리자 권한으로 cmd/bash/powershell 실행 캐시 지우기npm cache clean --force-> 이후 다시 vue/cli 설치 시도. * 기타 참고 명령어Npm 최신 버전 설치npm install -g npm@latest --force 폴더 생성된 것 확인npm list -g --depth=0 전역 설치된 패키지 제거npm uninstall -g ..

Frontend/vue3 2025.11.08

summernote - 에디터 라이브러리

0. 라이브러리 선택 기준기존 다른 editor 라이브러리를 사용하고 있었는데 불필요한 기능들이 많고 모바일뷰에서 적합하지 않아서 새로운 무료 라이브러리를 찾아보았다. 내 선택 조건은 아래와 같았다.무료 라이센스모바일 최적화JSP 환경많은 기능 필요x에디터에 사진 넣을 수 있어야함. 대부분 에디터 라이브러리가 react, vue 기준이거나 pc 기준인 것이 많았는데내 조건에 맞는 라이브러리로 summernote를 찾았다. 1. 사용방법1-1. 라이브러리 다운로드 및 적용다운로드 링크https://summernote.org/ 적용 위치/resources/js/plugins/summernote 1-2. Script, link 태그로 불러오기 1-3. Html 작성form 없이 썸머노트를 사용하려면 div에 ..

Frontend/javaScript 2025.08.31

HTTP 상태 코드 정리

HTTP 상태 코드 (HTTP Status Codes)웹서버나 클라이언트 간 통신에서 응답 상태를 나타내는 3자리 숫자 코드 상태 코드의미설명1xx정보 응답(Informational)요청을 받았고 처리 중임을 알림2xx성공(Success)요청이 정상적으로 처리됨200OK성공적으로 요청 처리 완료201Created요청이 성공적으로 수행되어 자원 생성됨3xx리다이렉션(Redirection)클라이언트가 추가 작업 필요301Moved Permanently요청한 리소스가 영구적으로 다른 위치로 이동됨302Found요청한 리소스가 임시로 다른 위치로 이동됨4xx클라이언트 오류(Client Error)요청에 오류가 있어 서버가 수행 불가400Bad Request잘못된 요청401Unauthorized인증 필요403Fo..

SOAP과 WSDL: REST와 비교 및 Java 예제

📌 1. SOAP 개념과 REST와의 비교REST와 SOAP는 각기 다른 두 가지의 온라인 데이터 전송 방식. SOAP는 프로토콜, REST는 아키텍처 스타일이다.📌 1-1. SOAP (Simple Object Access Protocol)✅ 1-1-1. SOAP 기본 개념SOAP은 XML 기반의 메시징 프로토콜. 즉, 두 시스템이 데이터를 주고받는 방식에 대한 규격을 정해놓은 표준.SOAP 메시지는 XML 포맷으로 요청과 응답을 주고받고, 이를 기반으로 시스템 간의 상호작용을 정의.✅ 1-1-2. SOAP 특징프로토콜 기반: SOAP은 네트워크 프로토콜에 종속적이지 않지만, HTTP, SMTP, FTP 등 다양한 프로토콜을 사용할 수 있다.메시지 포맷: SOAP은 XML 포맷을 사용하여 데이터를 주..

JavaScript 모듈 사용

📌 자바스크립트에서 모듈이란?모듈은 하나의 파일 안에 기능을 캡슐화하고, 필요한 부분만 외부로 내보내 다른 코드에서 재사용할 수 있게 해주는 코드 단위이다.-> 즉, 하나의 js 파일에서 다른 js파일 함수/객체를 이용하는 방법!! 📌 1. 를 사용하면 된다. 스크립트 파일 전체를 로드해서 전역에 추가하는 방식. -> 전역 변수 충돌 위험, 로드 순서가 중요한 단점이 있다!! ✔️ common.js 파일이 로드되며, 전역 스코프(window)에서 사용 가능. 📌 2. window 객체 활용브라우저의 전역 객체인 window에 등록하는 방법.특정 함수/객체만 전역에 노출 -> 하지만 여전히 충돌위험/로드 순서 중요. 📖 math.js (모듈 파일을 전역 변수로 등록)function add(a, ..

Frontend/javaScript 2025.04.06

JavaScript 코드 실행 순서 & 실행 타이밍 제어

📌 JavaScript 코드 실행 순서 & 실행 타이밍 제어 방법JavaScript는 브라우저에서 HTML을 해석하면서 실행된다! 그런데 코드의 실행 순서를 잘못 이해하면 예상과 다르게 동작하거나 오류가 발생할 수도 있다. 😵그래서 JavaScript의 실행 순서와 실행 타이밍을 제어하는 방법을 정리해보았다.✅ 1. JavaScript 코드 실행 순서JavaScript는 HTML을 위에서 아래로 해석하면서 실행된다.   🔹 기본적인 실행 흐름1️⃣ HTML(DOM) 위에서 아래로 해석2️⃣  🔹 실행 결과1️⃣ head 내부 스크립트 실행2️⃣ body 내부 script 실행3️⃣ document ready 실행 (DOM 완성 후)4️⃣ window.onload 실행 (이미지..

Frontend/javaScript 2025.04.06

router 네비게이션 가드(Navigation Guards)

Vue Router에서 네비게이션 가드(Navigation Guards)는 사용자가 페이지(라우트) 간 이동할 때 특정 조건을 확인하거나 동작을 수행할 수 있는 메커니즘입니다. 주로 인증과 권한 제어를 위해 사용됩니다. 1. 네비게이션 가드의 종류1-1. 전역 가드 (Global Guards)전역적으로 모든 라우트 변경에 대해 작동합니다.beforeEach라우팅이 시작되기 전에 실행됩니다.주로 인증 또는 권한 확인에 사용됩니다.router.beforeEach((to, from, next) => { if (to.meta.requiresAuth && !isAuthenticated()) { next('/login'); // 인증이 필요하지만 인증되지 않았으면 로그인 페이지로 이동 } else { ..

Frontend/vue3 2024.12.01