이 글은 자바스크립트로 처음 프로그래밍을 입문한 자바스크립트 개발자들을 위한 글 입니다.
자바스크립트가 세상에 나온 1995년과 2019년 현재의 웹 생태계는 너무 많이 변했다. 아래는 1998년도 유튜브와 2019년 현재 유튜브 서비스를 캡쳐한 사진이다. 시간이 지남에 따라 서비스들은 이용자들에 입맛에 맞추기 위해 점점 더 복잡해지고 보다 고도화된 대화형 인터페이스를 취하고 있다. 보기만 해도 소름 끼치게 많은 요소들의 인터랙션은 생각만 해도 고개를 젓게 한다. 더 나를 소름 끼치게 하는 것은 이 요소들의 구현은 모두 동적 타이핑으로 이루어진다는 것이다.
이전에는 간단하게 애니메이션 정도만 넣는 시대에서 현재는 모든 웹 어플리케이션들이 SPA 형태로 개발되고 있다. 흔히 우리가 프론트엔드 3대장이라 칭하는 Angular, React, Vue 이 세개의 프레임워크 모두 SPA 형태로 애플리케이션이 구성된다.
라우팅, 상태 관리, 많은 부류의 컴포넌트들로 인해 프론트엔드의 복잡성은 이전 시대와는 차원이 다르다. 또한 현재의 자바스크립트는 프론트엔드 개발 환경에만 국한 되어 있지 않고 백엔드 영역까지 개발할 수 있기에 그 범위에 복잡성은 비교 불가하다. 백엔드가 무슨 말인가, 게임 개발 윈도우 프로그래밍 등 자바스크립트가 사용되는 범위는 매우 넓다. 자바스크립트는 당연시 이러한 대규모 어플리케이션과 멀티플랫폼을 염두하고 만들어진 언어가 아니기에 여러 결함과 한계가 존재한다. (ES 명세가 아무리 개선된다고 한들 동적 타이핑의 한계가 있다.) 이와 같은 복잡성과 결함은 프레임워크에 의존하면 일정부분에 정제된 모델링과 좋은 디자인 패턴으로 어느정도 “견고”한 애플리케이션을 만들 수 있지만, 어디까지나 “일정” 부분임을 알아둬야 한다.
이러한 자바스크립트의 결함과 한계를 극복하기 위해 많은 대안들이 나왔다.
그 많은 대안 중, Microsoft 에서 개발한 타입스크립트가 가장 각광을 받고 있다.
시도된 대안들과 타입스크립트가 각광을 받는 이유를 알고자 한다면 우선 정적 타이핑과 동적 타이핑에 대해 이해를 해야하지만, 실상 자바스크립트로 프로그래밍을 배운 개발자들에게 상당히 어려운 내용일 수 있어 이 문서에는 다루지 않겠다. 쉽게 타입
이 추가된 자바스크립트라 알아두자. (만약, “타입 그거 왜 필요해 ? 나 이미 앱 개쩔게 만들고 있는데 ㅋ;” 라는 생각이라면 당장 내 강의를 결제해주길 바란다.)
2012년 타입스크립트가 처음 세상에 나온 이후 엄청난 상승곡선을 보이며 인기몰이를 하고 있다. Angular 는 타입스크립트를 공식언어로 채택했고, React, Vue 등에서도 타입스크립트로 개발하는 개발자들이 늘어나고 있다. 이를 반증하듯 타입스크립트에 구인글은 날이갈수록 증가하고있는 상태이다.
(출처: https://www.itjobswatch.co.uk/jobs/uk/typescript.do)
또한 28,000명이 참여한 자바스크립트 관련 서베이 “The State of JavaScript 2017” 설문에서 타입스크립트 사용 경험이 있는 9,345명 중 7,968명은 다시 사용할 의사가 있다고 답했으며, 타입스크립트라는 이름을 들어만 본 14,009명 중 8,796명이 ‘배우고 싶다’고 답했다. 위 설문 조사를 통해 타입스크립트를 사용해본 개발자와 그렇지 않은 개발자 모두에게 인기 있는 기술임을 알 수 있다. 이제는 더 이상 타입스크립트가 “선택” 이 아닌, 필수가 되었다. 하지만 안타깝게도 한국에 많은 자바스크립트 개발자들은 타입스크립트란 새로운 개념들을 많이 어려워하고있다. 물론 해외도 예외는 아니지만, 국내는 특히 심하다.
이러한 어려움을 느끼는 가장 큰 요인은 “정적타입과 동적타입”에 대해 구분을 하지못한다는 것이며, 두번째로는 국내에 타입스크립트를 학습할 수 있는 환경이 잘 조성되지 않았기 때문이라 생각된다.
이번에 패스트 캠퍼스에서 타입스크립트 강의를 하게 되었다.
만약 런타임에서의 오류를 피하고 개발 생상선과 안정성을 높이고 싶다거나, 리팩토링할때마다 매번 키보드 샷건 때리시는 분이라면 내 강의를 보기 바란다.
내 강의를 보고 샷건 빈도가 같거나 늘었다면 나를 때려도 좋다.
- 이 강의는 2018년 부터 준비한 강의이다.
- 현재 타입스크립트를 구인하는 회사는 날이 갈수록 증가하지만 국내에는 타입스크립트 개발자 풀이 적다. 지금 타입스크립트 배우고 더 좋은 곳으로 취직/이직하자.
- 강사 본인은 모든 앱들을 타입스크립트로 개발할 만큼 타입스크립트 광팬이다. 개념이해를 넘어 실제 프로덕트레벨에서의 타입스크립트를 활용을 알려준다.
- 4주라는 제한된 시간이지만 열심히 준비한 만큼 꼭 수강생분들이 한 단계 업그레이드할 수 있는 계기가 될 수 있도록 최선을 다할 것 이다.
수강생분들에 한에 슬랙 채널 등에서 1:1 질문을 할 수 있다. 모르는거 궁금한거 물어봐주길 바란다. 굳이 타입스크립트가 아니더라도 배포, 서버리스, 람다, RxJS 등 모르는 부분이 생긴다면 언제든 질문해라 !*
- 강의 보러가기
- 강사 인터뷰
- Getting Started with Functional Reactive Programming Using RxJS
- 나는 코드를 쓸테니, 너는 인프라를 맡거라.
커리큘럼은 아래와 같이 구성 되어있다. 열심히 준비 했으니, 많은 관심을 가지고 와주셨으면 좋겠다.
자바스크립트에 정적 타이핑을 도입하고자 하거나 안정성과 생산성 에 관심이 많은 자바스크립트 개발자라면 본인 강의를 꼭 보는 것을 추천한다.