[javascript] 타입 체크 및 검증 강화

JavaScript는 동적 타입 언어로서, 변수의 타입을 명시적으로 선언하지 않습니다. 따라서 올바른 데이터 유형을 다루고 코드를 안정적으로 유지하기 위해 강력한 타입 체크와 검증 방법이 필요합니다. 이번 블로그 포스트에서는 JavaScript에서 타입 체크와 검증을 강화하는 방법을 알아보겠습니다.

1. typeof 연산자

JavaScript에서는 typeof 연산자를 사용하여 변수의 데이터 유형을 확인할 수 있습니다. 이 연산자를 사용하면 변수의 데이터 유형을 문자열로 반환합니다. 다음은 typeof 연산자의 예시입니다.

let num = 10;
let str = "Hello";
let bool = true;

console.log(typeof num);  // "number"
console.log(typeof str);  // "string"
console.log(typeof bool);  // "boolean"

2. 인스턴스 타입 검사

때로는 특정 객체의 인스턴스 타입을 확인해야 할 때가 있습니다. 이를 위해 JavaScript에서는 instanceof 연산자를 사용할 수 있습니다. 아래는 instanceof 연산자의 예시입니다.

class Animal {
  speak() {
    console.log('Animal speaks');
  }
}

class Dog extends Animal {
  speak() {
    console.log('Dog barks');
  }
}

let animal = new Animal();
let dog = new Dog();

console.log(animal instanceof Animal);  // true
console.log(dog instanceof Animal);  // true
console.log(dog instanceof Dog);  // true

3. 유연한 타입 검사

typeofinstanceof 연산자만으로는 충분하지 않을 때가 있습니다. 여러 가지 타입을 고려해야 하는 경우, 유연한 타입 검사가 필요합니다. 다음은 유연한 타입 검사를 위한 함수의 예시입니다.

function checkType(value) {
  if (value === null) {
    return "null";
  } else if (Array.isArray(value)) {
    return "array";
  } else {
    return typeof value;
  }
}

console.log(checkType(10));  // "number"
console.log(checkType("Hello"));  // "string"
console.log(checkType(true));  // "boolean"
console.log(checkType(null));  // "null"
console.log(checkType([1, 2, 3]));  // "array"

checkType 함수를 사용하여 최상의 유연성을 가진 타입 검사를 수행할 수 있습니다.

4. 타입 이상 감지

때로는 변수의 타입이 예상과 다른 경우를 감지해야 할 때가 있습니다. 이런 경우 타입 이상 감지를 수행하여 예기치 않은 오류를 방지할 수 있습니다. 아래는 타입 이상 감지를 위한 함수의 예시입니다.

function validateType(value, expectedType) {
  if (checkType(value) !== expectedType) {
    throw new Error('타입이 일치하지 않습니다');
  }
}

validateType(10, 'number');  // Pass
validateType("Hello", 'string');  // Pass
validateType(true, 'boolean');  // Pass
validateType(null, 'object');  // Pass
validateType([1, 2, 3], 'array');  // Pass
validateType("Hello", 'number');  // Throws error

validateType 함수는 예상한 타입과 실제 타입이 일치하지 않을 때 에러를 발생시킵니다.

JavaScript에서 타입 체크와 검증을 강화함으로써 안정적이고 신뢰할 수 있는 코드를 작성할 수 있습니다. 이러한 접근 방법을 적극적으로 활용하여 JavaScript 애플리케이션의 품질을 향상시킬 수 있습니다.

좀 더 심도 있는 정보는 Google Web Fundamentals에 제공되어 있습니다.


이상으로 JavaScript의 타입 체크 및 검증에 대해 알아본 내용을 마치도록 하겠습니다. 읽어주셔서 감사합니다.