본문 바로가기
C++ 200제/코딩 IT 정보

TypeScript 강의 2. 웹 개발 위상과 도입해야할 이유

by vicddory 2019. 11. 7.


TypeScript 웹 개발 분야에서의 위상

1. 떠오르는 타입스크립트, 2. 저무는 스위프트, 3. 점진적으로 성장하는 코틀린1. 떠오르는 타입스크립트, 2. 저무는 스위프트, 3. 점진적으로 성장하는 코틀린


프론트엔드 개발이 다양해지고 있는 동시에 개발의 동향 또한 다양해졌습니다. 일례로, 브라우저에서 동작하는 JavaScript를 직접적으로 쓰지 않게 되었다는 것입니다. JavaScript는 2015년 이전에는 보수적인 업데이트가 이루어졌었습니다.


Netscape사(현 Mozilla)가 개발하여 기업 간 컨소시엄을 통해 사양이 책정되고 있었죠. 클래스를 도입하는 대규모 업데이트를 일단 목표로 했지만(ECMAScript 4), 당시엔 완성되지 못했습니다. 그러나 ECMAScript 2015 시점에서 대폭적인 업데이트가 더해져 더 개방적인 커뮤니티인 TC39에서 논의하게 되었습니다.

그러나 브라우저의 기본 언어인, 서버 어플리케이션(응용 프로그램) Java 또는 Python에 언제까지 런타임 응용 프로그램에 맞추어 유지보수하고 업데이트할 수는 없습니다. 따라서 고급 문법을 갖춘 언어로 코드를 쓰고, 전통적인 JavaScript로 변환하는 방법을 다양한 사람들(개발자)이 좋아하게 되었습니다. CoffeeScript 등이 일시적으로 널리 사용되었지만, 현재 많이 사용되는 것은 Babel 및 TypeScript입니다.


Babel(이전 6to5)은 오픈 소스로 개발되었으며, 구동 시 ECMAScript의 최신 문법을 해석하여 낮은 버전의 JavaScript 환경에서도 동작하도록 소스 코드를 변환(트랜스퍼 역할)합니다. 플러그인을 사용하면 아직 규약에 정식으로 도입되지 않은 실험적인 문법도 활성화할 수 있습니다. TypeScript는 Microsoft가 개발한 언어로, ECMAScript를 기반으로 형식 정보를 부여할 수 있도록 지원합니다. 일부 예외는 있지만, TypeScript 코드에서 형식 정보를 제외하면 거의 JavaScript입니다.



그리고, 대규모 프로젝트 진행 시 코딩이 편해집니다. 자료형을 일일이 적어야 하는 수고로움은 다소 증가합니다. 또한, 동적 오브젝트 등 JavaScript에서 자주 등장하는 자료형(var)도 잘 처리 할 수 ​​있도록 설계되어 있습니다. 이런 간편한 장점도 있어, 최근에는 타입스크립트를 채용하는 회사가 늘고 있습니다. 유명한 OSS(공개 소프트웨어)도 TypeScript를 도입했습니다.


※ 여기서 잠깐.

오해하면 안 되는 게, 동적 타입이 무조건 나쁘다는 건 아닙니다. C# object, C++ auto 등은 자바스크립트를 베낀 결과로도 보입니다. 그럼 왜 C#, C++에는 이런 자료형이 추가되었을까요? 필요하니까요.


제가 금융권 프로젝트 참여했을 때, 모 은행에선 반환값 타입이 유동적이었습니다. 그래서 c# object를 유용하게 사용했죠. 쓸 때는 써야 합니다. 동적 타입이 무조건 나쁘다고 오해해선 안 됩니다.


Babel에도 플러그인을 추가하여 자료형을 추가할 수 flowtype이라는 Facebook에서 제공한 확장 문법이 있습니다만, 라이브러리에 형태 정보를 붙이는 것엔 수작업이 필요합니다.

정리하면,


  • 새로운 기법을 사용하지만, 브라우저 호환성을 유지하는 코드 작성을 위해 컴파일러를 사용하는 것이 당연
  • 프로젝트 규모가 커지면 형식 정보가 있어서, 오류 검사와 구현(개발) 과정이 쉬워짐
  • 자료형을 특정하는 JavaScript에는 TypeScript과 flowtype 두 가지가 있는데, 점유율이 높은 것은 TypeScript


입니다.


지난 5년 간의 전세계 관심도 : 타입스크립트는 분명 전세계에서 주목하는 언어지난 5년 간의 전세계 관심도 : 타입스크립트는 분명 전세계에서 주목하는 언어


TypeScript를 개발에 도입해야 하는 이유 

"타입 정보를 빼면 JavaScript랑 똑같은데?" 그런데 왜 일부러 다른 툴을 도입하면서까지 TypeScript를 사용해야 할까요?


형식 정보(자료형)를 얻을 수 있으므로 개발 속도가 빨라지므로 충분히 본전은 뽑을 수 있습니다. 또한, 처음부터 TypeScript를 썼을 때 장점은 JavaScript 라이브러리를 컴파일하고 만들 때 형식 정보가 담긴 파일도 함께 처리할 수 있어서 낭비가 없습니다. 처음부터 도입하면 TypeScript 자산이 쌓여 TypeScript 개발은 더 편해집니다.


타입스크립트를 마이크로소프트가 만들었다는 사실을 알고 충격 받았었음타입스크립트를 마이크로소프트가 만들었다는 사실을 알고 충격 받았었음

또한 JavaScript는 매우 유연한 언어입니다. 함수의 인수 형태가 어떻건 다~ 받아들일 수 있어서, 인수로 인해 내부 동작이 크게 바뀌는 코드(메소드, 오버로드)도 쓰려고 하면 쓸 수 있습니다. (진짜로 쓰면 유지보수가 힘들어집니다;;;)


또한 TypeScript 기능을 이용하여 이러한 함수에 자료형을 부여할 수 있습니다. TypeScript를 처음부터 쓰면 동적 자료형은 사용이 줄어들 테고, 결과적으로 자료형, 타입과 관련된 유지 보수 시간이 줄어듭니다.


그 외에도, 유형 정보를 도출해 변환한 다음 구동하는 루프문 등 몇 가지 자바스크립트 코드를 변환할 때 Babel보다 실행 효율이 높습니다.


ES5만 할께요. ES6만 할께요. 타입스크립트만 할께요. 몽땅 안 됩니다. 다 배워야 합니다. 그래서 요즘 힘들어요.ES5만 할께요. ES6만 할께요. 타입스크립트만 할께요. 몽땅 안 됩니다. 다 배워야 합니다. 그래서 요즘 힘들어요.


본 문서에서는 대규모 프론트엔드 개발의 난이도를 낮추고, 버그를 줄이는 타입스크립트 사용 방법, 문법, 환경 구축 등을 소개합니다.


-- 미완성 문서입니다 --

댓글