
10일짜리 '해크'가 인터넷을 삼켰습니다: 완벽함보다 중요한 것
자바스크립트 탄생 30주년을 맞아, 완벽한 설계보다 시장의 적시성과 생존이 소프트웨어 개발에서 왜 더 중요한지 풀링포레스트 CTO의 시선으로 살펴봅니다.
송찬영
CTO

안녕하세요. 풀링포레스트 CTO 송찬영입니다.
최근 개발자 커뮤니티에서 아주 흥미로운, 그리고 동시에 저를 깊은 생각에 잠기게 한 소식을 접했습니다. 바로 우리가 매일 숨 쉬듯 사용하는 자바스크립트(JavaScript)가 세상에 나온 지 30년이 되었다는 소식입니다. 놀라운 점은 이 언어의 초기 버전이 넷스케이프의 브렌던 아이크(Brendan Eich)에 의해 단 10일 만에 만들어졌다는 사실입니다. 흔히 '해크(Hack)'라고 부르는, 급하게 뚝딱거려 만든 결과물이 지금 전 세계 웹사이트의 98.9%를 지배하고 있다는 사실은 기술 리더로서 많은 감정을 불러일으킵니다.
솔직히 고백하자면, 저는 풀링포레스트 초기 시절 팀원들에게 "완벽한 코드"를 강요하곤 했습니다. 확장성 없는 아키텍처는 죄악시했고, 변수명 하나, 함수 구조 하나를 두고 PR 리뷰에서 몇 시간씩 논쟁을 벌이기도 했죠. 그 결과는 어땠을까요? 우리는 종종 시장이 원하는 타이밍을 놓쳤습니다. "조금만 더 다듬고 내보내자"는 욕심이 결국 고객이 우리 제품을 만날 기회를 늦춰버린 셈입니다.
자바스크립트의 역사는 정반대의 교훈을 줍니다. 1995년 당시 넷스케이프는 웹을 동적으로 만들 무언가가 시급했고, 브렌던 아이크는 경영진의 압박 속에서 문법은 자바(Java)처럼 보이지만 내부는 스킴(Scheme)과 셀프(Self)를 섞은 기묘한 언어를 10일 만에 구현해냈습니다. 그 급박함 탓에 자바스크립트는 태생적으로 수많은 기형과 불일치를 안게 되었습니다. 빌 게이츠가 "왜 계속 스펙을 바꾸냐"며 불평했다는 일화나, 마이크로소프트가 JScript라는 독자 노선을 타며 브라우저 호환성 지옥이 열렸던 역사는 유명합니다.
하지만 중요한 건, 자바스크립트가 '살아남았다'는 것입니다. 당시 완벽하게 설계되었다고 칭송받던 수많은 언어들이 사라질 때, 엉성해 보이던 이 언어는 살아남아 서버(Node.js), 모바일(React Native), 데스크톱(Electron)까지 영역을 확장했습니다. 심지어 이름만 비슷할 뿐 "자동차(Car)와 카펫(Carpet)의 관계"라며 조롱받던 자바(Java)의 애플릿은 웹에서 멸종했지만, 자바스크립트는 여전히 건재합니다.
"소프트웨어의 생명력은 코드의 우아함이 아니라, 시장의 필요를 충족시키는 적시성에서 온다"는 것입니다.
물론, 10일 만에 만든 코드의 대가는 혹독했습니다. 초기 설계의 결함 때문에 우리는 지금도 typeof null === 'object' 같은 기괴한 유산을 안고 삽니다. 하지만 개발자 생태계는 이를 불평만 하는 대신, 도구로 극복해냈습니다. 마이크로소프트가 만든 타입스크립트(TypeScript)는 자바스크립트의 야생성에 안전장치를 채워주었고, 최근 우리가 사내 도입을 검토 중인 Cursor나 Claude 같은 AI 도구들은 레거시 코드를 빠르게 리팩토링하도록 돕고 있습니다.
풀링포레스트 팀도 이제는 관점을 조금 바꾸고 있습니다. 초기 프로덕트를 기획할 때는 자바스크립트의 탄생 비화처럼 '속도'와 '작동'에 집중합니다. 대신, 제품이 시장의 검증을 받은 이후에는 타입스크립트를 엄격하게 적용하고 테스트 커버리지 높이는 '안정화' 단계로 신속하게 전환하는 전략을 취합니다. 처음부터 완벽한 성을 쌓으려다 기회를 놓치는 것보다, 일단 판자촌이라도 지어 사람을 모으고 그 뒤에 리모델링을 하는 것이 비즈니스의 생존 방식임을 뼈저리게 느꼈기 때문입니다.
아이러니하게도 지금 오라클(Oracle)이 쥐고 있는 'JavaScript'라는 상표권 때문에 커뮤니티가 이름을 되찾으려는 움직임을 보이고 있다고 합니다. 이름조차 마케팅을 위해 급조되었고 상표권 분쟁에 휘말려 있지만, 그 본질인 기술은 30년 동안 끊임없이 진화하며 개발자들의 가장 강력한 무기가 되었습니다.
독자 여러분, 지금 작성 중인 코드가 완벽하지 않아서 배포를 망설이고 계신가요? 혹은 레거시 코드를 보며 한숨만 쉬고 계신가요? 10일 만에 만든 엉성한 코드가 세상을 바꿨다는 사실을 기억해 주세요. 일단 세상에 내놓으세요. 그리고 끊임없이 고쳐 쓰세요. 살아남는 코드가 결국 좋은 코드입니다.


