Typescript?

Parker.Park·2022년 3월 23일
0

코드캠프

목록 보기
7/34

Typescript?

한 동안 무슨 의미인지도 모르며 작성을 미루었다. 다른 사이트에서 읽어봐도 의미가 와닿지가 않았다(ㅠㅠ).
그러다가 역시 강의 때 설명을 들으니깐 의미가 팍팍 와 닿았다
Javascript 언어를 정적인 언어로 명시하는 기능이라고 한다. 개발단계에서 자개발자가 의도한 변수나 함수등의 목적을 더욱 명확히 전달하고, 코드 자동완성이나 잘못된 변수/함수 사용에 대한 알림같은 피드백을 받을 수 있게 된다고 한다.
협업 단계에서 상호간에 인풋과 아웃풋을 명확하게 표현 가능하게 한다고 한다.

동적? 정적 언어?

정적타입 언어(Static Typed)와 동적타입 언어(Dynamic Typed)를 구분하는 기준은 코드의 상수, 변수, 함수 등에 대한 타입을 언제 확인지 라고 한다. 타입을 컴파일 타임에 확인하는 언어를 정적타입 언어, 런타임에 확인하는 언어를 동적타입 언어라고 한다.

//Dynamic Typed Example
var a = 0 // number type
a = true // boolean type
a = [] // array type
// 에러없음

//Static Typed
let a = 0 // number type
a = true // boolean type
a = [] // array type
// 컴파일 에러

컴파일?

컴파일이란 어떤 언어의 코드를 다른 언어로 바꿔주는 과정이라고 한다. 어떤 프로그래밍 언어로 쓰여진 소스 파일을 다른 언어로 바꿔주는 번역 작업이라고 한다. 대개는 프로그래밍 언어를 기계어를 바꾸는 과정을 의미한다.

컴파일 과정??

그러고보니 실행과정에 대해서 궁금해 졌다. 전처리기를 통해서 컴파일러가 작동하고 어셈블러를 거친 후 링커를 통해 실행한다고 한다.
어셈블러는 어셈블리어를 기계어로 바꿔주는 프로그램인데 기계어 전단계 언어라고 보면 된다고 한다.
링커는 여러 소스파일에서 나온 결과물을 합치고 라이브러리도 포함시키는 등 별도의 작업을 수행하는 프로그램이다.
보통 컴파일러라고 링커까지의 과정을 다 아우르는 의미라고 한다.

컴파일 실행과정

정적 언어와 동적언어의 차이

정적 타입(Static Typed)언어는 컴파일 단계에서 확인하기 때문에 오류를 미리 방지할 수 있다. 특히나 사용자에게 배포되는 앱의 경우 타입 관련한 검증이 런타임에 하게 되면 앱 사용시 타입 불일치 때문에 문제가 발생할 가능성이 크다고 한다.
또한 가독성이 좋아진다는 장점이 있다.
동적 타입(Dynamic Typed)언어는 정적타입 언어에 비해 비교적 유연하다고 하다. 그렇기 때문에 규칙일 짧아지고 빠르게 습득가능하다.

정리하자면

Javascript 는 동적인 언어이다. 유연하다는 장점이 개발 단계에서는 독이 될 가능성이 있다고 한다.
특히 협업이 필요한 프론트엔드와 백엔드사에이 Typescript는가 있다면 높은 개발 안정성과 편의성을 확보 할 수 있다고 한다. 이것이 안된다면 커뮤니케이션 로스 또한 그렇고 버그가 남은채로 프로젝트가 마무리 될 수도 있다고 한다.
다시 또 정리하자면 개발 단계 특히나 협업이나 프로젝트 단계에서, 유연성이 높은 javascript의 타입을 갖게하여 미연에 방지하는 라이브러리이다.

참조

[Typescript,나무위키,2022년03월30일접속]
https://namu.wiki/w/TypeScript

[정적타입 언어와 동적타입 언어,깃허브,2022년03월30일접속]
https://jusung.github.io/Static-and-Dynamic-Typed-Language/

[컴파일러,나무위키,2022년03월30일접속]
https://namu.wiki/w/%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC

[컴파일과정,티스토리,2022년03월30일접속]
https://reakwon.tistory.com/52

profile
개발자준비중

0개의 댓글