본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://fastcampus.info/4n8ztzq
250714(월) 14일차
문법 - 타입
자바스크립트 : 타입에 관대함
function addAge(age) {
return age + 1;
}
addAge(30);
addAge('30');
자바스크립트는 위 코드를 문제없이 실행한다.
'30'이라는 문자열을 넣어도 버그를 내지 않고 '301'이라는 문자열을 돌려준다.
자바스크립트는 변수에 값을 넣는 순간 타입이 결정되고 언제든 바꿀 수 있다
변수 하나 만들어두고 숫자 넣었다가, 문자 넣었다가, 객체 넣었다가,,,
타입에 관해 신경 쓸 필요가 없는 언어가 자바스크립트
편리해보이지만, 이 자유는 코드를 불안정하게 만드는 주요 원인이 된다
if(typeof age === 'number') {
return age + 1;
} else {
return 0;
}
결국 자바스크립트 개발자들은 이런 실수를 방지하기 위해
항상 런타임 방어 코드를 써야한다
타입스크립트 : 타입에 엄격함
function addAge(age: number): number {
return age + 1;
}
동일한 코드를 타입스크립트에서 작성 후 이 함수에 '30'을 넣으면
컴파일 오류 발생
타입스크립트는 실행 중이 아닌 코드를 짜는 순간 오류를 잡아준다
자바스크립트 : 버그를 앱이 실행될 때(런타임)에 발견됨
타입스크립트 : 버그를 개발자가 코드를 작성할 때(컴파일타임)에 차단됨
타입스크립트를 써야하는 이유
자바스크립트의 자유로운 타입 관리가 편안함을 주는 대신,
치명적인 버그를 낳을 수 있는 불안정한 구조라는 걸 몸으로 느끼게 되면 타입스크립트를 사용할 수 밖에 없다.
물론 타입스크립트에는 타입 외에도 많은 기능이 있지만
그 중 단 하나만 써도 실질적인 효과를 주는 기능은 타이핑
이번 강의는 타입에 대해 배운 시간
개발을 처음 시작할 땐 타입이라는 개념이 피부에 와닿지 않는데
실전으로 들어가면 이야기가 달라진다.
타입을 어떻게 다루는가에 따라, 코드의 신뢰도는 하늘과 땅 차이
이번 강의를 통해 자바스크립트의 느슨한 타입이 실제로 얼마나 위험할 수 있는지 파악했고
타입스크립트가 왜 요즘 프론트엔드 개발의 필수 스킬이 되었는지를 조금이나마 알 수 있었다