오픈소스 개발과 팀워크로 완성되는 뤼튼 랩스
안녕하세요, 저는 뤼튼 랩스 팀에서 일하는 백엔드 개발자 카카수(Kakasoo) 입니다.
뤼튼 랩스, 오픈소스 개발을 선도하는 팀의 이야기
뤼튼 랩스는 회사 내에서도 특이한 팀인데, 주된 목표가 바로 오픈소스 개발입니다. 스타트업에서 오픈소스를 다룬다는 점이 흔한 일이 아니기 때문에 많은 분들이 우리 팀의 목표에 대해 의아해하시기도 합니다.
하지만 저는 뤼튼 랩스가 회사의 미래를 준비하는 중요한 역할을 한다고 생각합니다. 과학의 기초과학, 예술의 순수예술처럼, 지금 당장은 바로 수익을 내지는 않지만, 장기적으로 반드시 필요한 일들이죠. 그래서 이 팀에서 하는 일들은 어렵지만, 그만큼 의미 있는 도전이기도 합니다.
뤼튼 랩스, 다른 개발팀과 어떤 점이 다를까요?
저희의 가장 큰 특징은 정교함에 대한 집착입니다. 랩스에서는 작은 함수나 인터페이스 하나도 신중하게 고민합니다. 오픈소스는 전 세계의 개발자들이 사용하는 만큼, 함부로 구조를 바꾸기 어렵기 때문에 처음부터 탄탄한 구조를 만들기 위해 집중하죠. 또한, 함께 일하는 동료들 모두 훌륭한 개발자들입니다.
예를 들어, Typia, Nestia 같은 유명 오픈소스를 만든 삼촌(Samchon), Rust 기반 TypeScript Type-checker stc를 만든를 만든 썬래빗(Sunrabbit) 같은 대단한 개발자들이 함께하고 있어 자연스럽게 많은 것을 배우게 되는 환경이죠.
우리가 다루는 기술은 무엇인가요?
오픈소스 프로젝트에 참여하며 제가 주로 다루는 기술은 타입스크립트입니다. 저는 타입 시스템에 대한 깊은 이해를 바탕으로 다양한 오픈소스 프로젝트를 기여해 왔습니다. 예를 들어, ‘Omit’과 같은 타입을 만들 때, 객체 내부를 추론하는 키 프로퍼티를 통해 새로운 타입을 만들 수 있도록 하였고, 그 과정에서 DeepStrictOmit 같은 타입을 개발했습니다. 저는 이런 유틸리티 타입들을 기반으로 팀에도 기여하고 있습니다!
현재 뤼튼 랩스에서 진행 중인 주요 오픈소스 프로젝트는 크게 세 가지로 나눌 수 있습니다.
Agentica: 웹 개발자들이 AI 에이전트를 쉽게 만들 수 있도록 돕는 TypeScript 기반 프레임워크
Autoview: 타입에 따라 UI를 자동으로 렌더링하는 프론트엔드 라이브러리
Connectors: 에이전트가 외부 기능을 호출할 수 있도록, 사전 정의된 타입 기반 함수들을 제공
이 프로젝트들을 통해 우리는 기술력을 보여주는 것뿐만 아니라, AI 기술이 대중화될 수 있는 기반을 마련하고자 합니다. 또한, 향후 비개발자도 쉽게 에이전트를 만들 수 있는 빌더 서비스도 준비 중입니다.
스타트업에서 오픈소스를 개발하는 것이 가능할까요?
정직하게 말하자면, 스타트업에서 오픈소스를 개발하는 것은 쉽지 않습니다. 오픈소스는 비즈니스에 바로 연결되는 개발이 아니기 때문에 늘 정당성을 고민해야 합니다. 하지만 저는 이 일이 “할 수 있냐”의 문제가 아니라 “해야 하느냐”의 문제라고 생각합니다.
뤼튼은 빠르게 성장하고 있으며, 지금부터 준비해야 할 기술들이 있습니다. 뤼튼 랩스는 바로 그 기술적 기반을 다지는 중요한 역할을 하고 있죠. 그래서 우리는 "가능하냐"는 질문보다 "누군가는 해야 하지 않나?"라는 마음으로 이 일을 이어가고 있습니다.
오픈소스를 하면서 가장 어려웠던 점은 무엇인가요?
가장 어려운 점은 어떻게 오픈소스를 알릴 것인가였습니다. 개발자라면 누구나 "기술은 결국 말한다"는 믿음이 있지만, 아무리 멋진 프로젝트라도 알리지 않으면 무용지물이죠. 그래서 커뮤니티에 공유하고, 블로그를 쓰고, 트위터 활동을 하면서 피드백을 받기도 했습니다.
그 중 가장 기억에 남는 것은 Agentica 프로젝트를 홍보했을 때 “기술력으로 홍보하라”는 댓글을 받았던 경험입니다. 처음엔 당황했지만, 그 분과 대화를 통해 서로 이해하는 방향으로 마무리할 수 있었습니다. 이런 경험을 통해, 오픈소스는 결국 기술뿐만 아니라 사람들에게 왜 필요한지, 어떻게 쓰면 좋은지 알리는 것이 중요하다는 걸 깨달았습니다. 진심을 담아 전달하면 결국 통한다고 믿습니다.
그런 오픈소스를 통해 얻은 경험이 뤼튼 랩스 팀에 어떻게 적용되고 있나요?
그 경험을 통해 얻은 교훈 중 하나는, 단순히 기술적인 능력 뿐만 아니라 그 기술이 사람들에게 왜 필요한지, 어떻게 쓰면 유용한지 잘 전달하는 것이라고 생각해요. 그래서 뤼튼 랩스 팀에서도 기술적인 능력 뿐만 아니라 평소 개발에 대해 컨텍스트를 잘 공유하는 능력, 커뮤니케이션 능력도 중요하다고 생각합니다. 추가로, 아무래도 오픈소스라고 하는 것은, 결국 개발을 위한 개발인 측면이 있는 만큼, 메타적인 역량이 중요하다고 생각해요. 역량있는 디자이너가 디자인 시스템을 생각하듯이, 더 근본적인 것들에 대해서 성찰할 줄 알아야 한다고 생각해요.
그런 사람을 어떻게 구할 수 있을까요?
저는 그래서 사내 추천을 자주 하는 편이기는 합니다. 새로운 사람들과 함께 합을 맞추는 일도 물론 신나는 일이기는 하지만, 결국 일이라는 측면에서 본다면 좋은 개발자는 항상 예측 가능한 퍼포먼스를 내주는 사람이라고 생각하거든요. 제가 생각하는 좋은 개발자는, 개발을 잘하는 것이야 워낙 당연한 일이고, 그 다음으로는 기간 산정을 잘하는 사람이며, 세번째로는 이미 말한 기간이 있다면 가급적 지키기 위해 최선을 다하는 사람입니다. 다만 그런 사람들은 찾는다기보다 이전에 같이 일해봐서 알 수 있는 것에 가깝다고 느끼기 때문에, 이미 제가 어느 정도 성과를 내줄 수 있을지 예상가능하신 분들을 모시는 게 더 유리하다고 보는 측면도 있는 거 같아요.
뤼튼 랩스에서 가장 중요하게 생각하는 점은 무엇인가요?
뤼튼 랩스에서 가장 중요한 점은 잘맞는 동료를 찾는 일이에요. 팀 전체의 성과는 결국 각자의 협력과 소통에 달려 있다고 생각하거든요. 특히 스타트업에서는 빠르게 변화하는 환경에 적응할 수 있는 동료, 그러한 환경에서도 낙관성을 유지할 수 있는 동료가 필요해요. 만약 여기까지 되었다면 이후에는 일하는 방식의 문제라고 생각합니다. 결국에 좋은 팀은 커뮤니케이션 비용이 낮은 팀이라고 생각합니다. 그리고 어떻게 하면 커뮤니케이션 비용을 줄일 수 있을 것인가, 그 해답은 의외로, 평소 해적같은 모습의 뤼튼 랩스 이미지와 다르게 체계적인 문서화에 달려 있다고 생각합니다. 실제로 뤼튼 랩스 팀은, 아마 안에서 보면 회사 같아 보이지 않을 정도로 자유분방하고 창의력 넘치는 팀이지만, 의외로 가장 많은 글을 쓰고 있는 팀이기도 합니다. 뤼튼 랩스는 단순히 기술을 쌓아가는 팀이 아니라 회사의 미래를 준비하는 중요한 역할을 하고 있습니다. 그래서 이러한 것들이 모두 본인에게 해당한다고 생각한다면, 랩스로 모시고 싶네요.
뛰어난 동료를 모시기 위해 다양한 방법을 통해 지속적으로 노력하고 있습니다.
함께 일하는 사람들의 역량과 가치가 팀의 성과에 직결된다는 믿음을 바탕으로, 신뢰를 쌓고 협력할 수 있는 동료들을 찾고 있습니다!