## 프로젝트 개요
웹 애플리케이션에서 입력 필드 유효성 검사를 타입 시스템으로 보장하여 에러를 사전에 방지하는 시스템 구축
## 주요 기능
- 필수 항목 체크
- 이메일 형식 검증
- 전화번호 정규표현식 검사
- 실시간 입력 시 즉시 피드백 제공
- 사용자 친화적 에러 메시지 출력
## 사용 방법
1. HTML 폼 요소와 연결된 input 필드 생성
2. validateForm 함수 호출하여 유효성 검사 수행
3. 반환된 에러 객체를 기반으로 UI 업데이트
## 확장 가능성
- 추가 필드 타입 정의만으로 새로운 검증 로직 구현 가능
- 서버측 검증과 연동할 수 있는 인터페이스 제공
🔷 타입 안전 폼 검증 시스템 구축
TypeScript 예제
중급
난이도
예제
타입
10/13
등록일
타입 안전 폼 검증 시스템 구축
중급태그
코드 예제
// 폼 데이터 타입 정의
interface FormData {
name: string;
email: string;
phone: string;
}
// 유효성 검사 로직
function validateForm(data: FormData): { [key: string]: string } {
const errors: { [key: string]: string } = {};
// 필수 항목 체크
if (!data.name.trim()) {
errors.name = '이름은 필수 입력사항입니다.';
}
// 이메일 형식 검사
const emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
if (data.email && !emailRegex.test(data.email)) {
errors.email = '올바른 이메일 형식이 아닙니다.';
}
// 전화번호 검사
const phoneRegex = /^010\d{8}$/;
if (data.phone && !phoneRegex.test(data.phone)) {
errors.phone = '올바른 휴대폰 번호 형식이 아닙니다.';
}
return errors;
}
// DOM 조작 및 이벤트 핸들링
window.onload = () => {
const form = document.getElementById('myForm') as HTMLFormElement;
const nameInput = document.getElementById('name') as HTMLInputElement;
const emailInput = document.getElementById('email') as HTMLInputElement;
const phoneInput = document.getElementById('phone') as HTMLInputElement;
const errorMessages = {
name: document.getElementById('nameError'),
email: document.getElementById('emailError'),
phone: document.getElementById('phoneError')
};
form.addEventListener('submit', (e) => {
e.preventDefault();
const data: FormData = {
name: nameInput.value,
email: emailInput.value,
phone: phoneInput.value
};
const errors = validateForm(data);
// 에러 메시지 업데이트
Object.keys(errors).forEach(key => {
if (errorMessages[key as keyof typeof errorMessages]) {
errorMessages[key as keyof typeof errorMessages]!.textContent = errors[key];
}
});
});
};
등록일: 2025년 10월 13일 03:22
언어 정보
언어
TypeScript
카테고리
Web
인기도
#7
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요