본문 바로가기
Programming

React 폼 처리와 유효성 검사

by 나무수피아는 지식의 가지를 뻗어가는 공간입니다. 2025. 11. 1.
반응형

📋 폼 처리와 유효성 검사

React에서는 폼 요소의 상태를 컴포넌트가 직접 제어하는 방식인 제어 컴포넌트(Controlled Component)를 사용합니다.
이 글에서는 입력 폼 처리와 기본적인 유효성 검사까지 다뤄보겠습니다.

1. 제어 컴포넌트란?

HTML의 <input>, <textarea> 등을 React state로 제어하는 방식입니다.
사용자의 입력값이 state에 저장되므로 즉각적인 검증, 조건부 렌더링 등에 유리합니다.

2. 기본 예제

import React, { useState } from 'react'; function SimpleForm() { const [name, setName] = useState(''); const handleSubmit = (e) => { e.preventDefault(); alert('입력된 이름: ' + name); }; return ( <form onSubmit={handleSubmit}> <label> 이름: <input type="text" value={name} onChange={(e) => setName(e.target.value)} /> </label> <button type="submit">제출</button> </form> ); }

3. 유효성 검사 추가

아래 예제는 이름이 비어 있으면 제출하지 못하도록 하고, 에러 메시지를 보여줍니다.

import React, { useState } from 'react'; function ValidatedForm() { const [name, setName] = useState(''); const [error, setError] = useState(''); const handleSubmit = (e) => { e.preventDefault(); if (name.trim() === '') { setError('이름은 필수 입력 항목입니다.'); } else { setError(''); alert('이름: ' + name); } }; return ( <form onSubmit={handleSubmit}> <div> <label>이름:</label> <input type="text" value={name} onChange={(e) => setName(e.target.value)} /> </div> {error && <p style={{ color: 'red' }}>{error}</p>} <button type="submit">제출</button> </form> ); }

4. 고급: 이메일과 패스워드 유효성

정규식을 활용해 이메일, 패스워드 등의 입력값을 실시간으로 검증할 수 있습니다.

  • 이메일: /^[^\s@]+@[^\s@]+\.[^\s@]+$/
  • 비밀번호: 최소 8자, 숫자/문자 조합 체크 등

5. 참고 라이브러리

  • react-hook-form: 간결한 코드로 강력한 폼 처리
  • formik: 폼 관리와 유효성 검사를 함께 제공
  • yup: 유효성 검사용 스키마 라이브러리

✅ Tip: 대규모 폼이 필요하다면 Formik + Yup 조합을 사용해 보세요.

 

반응형

'Programming' 카테고리의 다른 글

React Redux Toolkit  (78) 2025.11.03
React TODO 리스트 + 라우팅  (50) 2025.11.02
React 상태관리 도구 비교 (Context vs Redux)  (75) 2025.10.31
React Router  (73) 2025.10.30
React Context API  (72) 2025.10.29