Mozilla에 합류하며

ko생성일: 2025. 6. 17.갱신일: 2025. 6. 17.

이 글에서는 저자가 Mozilla DOM Core 팀에 합류하게 된 배경과 웹의 미래, 그리고 새로운 목표에 대해 이야기합니다.

Mozilla에 합류하며

오늘은 나의 새로운 역할, 즉 Mozilla의 DOM Core 팀에서의 첫 번째 날이다. 이전에 썼던 100 patches to 5 browsers in 18 months라는 글을 읽어봤다면, 이번 소식이 놀랍지 않을 수도 있고, 어쩌면 완전히 의외일 수도 있다! 그 글에서 했던 이야기를 다시 한번 강조하고 싶다:

새로운 일자리를 찾고 있나요?

그 답은 항상 "아니오"였다. 나는 브라우저에 기여하면서 누군가에게 고용될 목적이 아니었다. 내가 웹을 정말 사랑하고, 웹이 더 발전하기를 바랐기 때문에 일해왔다. 새로운 역할을 그다지 찾고도 있지 않았고, 8년 가까이 GitHub에서 지내는 동안에도 적극적으로 구직 활동을 하지 않았다(스타트업 몇 곳에서는 전 동료들과 이야기를 나누며 가볍게 알아보긴 했으나, 내 열정은 웹에 있다는 것과 웹 발전을 지원하는 곳에서만 일하고 싶다고 밝혔다). 내가 그 글 마지막에 했던 말을 지금도 변함없이 믿고 있다. 나는 진심으로 GitHub이 웹의 좋은 관리자가 될 수 있는 위치에 있다고 생각한다! 하지만 나에게는 그것만으로 충분하지 않았다.

나는 무언가 큰 변화가 다가오고 있다고 느낀다. 오랫동안 웹은 문서 위주로 훌륭한 플랫폼이었고, 훌륭하지만 약간은 부족한 애플리케이션 플랫폼이었다. 그 간극을 프레임워크들이 메워줬지만, 이제는 웹 자체가 SignalsObservables 같은 리액티브 패턴을 내장하며 수렴점에 점점 가까워지고 있다. 디자인 시스템은 웹이 앞으로 개선해야 할 부분을 명확히 드러내고 있으며, 각 브라우저 벤더들도 이 사실을 인식하고 있다. OpenUI 같은 이니셔티브는 여러 아이디어를 실험하며 웹에 popovers, carousels, customizable select, command and commandfor 등 풍부한 능력을 제공하고 있다. 새로운 CSS Form Control 명세는 동일한 폼 컨트롤을 단지 일부 만 바꾸고 싶어서 반복 구현하던 개발자들에게 엄청난 역량 을 다시 돌려주고 있으며, View Transitions은 앱과 웹의 경계를 허물 예정이다. 나는 웹이 다음 단계로 진화하는 중요한 시점에 있다고 믿는다. 2010년대에 CSS가 발전하여 우리가 border-radius, box-shadow를 얻기 전까지 9-slice 스프라이트 시트를 그리던 고생을 뒤로하게 했던 것처럼, 2020년대에는 HTML & CSS도 또 한 번 도약할 것이다. 우리는 2030년에 가서 "<select> 커스터마이즈하기가 얼마나 어려웠는지" 혹은 "애플리케이션 메뉴를 사방팔방 코드로 겨우 짜던 시절"을 웃으며 농담하는 날이 올 것이다. 곧 아주 몇 줄의 HTML로 끝나는 일이 될 테니까.

