[TIL038] 타입 스크립트 TypeScript 기본 개념

SEONG CHAN LEE·2024년 6월 24일

TIL

목록 보기
38/53

20240624 38일차


TypeScript 기본 개념

자바스크립트의 한계점?

그동안 쭉 무리없이 잘 써왔던 자바스크립트가 한계점이 있었다. 과연 무엇일까?

자바스크립트는 동적타입 언어이다. 동적타입 언어는 정적타입 언어보다 간결하고 유연한 코드를 작성할 수 있다.

예시로, 10 - '1' 이라고 계산할 때 자동으로 string열number형으로 바꿔서 계산해주는 것처럼 말이다.

이러한 장점에 따른 단점도 존재한다. 이런 방식 때문에 런타임 시에 변수의 타입(형)이 결정되기 때문에 타입 관련 오류를 잡기 힘들다는 단점이 있다.

let message = "hello";
message = 42; // 형이 달라짐. 코드 작성 시에는 문제가 없지만 런타임 시에 오류 발생

위처럼 이러한 단점으로 인해 변수의 타입이 명시되지 않으면 코드의 가독성이 떨어지고, 프로젝트가 커지거나 협업할 때 문제가 될 수 있다고 한다.

여기서 의문점이 생긴다. 자바스크립트로만 코드를 작성해왔다면, 변수의 타입을 개발 공부를 하면서부터 명시하지 않아 왔고, 큰 프로젝트도 하지 않았다면 무엇이 불편한지 모를 것이다. 내가 그렇다 ㅋㅋㅋ

하지만 앞으로 현업에서 정말 큰 프로젝트를 진행한다면 복잡성이 증가해 변수의 타입을 오해해 치명적인 오류가 일어날 수 있다. 더군다나 자바스크립트 같이 런타임 시에만 오류를 알 수 있다면. 그래서 타입 스크립트가 실무에선 불가결인 이유가 이 때문이지 않을까 싶다.

런타임 (Runtime), 컴파일타임 (Compiletime)

런타임이란 말그대로 코드가 실행되고 동작이 이루어지는 시점이라는 뜻이다.
컴파일 타임은 코드가 실행되기 전, 컴파일러에 의해 번역되는 시점을 말한다.




타입 스크립트 TypeScript

위에서 말한대로, 타입스크립트(TypeScript)는 자바스크립트(JavaScript)를 기반으로 한 프로그래밍 언어로, 자바스크립트의 한계점을 보완하기 위해 만들어졌다.

타입스크립트는 정적타입 언어로, 변수와 함수의 타입을 명시할 수 있다. 컴파일러를 통해 코드 작성 시점에 타입 오류를 잡을 수 있어 개발 초기 단계에서 오류를 줄일 수 있다.


변수 선언 시 타입 명시 방법

let message: string = "hello";
let count: number = 42;
let isDone: boolean = true;

배열 타입 명시 방법

let numbers: number[] = [1, 2, 3];
let strings: Array<string> = ["a", "b", "c"];

함수 표현식 타입 명시 방법

function add(a: number, b: number): number {
    return a + b;
}
//return이 있다면 반환 값에 대한 타입도 명시해야 한다.function greet(name: string): void {
    console.log("Hello, " + name);
}
//return이 없다면 void라고 작성한다.

타입스크립트는 이러한 타입 명시를 통해 런타임 전인 컴파일타임에 타입 검사를 수행해 오류를 발견할 수 있게 한다.




let message: string = "hello"; //타입 명시하는 방법
message = 42; 
// 타입이 다르기 때문에 런타임 전인 컴파일타임에 타입 검사가 이루어져 오류가 발생한다.

이렇게 타입스크립트를 사용하면 코드의 안정성과 가독성이 높아져 대규모 프로젝트나 협업 시에 큰 도움이 된다.



오늘은 완전히 새로운 개념를 배웠고, 익히 들었기 때문에 좀 더 긴장하고, 나름 설레는 기분으로 공부를 했다. 아직까진 타입 스크립트를 왜 사용하는지, 간단하게 타입을 명시 어떻게 하는지 같은 기초적인 부분을 공부했기 때문에 별 다른 어려움은 없었지만 앞으로 얼마나 어려운 부분이 나올지 벌써부터 웃음이 나온다. 잘 극복해보자...!
profile
Develop myself

2개의 댓글

comment-user-thumbnail
2024년 6월 25일

극복 ㄱㅂㅈㄱ

답글 달기
comment-user-thumbnail
2024년 6월 25일

웃음 삐죽

답글 달기