AngularJS4 #1. 서론

in #kr-dev7 years ago

TypeScript 라고 들어보았을지 모르겠다.

TypeScript는 ECMAScript 6.0(ES6) 이후의 스펙을 기본으로 하여 기존의 Javascript와는 결을 달리하는 언어로 재탄생 되었다.

이렇게 한 문장으로 요약하면 "저게 뭔 헛소리임?" 이라고 생각 할 수 있다.

일단 Javascript에서는 없었던 DataType이 스펙에 추가되어 TypeScript라고 부른다고 한다.(물론 카더라 통신. 정확한 내용은 확인하지 않았다.) 그리고 Class기능이 탑재가 되어 기존의 prototype이라던지 아니면 그와 유사한 기능을 억지로 구현했던 시절과는 다르게 extends, implements 기능이 제대로 구현이 되었고 컴파일러를 통해 js 파일로 변환한다.(물론 TypeScript를 지원하는 브라우저 - 크롬 등 - 에서는 js로 변환하지 않아도 사용이 가능하다 한다)

게다가 static 이라던지 abstract 키워드도 지원하여 추상화 클래스, 인터페이스 클래스 등등등 기존에 갖고 있던 고급언어들의 특징과 스펙을 고스란히 구현했다. 한마디로 Javascript는 이제 지는 해가 된 것이다.

과거에도 이런 일이 있었다.

기억할지 모르겠지만 Adobe Flash의 ActionScript가 이와 같은 모양새였는데 ActionScript 2.0에서 ActionScript 3.0으로 넘어갈 때 엄청난 센세이션이 일어났었다.

대표적으로 기존의 ActionScript2.0 개발자들 중 3.0으로 넘어갈 수 있었던 개발자의 수는 전체 개발자 풀(Pool)에서 약 20%내외였으며(10% 정도라고 보는 사람들도 많다) ActionScript 3.0과 Flex 프레임워크가 등장하면서 개발 생산성 향상으로 이어졌다. 한마디로 ActionScript 2.0 시장은 ActionScript 3.0이 등장한이후로 약 2년 만에 SI 프로젝트 쪽에서 그 수요는 거의 사라졌다. 물론, 몇몇 프로젝트에서는 기존의 작업물 때문에 수요가 발생하기도 했지만 신규 개발 수요는 거의 사라졌다고 보는게 옳다.

그 때도 같은 이야기를 했었다. 기존의 개발자 풀이 있고 작업물이 있고 절대로 2.0의 수요는 줄어들지 않을 것이다. 라고 했다. 그리고 2년 뒤에 거짓말처럼 ActionScript 2.0 밖에 개발하지 못했던 개발자들은 3.0을 배우기 위해 안달이 났고 2.0의 수요는 거의 찾아보기 힘들어졌으며 결국 3.0으로 넘어가지 못했던 개발자들은 다른 직군으로 전향해야 했다.

그런 일이 이제 눈앞에 벌어졌다. 기존의 Javascript에서 TypeScript로 판세가 기울것이다. 특히 TypeScript는 이번에 신규 프로젝트에 적용해본 결과 일반 Javascript 생산성에 비해 약 50~100%정도의 생산성 향상을 할 수 있었고(느낌적인 느낌이다. 결코 산술적으로 계산해본 적 없다.) 컴파일 단계에서 발생하는 오류들을 잡는 것 또한 Javascript보다 수월하다. 그리고 Backend와 Frontend의 분리 또한 명확하게 나눌 수 있어서 훨씬 간편하게 개발을 진행 할 수 있었다.

문제는 기존의 고급언어(Java, C, C++, C#...등)을 다뤄본 경험이 있는 개발자라면 생각보다 쉽게 접근이 가능하나 소위 프론트앤드 개발자라고 이야기 하는 기존 Javascript만 다뤘던 개발자들은 접근하기 꽤 까다로운 부분이 있다. 한마디로 접근장벽이 상당히(?)라고 하기엔 너무 높다는 이야기다.

기존의 HTML과 jQuery를 좀 다루면서 "나 프론트앤드 개발자에요" 했던 사람이나 jQuery나 그외 다른 라이브러리들을 능숙하게 다루면서 Ajax 통신을 하며 데이터를 비동기로 다루며 Event Driven 방식의 코딩을 어느정도 했다고 자부하는 개발자들 조차 TypeScript가 갖고 있는 기술장벽을 넘기에는 꽤 많은 시간을 들여야할 것으로 생각이 된다.

이런 TypeScript를 갖고 내가 아무리 포스팅 해봤자 무슨 도움이 되겠느냐마는 내가 프로젝트를 진행하면서 겪었던 문제들과 그 문제들을 해결하는 방법들을 공유하면 그래도 좀 도움이 되겠거니 싶어서 연재를 시작한다.

이 카테고리에서는 AngularJS 4.x 버전을 기초로 Frontend 개발 하는 법을 연재하며 그냥 따라왔더니 서비스 하나가 만들어졌네요. 하는 내용을 한번 진행해보려고 하니 궁금한점은 댓글로 남겨주기 바란다.

이제 시작.

Sort:  

Typescript!! 멋지네요.
응원합니다.

최근에 https://colyseus.io/ 에서 제공하는
node.js 기반의 게임 서버 코드가 있는데요.

여기에 ts가 있어서 이게 뭐지? 하고 검색했었는데
마침 이렇게 글을 올려주시다니!!

정말 좋은 글이라고 생각해요.
자주 찾아와서 읽을게요!

감사합니다~ Angular 말고도 TypeScript 관련 포스팅도 종종 올리겠습니다~