0Pricing
React Academy · 강의

유효성 검사 규칙과 오류 메시지

내장 유효성 검사 규칙(required, minLength, pattern)을 적용하고 오류 메시지를 표시합니다.

유효성 검사 규칙과 오류 메시지은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

이 학습에서는 React Hook Form 필드에 기본 제공 검증 규칙을 추가하고 각 입력 아래에 이해하기 쉬운 오류 메시지를 표시합니다.

기본 제공 검증 규칙

register()의 두 번째 인수로 규칙 객체를 전달합니다. 기본 제공 규칙에는 `required`, `minLength`, `maxLength`, `min`, `max`, `pattern`, `validate`가 있습니다.
<input
  {...register('email', {
    required: 'Email is required',
    pattern: {
      value: /^[^@]+@[^@]+\.[^@]+$/,
      message: 'Invalid email address',
    },
  })}
/>

필수 필드

필드를 필수로 만들려면 `required`에 문자열을 설정합니다. 이 문자열이 오류 메시지가 됩니다. `true`로 설정하면 일반 메시지가 사용됩니다.
register('name', { required: 'Name is required' })
// or
register('name', { required: true })

길이 제약 조건

`minLength`와 `maxLength`를 `{ value, message }` 객체와 함께 사용해 문자 수 제한과 사용자 지정 오류 메시지를 설정합니다.
register('username', {
  minLength: { value: 3, message: 'At least 3 characters' },
  maxLength: { value: 20, message: 'At most 20 characters' },
})

패턴 검증

`pattern` 규칙은 RegExp 값을 받습니다. 이를 사용해 이메일 형식, 전화번호 또는 모든 문자열 패턴을 검증합니다.
register('phone', {
  pattern: {
    value: /^[0-9]{10,11}$/,
    message: 'Enter a valid phone number',
  },
})

오류 표시하기

formState에서 `errors` 객체를 읽습니다. 검증에 실패한 각 필드에는 `message` 속성이 있는 항목이 포함됩니다. 조건부로 입력 아래에 렌더링합니다.
const { register, handleSubmit, formState: { errors } } = useForm();

<input {...register('email', { required: 'Required' })} />
{errors.email && <p className="error">{errors.email.message}</p>}

validate를 사용한 사용자 지정 검증

`validate` 규칙은 유효하면 `true`를, 유효하지 않으면 오류 문자열을 반환하는 함수를 받습니다. 기본 제공 규칙으로 표현할 수 없는 업무 로직에 사용합니다.
register('age', {
  validate: value =>
    parseInt(value) >= 18 || 'You must be at least 18',
})

여러 사용자 지정 검증기

같은 필드에서 여러 사용자 지정 검사를 실행하려면 이름이 지정된 검증기 객체를 `validate`에 전달합니다.
register('password', {
  validate: {
    hasUpper: v => /[A-Z]/.test(v) || 'Needs uppercase',
    hasDigit: v => /[0-9]/.test(v) || 'Needs a number',
  }
})

오류 개수 표시하기

제출 버튼을 활성화하거나 비활성화하고 요약을 표시하려면 전체 오류 수를 셉니다. Object.keys(errors).length를 사용합니다.
const hasErrors = Object.keys(errors).length > 0;
<button type="submit" disabled={hasErrors}>Submit</button>

오류 입력 스타일 지정하기

오류가 있는 입력에 CSS 클래스를 적용해 시각적으로 빨간 테두리를 표시합니다. errors[fieldName]을 확인하여 조건부로 클래스를 적용합니다.
<input
  {...register('email', { required: true })}
  className={errors.email ? 'input-error' : ''}
/>

빠른 확인

React Hook Form에서 'email'이라는 이름의 필드에 대한 오류 메시지를 어떻게 표시하나요?

정리

register()의 두 번째 인수로 검증 규칙을 추가합니다: required, minLength, maxLength, pattern, min, max, validate. formState에서 errors[fieldName].message를 읽어 메시지를 표시합니다.

다음 학습

다음 학습: **Zod를 사용한 스키마 검증** — @hookform/resolvers와 Zod 스키마를 통합하여 형식 안전한 양식 검증을 구현합니다.

자주 묻는 질문

“유효성 검사 규칙과 오류 메시지” 강의는 무료인가요?

네 — “유효성 검사 규칙과 오류 메시지” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“유효성 검사 규칙과 오류 메시지”에서 뭘 배우나요?

내장 유효성 검사 규칙(required, minLength, pattern)을 적용하고 오류 메시지를 표시합니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

React Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“유효성 검사 규칙과 오류 메시지” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. React Hook Form 시작하기
  2. 유효성 검사 규칙과 오류 메시지
  3. Zod로 스키마 유효성 검사하기
  4. useFieldArray로 동적 필드 다루기
← React Academy(으)로 돌아가기