Skip to main content

Command Palette

Search for a command to run...

TIL: esbuild의 처리 방식

Updated
1 min read

swc의 변수 처리 패스를 병렬화하려고 고민하다가, esbuild에 좋은 구현체가 있을 것 같아서 그걸 참고하려고 소스코드를 봤다.

근데 보다보니까 뭔가 모듈 개수가 너무 적었다. 그리고 transform에 관련된 것처럼 보이는 모듈이 하나도 없었다.

swc 모듈은 이렇게 많은데 말이다.

그래서 대충 훑어보니 JsFeature이라는 타입이 있었다. 그 타입으로 검색하면 관련 모듈들이 나올테니 그걸로 검색해봤는데, 역시 transform에 관련된 모듈이 없었다. 그러면 파서나 렉서에서 처리한다는 것일거고, 마침 검색 결과에 파서도 있길래 봤다.

보니까 파서에서 최신 문법을 처리하고 있었다. 솔직히 이걸 보고 좀 실망했다. 실망한 이유는 최근에 내가 러스트의 가성비가 안좋다는 생각을 하고있었기 때문인데, 구체적으로 말하자면

제약에 비하면 최적화가 잘 안되는 것 아닌가

go로 swc를 짰으면 훨씬 더 빠르지 않았을까

이런 생각들이었다. 두번째는 &mut 두 개 못 만드는 제약이 너무 빡세서 러스트로 짜다보면 병렬화가 제한받는 경우가 많은데 그런 경우에 차라리 다른 언어로 병렬 처리를 하는 게 낫지 않았을까하는 소리다.

근데 절대 아니라는 걸 깨달았고, 그게 실망한 이유이다.

swc나 타입스크립트 타입 체커는 '러스트라서' 구현하기 어려웠다. 그래서 좀 쉬운 go 같은 언어로 다시 짜는 게 낫지 않을까하는 일말의 희망? 같은 게 있었다. 그런데 절대 아니다. 내 성격에 제너릭도 없는 언어에서 esbuild처럼 파서에서 신규 문법을 처리하진 않았을 것이고, 당연히 지금보다 훨씬 느렸을 것이다.

More from this blog

한국의 학벌에 대한 생각

내 블로그의 제목이 kdy1: The way I think 인만큼 앞으로는 내 생각을 더 자주 올리려고 한다. 한국 기준으로, 학벌은 사람을 볼 때 꽤나 유용한 지표이지만, 절대적이지는 않다. 경험적인 얘기일 뿐이지만, 성균관대학교 자퇴생으로서 느낀 것들이 몇 가지 있다. 대학까지 간 사람의 학벌은 학습 능력 x 성실함 에 대체로 비례한다. 그래서 의미가

Apr 3, 20261 min read

인간 지능에 대한 메모장

최종 업데이트: 2026/03/15 지능의 유전 현재 인류 기준으로, 고지능자는 고지능 유전자가 많이 겹친 사람이다. 지능의 유전엔 X 염색체가 매우 중요한 역할을 한다. 그리고 이게 남자와 여자의 지능 분포 차이를 만든다. 극상위권에 여자가 거의 없는 이유가 이것이다. 고지능 X 염색체가 여자한테서 발현되려면 2개가 있어야 한다. 이는 인간의 생

Mar 15, 20262 min read

Ai 코딩 팁 2 (한국어)

발표 자료: https://gamma.app/docs/AI--2a52e7tk3eb1ch1 AI 활용법 관련해서 간단하게 발표를 했다. 발표 자료 앞쪽은 전에 블로그에 올린 글이랑 같은 내용이다. 이 글에서는 기존 글에서 다루지 않은 내용들을 다루겠다. 에러 메시지 및 로깅 구체적 타입 및 스키마 활용 any 타입은 사람에게도 위험하지만, AI에게는 더 위험하다. 마찬가지로, JSON.parse처럼 아무 제약 없는 파싱 느슨한 인터페이스 ...

Jan 30, 20265 min read

kdy1: The way I think

233 posts