javascript
- 
                    
                      oninput 과 keydown, keyup 은 모두 input 값 변화를 감지할 때 발생 시점과 감지 가능한 키 종류, 사용 권장 여부에차이가 있다. 이벤트 발생 시점 감지 범위 특징 및 주의점 oninputinput의 값이 실제로 변경될 때마다 즉시 발생입력·복사·붙여넣기·삭제 등값이 바뀌면 항상 발생, 실시간keydown키를 누른 순간 발생모든 키문자가 입력되기 전 이벤트 발생keyup키에서 손을 뗄 때 발생모든 키문자가 입력된 후 이벤트 발생 oninput값이 입력될 때마다 즉시 발생하여 실시간으로 변화 감지가 가능하다.oninput 은 키 입력 뿐만 아니라 마우스로 복사·붙여넣기·삭제 등 직접 입력이 아닌 경우에도 동작한다.폼 값 변경을 가장 확실하게 추적할 수 있다.// 실시간 감지 .. Javascript input 태그 이벤트 감지 차이(oninput, keydown, keyup)  oninput 과 keydown, keyup 은 모두 input 값 변화를 감지할 때 발생 시점과 감지 가능한 키 종류, 사용 권장 여부에차이가 있다. 이벤트 발생 시점 감지 범위 특징 및 주의점 oninputinput의 값이 실제로 변경될 때마다 즉시 발생입력·복사·붙여넣기·삭제 등값이 바뀌면 항상 발생, 실시간keydown키를 누른 순간 발생모든 키문자가 입력되기 전 이벤트 발생keyup키에서 손을 뗄 때 발생모든 키문자가 입력된 후 이벤트 발생 oninput값이 입력될 때마다 즉시 발생하여 실시간으로 변화 감지가 가능하다.oninput 은 키 입력 뿐만 아니라 마우스로 복사·붙여넣기·삭제 등 직접 입력이 아닌 경우에도 동작한다.폼 값 변경을 가장 확실하게 추적할 수 있다.// 실시간 감지 .. 2025.10.27
