학습
HTML 클라이언트 측 스크립트 소개
HTML 클라이언트 측 스크립트 소개 — 중급
클라이언트 측 스크립트 소개
1. 도입
클라이언트 측 스크립트는 웹 애플리케이션의 사용자 경험을 향상시키는 데 필수적인 요소입니다. 이를 통해 웹 페이지는 정적인 콘텐츠에서 동적인 상호작용으로 발전할 수 있습니다. 클라이언트 측 스크립트는 사용자 입력에 즉각적으로 반응하고, 서버와의 통신 없이 실시간으로 콘텐츠를 변경할 수 있게 해줍니다.
만약 클라이언트 측 스크립트를 모른다면, 웹 페이지는 단순한 정보 제공의 역할에 그치고, 사용자와의 상호작용이 부족해 사용자의 이탈을 초래할 수 있습니다. 예를 들어, 쇼핑몰에서 사용자가 물건을 장바구니에 추가할 때마다 페이지가 새로 고쳐진다면 사용자 경험은 매우 불편해질 것입니다.
2. 핵심 개념 설명
클라이언트 측 스크립트란?
클라이언트 측 스크립트는 사용자의 웹 브라우저에서 실행되는 프로그램 코드로, 주로 HTML과 함께 사용되는 JavaScript를 포함합니다. 이를 통해 사용자는 웹 페이지와 상호작용할 수 있습니다.
실생활 비유
클라이언트 측 스크립트를 요리사에 비유할 수 있습니다. 요리사는 주방에서 음식을 즉시 조리하여 손님에게 제공하는 반면, 서버 측 스크립트는 주방 밖에서 요리를 준비하고 나중에 손님에게 제공하는 셈입니다. 클라이언트 측 스크립트는 사용자에게 즉각적인 반응을 제공하여 요리사가 요리하는 동안 손님이 기다리지 않도록 도와줍니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| JavaScript | 클라이언트 측 스크립트를 작성하는 프로그래밍 언어 |
| DOM | Document Object Model, 웹 페이지의 구조를 표현하는 모델 |
| AJAX | Asynchronous JavaScript and XML, 비동기식 데이터 전송 |
3. 기본 코드 예제
간단한 HTML 페이지에서 JavaScript를 사용하여 버튼 클릭 시 메시지를 표시하는 예제를 작성해보겠습니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>클라이언트 측 스크립트 예제</title>
<script>
function showMessage() {
alert("안녕하세요! 클라이언트 측 스크립트가 작동합니다.");
}
</script>
</head>
<body>
<h1>클라이언트 측 스크립트 테스트</h1>
<button onclick="showMessage()">메시지 보기</button>
</body>
</html>
실행 결과
- 버튼을 클릭하면 "안녕하세요! 클라이언트 측 스크립트가 작동합니다."라는 경고 창이 나타납니다.
<script>태그에 JavaScript 코드가 포함되어 있습니다.function showMessage()는 버튼 클릭 시 실행되는 함수입니다.alert()함수는 경고 창을 통해 메시지를 사용자에게 보여줍니다.- 버튼에
onclick="showMessage()"속성이 있어 클릭 시 해당 함수를 호출합니다. - 잘못된 코드
- 올바른 코드
- 잘못된 코드
- 올바른 코드
- 클라이언트 측 스크립트는 웹 페이지의 동적 상호작용을 가능하게 하여 사용자 경험을 향상시킵니다.
- JavaScript는 클라이언트 측 스크립트를 작성하는 주요 언어입니다.
- DOM을 이해하고 조작하는 것이 중요합니다.
- AJAX를 통해 비동기식 데이터 전송이 가능해집니다.
- JavaScript 고급 개념 (비동기 처리, 프로미스 등)
- 프레임워크 소개 (React, Vue.js 등)
- 서버 측 스크립팅 (Node.js 등)
코드 한 줄씩 동작 설명
4. 실전 활용 예제
예제 1: 쇼핑몰 장바구니
사용자가 제품을 장바구니에 추가할 때, 페이지를 새로 고치지 않고도 장바구니에 추가된 제품 수를 업데이트할 수 있습니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>장바구니 예제</title>
<script>
let cartCount = 0;
function addToCart() {
cartCount++;
document.getElementById("cartCount").innerText = cartCount;
}
</script>
</head>
<body>
<h1>제품 리스트</h1>
<button onclick="addToCart()">장바구니에 추가</button>
<p>장바구니 수: <span id="cartCount">0</span></p>
</body>
</html>
예제 2: 실시간 검색
사용자가 입력 필드에 입력하는 대로 검색 결과를 필터링하는 기능을 구현할 수 있습니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>실시간 검색 예제</title>
<script>
function filterSearch() {
const input = document.getElementById("searchInput").value.toLowerCase();
const items = document.querySelectorAll(".item");
items.forEach(item => {
item.style.display = item.textContent.toLowerCase().includes(input) ? "block" : "none";
});
}
</script>
</head>
<body>
<h1>실시간 검색</h1>
<input type="text" id="searchInput" onkeyup="filterSearch()" placeholder="검색어 입력">
<div class="item">사과</div>
<div class="item">바나나</div>
<div class="item">체리</div>
</body>
</html>
5. 흔한 실수와 주의사항
실수 1: 함수 호출 시 괄호 누락
<button onclick="showMessage">메시지 보기</button>
<button onclick="showMessage()">메시지 보기</button>
실수 2: DOM 요소가 로드되기 전에 스크립트 실행
<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
<div id="demo"></div>
<script>
window.onload = function() {
document.getElementById("demo").innerHTML = "Hello World!";
};
</script>
<div id="demo"></div>
6. 정리
다음에 학습하면 좋은 주제: