The New Generation of JavaScript
May 18, 2024
JS 는 간단한 장남감? 같은 언어로 시작하여 이렇게 큰 생태계를 가진
정말 대단한? 언어이다.
1997년 부터 약 2007년 까지 ES4 까지의 진화를 거치며 그때 당시 주류에 있던
flash
, actionScript
와 경쟁하며 승리해 왔다.
ES5
와 NPM
, NODE
가 활용되면서 급속도로 확장되던 생태계에
Angular
, React
, Vue
와 같은 UI 도구의 등장,
그리고 2019 년에는 Svelt
와 같은 컴파일러 우선 프레임워크가 등장했다.
Typescript
는 Javascript 를 완전히 잡아먹어 더욱 강하게 만들었으며,
이제는 Mobile 과 Desktop 까지 확장되었고, JS 가 침투하지 않은 구간을
찾기 힘든 판국이다.
활용도가 높고 여기저기 많이 쓰이고 있다는 알겠는데,
현재 생태계에서 쓰이는 JS 도구들을 잘 뜯어보면 특이점을 찾아 볼 수 있다.
JS 의 도구들은 점진적으로 채택되고 변화해왔다.
변화 한다는 건 개발자들의 DX에 더 좋은 경험을 준다던가, 최적화가 더 잘되었다던가
메모리 사용량의 변화, 또는 속도와 관련된 업데이트 등이 있다.
현재 JS 도구 중 널리 쓰이는 중요한 도구들을 살펴보자.
webpack ->
Vite
,Rspack
babel ->SWC
Jest ->vitest
eslint ->rslint
,oxlint
node ->deno
,bun
prettier ->dprint
그외 monorepo 를 위한 turborepo
, nx
등이 있고
biome
같은 formatter 도 있다.
아마 아직 주류로 쓰이는 도구가 아닌 것도 있겠지만
어쨋든 도구들은 점진적으로 더나은 방향으로 이동하고 있다.
그럼 이제 해당 도구들의 변화를 봤을때 특이점이 보이는가?
그들은 JS로 만들지 않은 JS 도구 들이다.
대다수 Rust
로 개발되었으며, 그외 Go
, Zig
가 포함되어 있다.
JS 의 핵심도구들은 점점 JS 에서 떠나고 있다.
ES4
까지가 1세대, ES5 ~ 6
나오며 2세대가 되었다.
이때 지금도 주류로 쓰이는 대다수 도구들이 나오게되며 JS의 가장 큰 부흥을 가져왔다.
그리고 JS가 아닌 JS 도구들을 활용하는 새로운 3세대가 왔다.
JS가 아닌 JS 도구들.
이렇게 된 가장 큰 이유는 결국 성능으로 귀결된다.
더작은 번들 사이즈, 더 빠른 속도, 더 빠른 빌드를 위해 결국 핵심 도구들은
결국 JS 를 버릴수 밖에 없었다.
그럼 JS 외 언어를 배워야 하나?
배워두면 좋다. 배워서 나쁠건 없다.
다만 성능
보다 접근성
이 중요하다면 여전히 JS 또는 TS 로 개발은 계속 될 것이다.아마.
접근성이 중요한 부분은 아마 UI 프레임워크를 이용한 개발이 되지 않을까?
핵심도구들의 발전에 기여하고 싶다면 위 언급한 Rust
같은 언어를 배워두면 좋지만
Rust
는 러닝커브가 꽤 높은 편이다.
JS를 주로 활용한 UI 도구의 발전도 만만치 않고 그들을 익히고 응용하는데도 시간을
많이 쏟아야 할 것 이다.
왜냐면 우리의 일자리와 가장 많이 직결된 부분이기 때문이다.
대부분의 사람들에게 직장은 중요하니깐 나역시도 🥲
추가로 생각보다 주춤한 WASM
역시 큰 잠재력을 가지고 JS의 자리를 위협하고 있다.
그리고 Flutter 를 내세운 Dart
도 존재하고.
이런 생태계를 살펴보면 fe 에 입문한 사람들 또는 이제 어느정도 익숙해진 사람들은
어떤걸 공부해야 하고 어떻게 가야 할지 혼란스러울 수 있다.
워낙 많은 양의 내용과 기술들이 쏟아져 나오고, 추가로 이제는 A.I
로 인한 로봇과의
협력도 생각해야 한다.
이제는 예전처럼 한개라도 잘하자는 마음가짐으로는 이런 생태계에서
살아남기 힘들수도? 있다.
모든 걸 공부할 필요는 없지만 알고는 있어야 한다.
존재한다는 걸 알아야 선택지가 많아지고 응용할 수 있는 길이 많아질테니
그래서 최신 기술의 트렌드나 변화와 관련된 뉴스레터 또는 유튜브를
구독하고 살펴보기를 권장한다.
살펴봐야 할 부분이 늘어난 부분도 있지만 기술의 발전으로 인해 장점도 굉장히 많다.
메타프레임워크 의 활성화와 Vercel
, Netlify
와 같은
CI/CD, CDN 의 통합서비스 제공업체들,
그리고 클라우드 플랫폼의 발전 등으로 인해 이전에 비해 개발하기 너무 편해진건 또 장점이다.
엔지니어적인 발상보다 현실세상에서 발휘할수 있는 창의적인 아이디어가 있다면
이를 세상에 표현할 수 있는 방법도 쉬워졌다는 것이다.
그뒤에도 당연히 많은 노력이 필요하지만 그래도 짐이 점점 덜어지니 이또한 좋다.
적다보니 글의 흐름이 마음대로 갔는데 내 블로그는 원래그렇다.
여튼 잘 살아남자.