새로운 기능을 개발하려 할 때 엔지니어의 발목을 잡는 건 무엇일까요? 낡은 시스템과 코드베이스를 빼놓을 수 없을 겁니다. 기술 스택이나 구조가 과거의 방식 그대로 머물러 있으면 서비스 품질만 떨어뜨릴 뿐 아니라 개발 조직 전체의 생산성과 안정성에도 부정적인 영향을 미칩니다. 특히 단기 성과에만 집중하다 보면 코드 품질 개선과 같은 장기적인 작업을 후순위로 미루기 쉬운데요. 이 같은 개발 문화에서는 유지보수성이 떨어지고 새로운 기술을 도입하기도 어렵습니다.
개발 생산성 높이는 리팩토링
리디 프론트엔드 엔지니어 조직은 웹 개발 환경에 대한 폭넓은 지식을 기반으로 꾸준히 리팩토링(Refactoring)을 하고 있습니다. 그 이유는 시스템의 생산성과 코드 품질을 높여야만 외부 환경의 변화와 기술 트렌드에 유연하게 대응할 수 있기 때문입니다.
물론 리팩토링을 하다 보면 다소 복잡한 오류를 맞닥뜨릴 때도 있지만, 그때마다 개발에 진심인 동료들이 여기저기서 출몰해 함께 이슈를 고민하고 원인을 분석합니다. 그 해결 과정을 통해 리디 엔지니어는 다양한 시스템과 기술 스택에 대한 경험치를 쌓으며 전반적인 기술 역량을 강화해나갑니다.
지난 6월 리디가 선보인 만화 e북 웹 뷰어는 타입스크립트(TypeScript)로의 마이그레이션(Migration)을 통해 개발 환경의 생산성과 안정성을 높인 사례입니다. 리디의 핵심 기능 중 하나인 ‘뷰어’는 웹툰, 웹소설, 도서 등 다양한 종류의 디지털 콘텐츠를 감상하는 도구로서 그동안은 만화 e북을 지원하지 못했는데요. 2023년 프론트엔드 프로젝트를 모노레포(Monorepo)로 통합한 것을 계기로 웹 뷰어의 오래된 의존성을 정리하고 타입(Type)을 붙여나가기 시작했습니다.
초기 버전의 웹 뷰어가 만들어진 시점은 6년 전이었기에 작업 과정이 순탄치 만은 않았습니다. 웹 뷰어의 전체 엔진과 거기에 엮여있는 수많은 것들을 걷어낸 뒤 새로운 엔진으로 갈아 끼우는 작업이었기 때문입니다. 하지만 기술 스택을 리팩토링하여 생산성을 크게 개선한 상태였기에, 무리 없이 프로젝트가 마무리될 수 있었습니다.
낡은 시스템과 코드베이스의 개선 작업은 하루아침에 이루어지지 않습니다. 리디 웹 개발 조직을 이끄는 리더스 준희님은 “리팩토링을 두려워하지 않는 개발 환경”의 중요성을 강조합니다. 즉 개발자가 더 나은 코드에 도전할 수 있으려면, 코드의 근거가 되는 테스트는 물론이고 문서화·자동화 등 철저한 시스템이 뒷받침되어야 한다는 뜻입니다. 이 같은 의도 아래서 리디의 웹 개발 조직은 주기적인 회고를 통해 시스템이 잘 동작하는지 점검하고, 불필요한 시스템은 과감히 덜어냅니다. 조직을 경직시키는 시스템은 오히려 생산성을 떨어뜨리기 때문입니다.
좋은 코드는 좋은 시스템이
뒷받침한다
일반적으로 초기 단계의 스타트업은 당장의 비즈니스를 위해 기술 부채를 쌓아야 하는 경우가 많습니다. 반면에 규모가 크고 경직되어 있는 조직에선 엔지니어가 주어진 분야 외에 다른 것을 시도하기 어려운 경우가 많고요.
이와 달리, 리디 엔지니어들은 유연하고 자율적인 개발 문화 속에서 다양한 프로젝트와 기술 스택에 주도적으로 참여합니다. 익숙함에 대한 관성을 경계하고 새로운 관점에 귀 기울이는 변화지향성이 리디의 개발 문화에 내재해 있기 때문입니다.
앞서 소개한 ‘만화 e북 웹 뷰어’ 개발 사례 외에도 리디 웹 개발 조직은 다양한 프로젝트를 통해 서비스를 개선하고 있습니다. 프론트엔드 개발은 작품의 탐색과 결제, 감상에 이르기까지 사용자에게 노출되는 모든 영역을 책임지는데요. 유연하고 건강한 개발 문화 안에서 끊임없이 새로워질 리디의 모습을 앞으로도 기대합니다.
고객과 발맞춰 새로운 콘텐츠 경험을 선보이는
리디와 함께할 당신을 기다립니다.