본문 바로가기
카테고리 없음

자바스크립트 이벤트 활용법 정리(input change keyup 등)

by 기록하는 거부기 2025. 11. 12.

웹 개발을 하다 보면 사용자와 상호작용하는 이벤트(Event) 처리가 필수적입니다.
특히 자바스크립트에서는 버튼 클릭, 키 입력, 마우스 이동, 값 변경 등
다양한 이벤트를 활용해 동적인 사용자 경험(UX) 을 구현할 수 있습니다.
이번 글에서는 실무에서 가장 자주 사용하는 자바스크립트 이벤트 들을 정리해보겠습니다.


1. 자바스크립트 이벤트(Event)란?

이벤트(Event) 는 사용자가 웹페이지에서 수행하는 행동(Interaction) 을 의미합니다.
예를 들어 버튼 클릭, 입력창의 값 변경, 키보드 입력, 마우스 움직임 등이 모두 이벤트입니다.

자바스크립트에서는 이벤트를 감지해 특정 동작을 수행하도록 할 수 있습니다.
이때 사용되는 대표적인 메서드는 addEventListener() 입니다.

 

📘 기본 구조

요소.addEventListener('이벤트명', 실행할함수);

 

📘 예시

document.querySelector('button').addEventListener('click', () => {
  alert('버튼이 클릭되었습니다!');
});

2. 입력 필드 이벤트 input / change

input 이벤트는 사용자가 입력창에 타이핑할 때마다 실시간으로 발생합니다.
change 이벤트는 입력이 완료되고 포커스가 다른 곳으로 이동할 때 발생합니다.

 

📘 예시

const inputEl = document.querySelector('#username');

inputEl.addEventListener('input', (e) => {
  console.log('입력 중:', e.target.value);
});

inputEl.addEventListener('change', (e) => {
  console.log('입력 완료:', e.target.value);
});

💡 실시간 검증(예: 아이디 중복 확인)에는 input,
폼 제출 전 최종 검증에는 change 이벤트를 사용하는 것이 일반적입니다.


3. 키보드 관련 이벤트 keydown / keyup

키보드 이벤트는 사용자가 키를 누르거나 뗄 때 발생합니다.

  • keydown : 키를 누를 때 발생
  • keyup : 키를 뗄 때 발생

📘 예시

document.addEventListener('keydown', (e) => {
  console.log('누른 키:', e.key);
});

document.addEventListener('keyup', (e) => {
  console.log('뗀 키:', e.key);
});

💡 Enter 키로 폼을 전송하거나, ESC 키로 창을 닫는 기능 등
실무 인터페이스 제어에서 자주 사용됩니다.


4. 마우스 이벤트 click / mouseover / mouseout

마우스 이벤트는 클릭, 이동, 진입, 이탈 등 다양한 사용자 동작을 감지합니다.

 

📘 대표 이벤트

이벤트명 설명
click 클릭할 때 발생
dblclick 더블 클릭
mouseover 마우스가 요소 위로 올라올 때
mouseout 마우스가 요소 밖으로 나갈 때

📘 예시

const box = document.querySelector('.box');

box.addEventListener('mouseover', () => {
  box.style.backgroundColor = 'lightblue';
});

box.addEventListener('mouseout', () => {
  box.style.backgroundColor = '';
});

💡 hover 스타일 외에도, 마우스 이벤트는 툴팁 표시나 드래그 UI 구성에 활용됩니다.


5. 실무에서 자주 쓰이는 이벤트 핸들링 패턴

실무에서는 여러 이벤트를 함께 사용하는 경우가 많습니다.
다음은 대표적인 패턴들입니다.

 

📘 (1) 실시간 검색창

const search = document.querySelector('#search');
search.addEventListener('input', (e) => {
  console.log('검색어:', e.target.value);
});
 

📘 (2) 폼 입력 유효성 검사

document.querySelector('form').addEventListener('submit', (e) => {
  e.preventDefault();
  alert('폼이 제출되었습니다.');
});
 

📘 (3) 키보드 단축키 처리

document.addEventListener('keydown', (e) => {
  if (e.ctrlKey && e.key === 's') {
    e.preventDefault();
    alert('저장 단축키 실행');
  }
});

✅ 마무리

자바스크립트 이벤트는 웹의 동적 동작을 담당하는 핵심 요소입니다.

  • 입력 감지: input, change
  • 키보드 조작: keydown, keyup
  • 마우스 동작: click, mouseover, mouseout

이벤트를 효율적으로 관리하면 UX 품질을 높이고,
불필요한 DOM 조작을 줄여 성능까지 개선할 수 있습니다.