Skip to main content

Command Palette

Search for a command to run...

Deno -> Vercel 이직

Updated
2 min read

새벽에 잠이 안 와서 적은 글이다. 새벽엔 코딩을 할 정도의 집중력이 안 되다보니 할 게 없다.

다른 데에 쓴 글이라서 존댓말인데, 수정하기 귀찮아서 그냥 그대로 올린다.


스펙

학번: 18

전공: 수학과, 소프트웨어 복전

학점: 전체 2.94 / 전공 2.83

공백기: 없음

어학: X

직무관련활동: 오픈소스 프로젝트 개발 ( https://swc.rs )

개발 경험: 비공식 10년차 / 공식 2년차


배경

전 swc라는 오픈소스 프로젝트에 상당한 시간을 쏟아부었습니다. 2017년 12월에 시작했고, 현재 러스트 코드만 22만줄 정도 됩니다. 상당히 규모가 큰 프로젝트다보니 기능이 꽤나 많습니다. 자바스크립트/타입스크립트 파일을 처리하는 기능이 있는데 이게 제 커리어에 큰 영향을 끼쳤습니다. js/ts 파일 처리가 가능하고 react의 jsx 등도 지원하는 툴은 여러가지 있지만 성능이 좋은 툴은 swc가 유일한 상황입니다. 러스트쪽에서 가져다쓰기 좋게 되어있기도 하고요.


과정

전 작년 6월 정도부터 올해 6월까지 Deno 팀과 같이 일했습니다. Deno는 node.js를 대체하겠다는 목표를 가진 js 런타임인데, swc를 쓰기에 절 고용했었습니다. 소프트웨어 컨설턴트 계약을 맺고 상당히 자유롭게 일했습니다. 시급제였는데 제가 대충 시간 기록하고 청구서 보내면 입금해주는 형태였어요.

그러다가 어느 날 트위터를 통해 Vercel의 CEO가 쪽지를 보내왔습니다. swc를 이용해서 next.js 의 빌드 속도를 개선하고 싶다는 내용이었어요. 무슨 일을 하게 되는지나 미래 계획에 대한 화상 미팅을 2번하고나서 일해보는 것도 괜찮겠단 생각이 들었습니다. Deno 쪽에서도 풀타임 계약에 대한 얘기가 있었어서 꽤 오래 고민을 했습니다.

Vercel 쪽이 낫다고 생각한데는 여러가지 이유가 있는데요, 첫번째는 swc의 많은 컴포넌트를 사용한다는 점입니다. Deno와 일할 때는 당연하지만 Deno에서 쓰지 않는 컴포넌트에 대한 작업은 여가 시간에 했거든요. 반면 Vercel은 거의 모든 부분을 씁니다. 그래서 업무 시간에 swc 작업을 하고 여가 시간은 다른 프로젝트에 쓸 수 있었습니다. 오픈소스 프로젝트라는 게 시간이 진짜 엄청나게 들어가기 때문에 이러면 다른 프로젝트는 거의 작업할 시간이 안 나옵니다. 두번째는 보상인데요, Vercel에서 제시한 조건이 훨씬 좋았습니다. 그래서 Vercel 팀에 합류하기로 했고, 관련 계획 문서 보면서 어떤 기능이 제일 중요한지에 대해 얘기하고 바로 작업 시작했습니다.


업무

첫 작업은 minification 개선이었습니다. 웹사이트 로딩 속도를 빠르게 하려면 파일 크기를 줄이는 게 유리한데 그걸 해주는 툴인 terser가 너무 느리거든요. 아직 모든 룰을 구현한 상태는 아니지만, 성능은 4코어 cpu 기준으로 10배까지도 차이납니다.

러스트와 swc를 써서 next.js의 빌드 속도를 개선하는 건 제 업무기도 했지만 동료분들 중에 그게 주 업무인 분이 계셨고요, 그분께 swc의 구조를 최대한 설명해드렸습니다. swc의 러스트 api의 경우 문서가 한 곳에 모여있는 게 아니고 해당 파트마다 달려있기 때문에 그분 혼자서 다 찾긴 힘들었을 거예요.

한 바벨 플러그인은 제가 작업했습니다. 러스트가 약간 어려운 언어라 api 제약이 좀 있거든요. 익숙하지 않은 사람이 짜긴 좀 힘들 것 같아서 제가 재구현했습니다. 그리고 틈틈히 계속 버그 패치를 했습니다.

지금 하는 작업은 css 처리 시스템입니다. Vercel이 만든 styled-jsx 라는 라이브러리를 러스트로 포팅하려면 css를 분석하기 위한 파서와 stylis 라는 css 프로세싱 라이브러리를 러스트로 재구현해야 되거든요.


마치며

전반적으로 업무도 재밌었고, 팀원분들도 매우 친절하셔서 좋았습니다. 영어 실력이 딸려서 회의가 좀 힘들긴 하지만 매일 전화 영어를 하고 있으니 이것도 금방 해결될 것 같아요.

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

Deno -> Vercel 이직