0Pricing
JavaScript Academy · 강의

방어적 프로그래밍과 입력 확인

작은 입력 확인을 작성하고, 가드 절과 안전한 파싱, 기본값, 간단한 객체 검증으로 문제를 일찍 방지합니다.

방어적 프로그래밍과 입력 확인은(는) CoddyKit의 무료 JavaScript Academy 강의입니다. 이것은 2개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 JavaScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. JavaScript Academy 강의에는 총 2개의 강의가 포함되어 있습니다.

방어적 검사 소개

목표: 잘못된 입력을 일찍 차단하여 버그가 퍼지지 않게 합니다.

  • 유형 및 범위 검사
  • 가드 절
  • 안전한 구문 분석
  • 기본값 및 간단한 객체 검증
방어적 프로그래밍과 입력 확인 — 일러스트레이션 1

유형 도우미

숫자 및 비어 있지 않은 문자열과 같은 검사를 재사용할 수 있도록 작은 도우미를 만드십시오.

// Tiny type helpers
function isNumber(n) {
  return typeof n === "number" && Number.isFinite(n);
}

function isNonEmptyString(s) {
  return typeof s === "string" && s.trim().length > 0;
}

console.log("isNumber(3):", isNumber(3));
console.log("isNumber(NaN):", isNumber(NaN));
console.log("isNonEmptyString(\"\"):", isNonEmptyString(""));
console.log("isNonEmptyString(\"hi\"):", isNonEmptyString("hi"));
방어적 프로그래밍과 입력 확인 — 일러스트레이션 2

가드 절 예시

먼저 입력을 검사하고, 오류가 있으면 일찍 중단하여 주 경로를 깔끔하게 유지하십시오.

// Guard clauses: return early if invalid
function buy(quantity) {
  if (!isNumber(quantity)) {
    console.log("Quantity must be a number");
    return;
  }
  if (quantity <= 0) {
    console.log("Quantity must be > 0");
    return;
  }
  console.log("Buying", quantity, "items");
}

buy(3);
buy("3");
buy(0);
방어적 프로그래밍과 입력 확인 — 일러스트레이션 3

대체값을 사용하는 구문 분석

구문 분석 결과를 검증하십시오. 구문 분석에 실패하면 중단하는 대신 작은 대체값을 반환합니다.

// Parse safely and use sensible defaults
function toInt(str, fallback = 0) {
  const n = parseInt(str, 10);
  if (!Number.isFinite(n)) {
    return fallback;
  }
  return n;
}

console.log("toInt(\"42\"):", toInt("42"));
console.log("toInt(\"7px\", -1):", toInt("7px", -1));
console.log("toInt(\"abc\", 0):", toInt("abc", 0));
방어적 프로그래밍과 입력 확인 — 일러스트레이션 4

기본값과 범위

null 또는 undefined의 기본값에는 ??를 사용한 다음 안전한 범위로 제한하십시오.

// Defaults with ?? and simple range checks
function clampPercent(value) {
  // Use 0 as default when value is null or undefined
  const v = (value ?? 0);

  if (!isNumber(v)) {
    return 0;
  }
  // Clamp into 0..100
  const clamped = Math.min(100, Math.max(0, v));
  return clamped;
}

console.log(clampPercent(undefined));
console.log(clampPercent(120));
console.log(clampPercent(-5));
console.log(clampPercent(55));
방어적 프로그래밍과 입력 확인 — 일러스트레이션 5

객체 형태 검사

필수 필드와 간단한 범위를 검사하고, { 정상 여부, 이유 }와 같은 작은 결과 객체를 반환하십시오.

// Simple object validation
function validateUser(u) {
  if (u == null || typeof u !== "object") {
    return { ok: false, reason: "User must be an object" };
  }
  if (!isNonEmptyString(u.name)) {
    return { ok: false, reason: "name required" };
  }
  if (!isNumber(u.age) || u.age < 0) {
    return { ok: false, reason: "age must be a number >= 0" };
  }
  return { ok: true };
}

console.log("good:", validateUser({ name: "Ayla", age: 21 }));
console.log("bad:", validateUser({ name: "", age: -1 }));
방어적 프로그래밍과 입력 확인 — 일러스트레이션 6

방어적 검사 퀴즈

빠른 확인: 방어적인 입력 처리입니다.

방어적 프로그래밍과 입력 확인 — 일러스트레이션 7

복습

복습: 작은 유형 도우미, 가드 절, 대체값을 사용하는 안전한 구문 분석, null 병합 기본값, 범위 제한, 간단한 객체 검증을 사용하여 버그를 일찍 차단하십시오.

방어적 프로그래밍과 입력 확인 — 일러스트레이션 8

자주 묻는 질문

“방어적 프로그래밍과 입력 확인” 강의는 무료인가요?

네 — “방어적 프로그래밍과 입력 확인” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 JavaScript Academy 강의 전체를 잠금 해제할 수 있습니다. JavaScript Academy 강의에는 총 2개의 강의가 포함되어 있습니다.

“방어적 프로그래밍과 입력 확인”에서 뭘 배우나요?

작은 입력 확인을 작성하고, 가드 절과 안전한 파싱, 기본값, 간단한 객체 검증으로 문제를 일찍 방지합니다. 브라우저에서 직접 실행하는 실습 코드로 JavaScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“방어적 프로그래밍과 입력 확인” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. try/catch/finally, throw, 사용자 정의 오류
  2. 방어적 프로그래밍과 입력 확인
← JavaScript Academy(으)로 돌아가기