- 
                    
                      async/await 와 Promise 는 비동기 처리를 위한 Javascript 의 핵심 개념이다. 🧩 Promise란? Promise 는 비동기 작업의 완료(또는 실패)를 나타내는 객체다. Promise 는 3가지 상태를 가진다. ⏳ pending (대기 중) ✅ fulfilled (성공) ❌ rejected (실패) function getData() { return new Promise((resolve, reject) => { setTimeout(() => { resolve("데이터 로드 완료!"); }, 1000); });}getData() .then((result) => console.log(result)) .catch((error) => console.erro.. 비동기 Promise, async/awaitasync/await 와 Promise 는 비동기 처리를 위한 Javascript 의 핵심 개념이다. 🧩 Promise란? Promise 는 비동기 작업의 완료(또는 실패)를 나타내는 객체다. Promise 는 3가지 상태를 가진다. ⏳ pending (대기 중) ✅ fulfilled (성공) ❌ rejected (실패) function getData() { return new Promise((resolve, reject) => { setTimeout(() => { resolve("데이터 로드 완료!"); }, 1000); });}getData() .then((result) => console.log(result)) .catch((error) => console.erro.. 2025.10.20
- 
                    
                      Jquery 로 .html() 을 사용하여 동적 HTML 삽입 시 기존 노드와 기존 이벤트 리스너가 삭제되지만.on() 으로 등록했던 이벤트 리스너들은 Jquery 가 재 바인딩을 해줘 이벤트를 사용할 수 있었다. 하지만 vanilla JS 의 .innerHTML 을 통해 동적 HTML 삽입 시 기존 노드 및 기존 이벤트 리스너가 삭제된 후.addEventListener() 를 통해 이벤트를 수동으로 재등록 해줘야 사용할 수 있다. 이때 vanilla JS 로 동적 HTML 삽입 시 이벤트 리스너 및 스크립트를 실행할 수 있는 방법은공통 함수를 호출하여 함수 내 스크립트 태그내용을 불러와서 재등록 해주면 된다. 본인은 모달창을 띄울때 모달창 내용을 동적 HTML 삽입하여 띄웠다. const initial.. vanilla JS 동적 HTML 삽입 시 이벤트 리스너 및 스크립트 실행방법Jquery 로 .html() 을 사용하여 동적 HTML 삽입 시 기존 노드와 기존 이벤트 리스너가 삭제되지만.on() 으로 등록했던 이벤트 리스너들은 Jquery 가 재 바인딩을 해줘 이벤트를 사용할 수 있었다. 하지만 vanilla JS 의 .innerHTML 을 통해 동적 HTML 삽입 시 기존 노드 및 기존 이벤트 리스너가 삭제된 후.addEventListener() 를 통해 이벤트를 수동으로 재등록 해줘야 사용할 수 있다. 이때 vanilla JS 로 동적 HTML 삽입 시 이벤트 리스너 및 스크립트를 실행할 수 있는 방법은공통 함수를 호출하여 함수 내 스크립트 태그내용을 불러와서 재등록 해주면 된다. 본인은 모달창을 띄울때 모달창 내용을 동적 HTML 삽입하여 띄웠다. const initial.. 2025.05.15
- 
                    
                      Javascript 를 사용하여 화면 내 scroll 을 이동 해야해서 찾아봤다. 브라우저 창 너비와 높이브라우저 창 화면에 보이는 너비와 높이를 알려면 document.documentElement 의clientWidth 와 clientHeight 를 사용한다. 사용방법document.documentElement.clientWidthdocument.documentElement.clientHeight 또 다른 확인 방법은 관리자도구(F12) 를 키고 모바일로 봤을 때 확인 가능하다. window.innerWidth 와 document.documentElement.clientWidth 의 차이점너비와 높이를 구하는 방법중에 window.innerWidth 와 window.innerHeight 도 있다... Javascript 화면 Scroll 조작하기(스크롤 끝 찾기)Javascript 를 사용하여 화면 내 scroll 을 이동 해야해서 찾아봤다. 브라우저 창 너비와 높이브라우저 창 화면에 보이는 너비와 높이를 알려면 document.documentElement 의clientWidth 와 clientHeight 를 사용한다. 사용방법document.documentElement.clientWidthdocument.documentElement.clientHeight 또 다른 확인 방법은 관리자도구(F12) 를 키고 모바일로 봤을 때 확인 가능하다. window.innerWidth 와 document.documentElement.clientWidth 의 차이점너비와 높이를 구하는 방법중에 window.innerWidth 와 window.innerHeight 도 있다... 2024.12.23
- 
                    
                      환경 = Spring Boot, JQuery, thymeleaf Spring Boot 와 Thymeleaf 환경에서 JQuery Ajax 요청 중 Spring Security 의 CSRF Token을 헤더에 기본적으로설정하기 위해 찾아보다가 ajaxSend 함수와 ajaxSetup() 의 beforeSend 를 보아 정리한다. .ajaxSend(function(e, xhr, options){ ... })ajaxSend 는 JQuery 에서 Ajax 요청을 보내기 전에 실행시킬 함수를 정의한다.즉, Ajax 이벤트 처리기이다. Ajax 요청을 보내기 전에 매번 ajaxSend() 함수 이벤트를 발생시킨다. Ajax 요청을 서버에 보내기전에 공통적으로 처리해야할 것이 있을 때 사용한다. 사용법// JQu.. [JQuery] .ajaxSend 와 ajaxSetup(), beforeSend 설정 (csrf token 설정)환경 = Spring Boot, JQuery, thymeleaf Spring Boot 와 Thymeleaf 환경에서 JQuery Ajax 요청 중 Spring Security 의 CSRF Token을 헤더에 기본적으로설정하기 위해 찾아보다가 ajaxSend 함수와 ajaxSetup() 의 beforeSend 를 보아 정리한다. .ajaxSend(function(e, xhr, options){ ... })ajaxSend 는 JQuery 에서 Ajax 요청을 보내기 전에 실행시킬 함수를 정의한다.즉, Ajax 이벤트 처리기이다. Ajax 요청을 보내기 전에 매번 ajaxSend() 함수 이벤트를 발생시킨다. Ajax 요청을 서버에 보내기전에 공통적으로 처리해야할 것이 있을 때 사용한다. 사용법// JQu.. 2024.09.10
- 
                    
                      Javascript 에서 물음표(?), 느낌표(!) 등 다양한 연산자를 통해 코드의 간결하고 가독성 있게 바꿔준다. 물음표 1개(?)물음표 한개 연산자는 "삼항연산자", "옵셔널 체이닝 연산자" 에서 사용된다. 삼항연산자// 조건식 ? 참값 : 거짓값let a = 11;a > 10 ? 'a가 10보다 큽니다.' : 'a가 10보다 작습니다.' 삼항연산자는 조건식이 참과 거짓일 때 콜론(:)을 기준으로 각각 다른 값을 반환한다. 옵셔널 체이닝 연산자(?.)// 사용법 = (?.)let card = {};// undefined, 객체의 존재하지 않는 요소에 접근해 정보를 가져오려고 할 경우 에러가 발생한다.console.log(card && card.name && card.name.number);// u.. Javascript 유용한 연산자Javascript 에서 물음표(?), 느낌표(!) 등 다양한 연산자를 통해 코드의 간결하고 가독성 있게 바꿔준다. 물음표 1개(?)물음표 한개 연산자는 "삼항연산자", "옵셔널 체이닝 연산자" 에서 사용된다. 삼항연산자// 조건식 ? 참값 : 거짓값let a = 11;a > 10 ? 'a가 10보다 큽니다.' : 'a가 10보다 작습니다.' 삼항연산자는 조건식이 참과 거짓일 때 콜론(:)을 기준으로 각각 다른 값을 반환한다. 옵셔널 체이닝 연산자(?.)// 사용법 = (?.)let card = {};// undefined, 객체의 존재하지 않는 요소에 접근해 정보를 가져오려고 할 경우 에러가 발생한다.console.log(card && card.name && card.name.number);// u.. 2024.06.25