데이터 타입의 필요성과 동적 타이핑

김현진·2022년 12월 4일

JavaScript

목록 보기
4/17
post-thumbnail

데이터 타입의 필요성

자바스크립트를 사용하면서 데이터 타입의 필요성에대해 고민을 해본적은 한번도 없었는데 이번에 데이터 타입에대해 공부를 하며 데이터 타입의 필요성에 대해서도 알아보는시간을 가졌다.

왜 자바스크립트에서 데이터 타입이 필요할까?

let dataType = 100;

위 코드가 실행되면 컴퓨터는 100을 저장하기 위해 메모리공간을 확보하고, 2진수로 저장한다.
이때 확보해야할 메모리공간의 크기를 알아야 한다.
자바스크립트 엔진은 값의 종류에 따라 정해진 크기의 메모리 공간을 확보한다.
즉, 메모리에 값을 저장하기 위해서는 먼저 확보해야 할 메모리 공간의 크기를 결정해야 한다.

그리고, 모든값은 데이터 타입을 가지며 메모리에 2진수로 저장한다.
메모리에 저장된 값을 데이터 타입에 따라 다르게 해석 될 수있다.

정리

  • 값을 저장할 때 확보해야 하는 메모리공간의 크기를 결정하기 위해
  • 값을 참조할 때 한버너에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
  • 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해

동적 타이핑

자바스크립트는 동적 타입 언어로 변수의 타입 지정없이 값이 할당되는 과정에서 값의 타입에 의해 자동으로 타입이 결정될 것이라는 뜻이다.
그렇기 때문에 자바스크립트는 같은 변수에 여러 타입의 값을 할당할 수 있는데 이를 동적 타이핑이라 한다.

//예시코드
var foo;

console.log(typeof foo);  // undefined

foo = null;
console.log(typeof foo);  // object

foo = {};
console.log(typeof foo);  // object

foo = 3;
console.log(typeof foo);  // number

foo = 3.14;
console.log(typeof foo);  // number

foo = 'Hi';
console.log(typeof foo);  // string

foo = true;
console.log(typeof foo);  // boolean

이러한 동적 타이핑은 편리하지만, 이 편리함의 이면에는 위험성이 있다.

숫자 타입의 변수일것 이라고 예측했지만, 사실은 문자열타입의 변수일수도 있다.
그렇게 때문에 동적 타입의 언어는 유연성은 높지만 신뢰성은 떨어지게 된다.

이러한 이유로 인해 변수를 사용할때 몇가지 주의해야할 사항들이 있다.

  • 변수는 꼭 필요한 경우에 한해 제한적으로 사용한다.
    ->동적타입언어는 타입을 잘못예측해 오류가 발생할수 있음으로 변수의 무분별한 남발은 금물, 필요한 만큼만 최소한으로 유지하여야한다.
  • 변수의 유효번위는 최대한 좁게 만들어 변수의 부작용을 억제해야 한다.
  • 전역변수는 최대한 사용하지 않도록 한다.
    -> 전역변수는 프로그램의 복잡성을 증가시키고 처리 흐름을 추적하기 어렵게 만들며 오류가 발생할 경우 오류의 원인을 특정하기 어렵게 만든다.
  • 변수보다는 상수를 사용해 값의 변경을 억제한다.
  • 변수이름은 변수의 목적이나 의미를 파악할 수 있도록 네이밍해야한다.
    -> 개발자의 의도를 나타내는 명확한 네이밍은 코드를 이해하기 쉽게 만들고 협업과 생산성 향상에 도움을 준다.

0개의 댓글