The New Generation of JavaScript

May 18, 2024

JS 는 간단한 장남감? 같은 언어로 시작하여 이렇게 큰 생태계를 가진
정말 대단한? 언어이다.

1997년 부터 약 2007년 까지 ES4 까지의 진화를 거치며 그때 당시 주류에 있던
flash, actionScript 와 경쟁하며 승리해 왔다.

ES5NPM, 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 의 통합서비스 제공업체들,
그리고 클라우드 플랫폼의 발전 등으로 인해 이전에 비해 개발하기 너무 편해진건 또 장점이다.

엔지니어적인 발상보다 현실세상에서 발휘할수 있는 창의적인 아이디어가 있다면
이를 세상에 표현할 수 있는 방법도 쉬워졌다는 것이다.
그뒤에도 당연히 많은 노력이 필요하지만 그래도 짐이 점점 덜어지니 이또한 좋다.

적다보니 글의 흐름이 마음대로 갔는데 내 블로그는 원래그렇다.
여튼 잘 살아남자.