Flow

먼저 타입스크립트는 마이크로 소프트사에서 개발한 자바스크립트의 슈퍼셋 언어로 자바스크립트에 선택적 타입 시스템을 추가하고 컴파일 과정에서 타입 검사, 자바스크립트로 트랜스파일등과 기존 자바스크립트보다 강력한 자동완성 기능을 제공하는등

그야 말로 타입 시스템의 추가를 넘어 더 편리하고 강력한 기능을 제공해주는 언어로 불리고 있습니다.

그렇다면 오늘 알아볼 Flow는 페이스북에서 제작한 자바스크립트의 정적 타입 검사기 입니다.

기존의 자바스크립트에 타입 주석을 추가하는 방식으로 작성할수있으며 타입 검사를 지원합니다 런타임의 오버 헤드없이 정적 분석만을 수행하며 Babel을 통해 타입 주석제거후 일반 자바스크립트로 변환시킵니다.

간단하게 설명하면 타입스크립트는 새로운 언어이고 동작하는 컴파일러가 따로있으며 구조적 타입 시스템만 지원합니다
반대로 Flow 기존 자바스크립트에 붙히는 타입 검사기며 컴파일 과정을 거치지않고 바벨과 밀접하게 통합되어있는 구조를 가지고있습니다 덤으로 구조적 타입 시스템과 명시적 타입 시스템 모두 지원합니다.


난 타입스크립트를 먼저 배우긴했지만 Flow라는 도구를 한번도 들어본적이 없다.
그렇다면 왜 Flow에 대한 존재를 몰랐을까? 내가 무지했던걸까?

먼저 Flow의 단점으로 코드에디터와 통합이 잘되어있지않다. 우리가 자주 사용하는 VSC에서도 Flow가 무슨 역할을 하는지 알려면 추가적인 익스텐션을 추가해야된다. 둘째로는 한국 커뮤니티에서의 부족한 자료다.

백엔드를 공부해본 사람들은 알거다 한국에 백엔드는 대부분 Spring을 사용한다. 그래서 취업시장을 보면 Nest.js를 사용하는 사람들보단 자바와 스프링을 사용하는 개발자의 채용빈도가 높다 라는 말이있다.

그처럼 한국에서 Flow의 인기가 없고 자료가 없다보니 프론트엔드 시장에서도 당연히 인기 많은 타입스크립트로 개발하는 개발자의 채용률이 훨씬 높고 자료가 많다보니 상대적으로 Flow보단 타입스크립트로 유입되는 개발자가 훨씬 많을거다.