이런 변화가 다가오는 시점에서, 나는 갈림길에 서 있는 자신을 발견했다. 나는 앞으로도 GitHub의 후방에서 웹을 이끌고, 브라우저가 아닌 기업들도 웹 발전에 참여할 수 있음을 보여주는 역할에 머물 것인가? 혹은 여기서 한 발 더 나아가, 내가 직접 기대하는 미래의 웹을 만들어갈 것인가? 사실 이건 선택지조차 아니라고 느꼈다. 답은 너무나 분명했다. 지난 1년간 나는 개인 시간 1주일에 20시간 정도를 투자해 브라우저를 해킹해왔다. 작년에는 다양한 기능 작업을 위해 연휴를 3주나 써 가며(예를 들어, 12월에는 Firefox에서 Scoped Element Registries 작업을 했다) 작업했다. 그만큼 내가 이런 기능들이 꼭 현실화되기를 바라고, 이걸 추진하는 게 내게 큰 원동력이 됐다. 또 한편으론, 본업일 때의 업무에는 점점 열정이 식어가면서 최고의 결과를 내지 못하고 있다는 생각도 들었다. 주변 친구들에게 농담 삼아 "사실 이건 나에게 직장 이동도 아니고, 이제 퇴근 후 자유 시간이 많아지는 것뿐이다!"라고 했을 정도다.

하지만 이런 결정이 마냥 쉬웠던 건 아니다. 약간의 두려움, 떨림이 있다. 어쩌면 임포스터 증후군일 수도 있겠지만, 그 이상인 것도 있다. GitHub에서의 8년은 매우 편안했다. 동료들과 잘 지냈고, 좋은 친구들도 많이 사귀었고, 동료들 사이에서 인기도 있었고 존중받았다고 생각한다. 나를 "웹 플랫폼 전담 전문가"로 여기는 분들도 많았다. 각 팀이 웹 플랫폼 기능이나, 성능 문제, 과거 결정에 대해 질문을 자주 해왔다. 그 명성은 오래 일한 덕분에 방대한 맥락을 갖게 되었고, UI 개발에도 상당 부분 기여한 결과였다. 20년째 JS 개발자 생활을 해왔기에, 이제 JS에서는 거의 놀랄 일이 없을 정도였다. 하지만 이제 이 모든 안락함을 뒤로 하고, 작년에야 처음 손댄 C++를 풀타임으로 하게 됐다. 아직 여러 모로 헤매는 언어이고, 그것을 공개적으로 개발해야 하며, 매우 큰 영향력이 있는 곳에서 일하는 것이다. 그동안 틈틈이 만들어본 브라우저 기능은 성공적으로 배포해왔지만, 이걸 본업으로 삼았을 때 어떤 느낌일지 전혀 가늠할 수 없다. 하지만 Mozilla가 내게 신뢰를 주었으니, 나는 그 선택이 옳았다는 걸 보여주고 싶을 뿐이다.

이제 내게는 몇 가지 희망이 생겼다. 충분한 시간을 할애해 완성하거나 더 발전시키고 싶은 것들이 있고, 이 역할은 그런 기회를 준다. 원래는 100 patches to 5 browsers in 18 months 글이 나온 지 1년 되는 11월에 후속 포스트를 쓸 생각이었다(그리고 아마도 또 다른 100패치의 성과와 함께). 하지만 이제는 새로운 역할에서의 첫 해를 되돌아보는 글이 될지도 모르겠다. 하고 싶은 일들은 이미 정해뒀다. 팀의 목표와 얼마나 일치할지 모르지만, 대략적인 목록을 적어보겠다:

  • Invoker Commands 배포 완료
  • Close Watcher 완성
  • Dialog 요소의 미구현 부분(새롭운 closedby 속성 등) 구현, 코드 정리
  • popover=hint 등 popover의 새로운 개선사항 Firefox에 도입해 Chrome과의 동등성 달성
  • Richer Text Fields 제안서의 아이디어 일부 현실화
  • Observable에 대해 더 깊이 탐구하고, 완전한 구현을 목표로 작업
  • 곧 공개될 OpenUI 제안(아직 미공개)에 대한 작업 지속
  • Scoped Element Registries
  • Customizable Select

이제 남은 건 실제로 실현하는 것뿐이다.