1. 지루하지만 강력한 ‘출시 속도’
Rails의 가장 큰 장점은 압도적인 ‘출시 속도’입니다. Shopify, Basecamp, GitHub, GitLab 등 오랜 기간 성공적으로 운영되고 있는 기업들이 여전히 Rails를 사용하는 것은 이 프레임워크의 뛰어난 수명과 안정성을 입증합니다. Lago는 Rails의 API-only 모드를 활용하여 미들웨어 스택을 최소화하고 뷰 렌더링을 생략함으로써, 마이그레이션, 유효성 검사, Active Record, 백그라운드 작업 등 핵심 기능에 집중하여 개발 시간을 단축하고 제품 출시에 박차를 가했습니다.
2. 확장성 논란과 실제 적용
Rails의 확장성에 대한 비판은 흔하지만, 저자는 스케일링이 프레임워크 자체의 한계가 아닌 아키텍처 및 운영의 문제라고 주장합니다. Lago는 하루 수백만 건의 이벤트 및 API 요청을 처리하는 현재 규모에서도 Rails의 한계에 도달하지 않았으며, 이를 가능하게 한 주요 요인들은 다음과 같습니다: * Rails 8의 운영 간소화: PaaS(Platform as a Service)에 대한 의존 없이 코드를 프로덕션 컨테이너로 직접 배포할 수 있게 되어 운영 효율성이 증대되었습니다. * Redis + Sidekiq: 이 조합은 검증된 고확장성 솔루션으로, 백그라운드 작업을 효율적으로 처리합니다. * Ruby Fibers 도입: 비동기 동시성을 추가하여 애플리케이션의 반응성과 처리량을 향상시키고 있습니다. * Puma, 오토스케일링, 합리적인 캐싱: 이러한 요소들은 Rails 프레임워크의 확장성을 극대화하는 데 기여합니다. 제품 회사에서 ‘속도’는 여전히 가장 중요한 가치이며, Rails는 마이크로서비스의 복잡성을 유발하지 않으면서도 이를 제공합니다.
3. Rails의 한계와 다각적인 언어 전략
물론 Rails가 완벽한 프레임워크는 아닙니다. 성능 및 메모리 관리, CRuby의 Global VM Lock으로 인한 단일 스레드 실행 제약, 그리고 과도한 ‘마법’ 같은 기능으로 인한 복잡성 등은 Rails 사용 시 개발자가 감수해야 할 단점입니다. Lago는 이러한 단점을 명확히 인지하고, 필요에 따라 Go나 Rust와 같은 다른 프로그래밍 언어를 적극적으로 활용하여 보완합니다. 예를 들어, API, 도메인 로직, 결제 워크플로우는 Rails로 처리하고, 높은 I/O 동시성이나 장기 네트워크 연결이 필요한 서비스는 Go로, CPU 집약적인 작업은 Rust로 처리하는 다각적인 언어 전략을 통해 핵심 생산성을 유지하면서도 ‘핫 패스’를 최적화합니다.
4. 인력 채용 문제
스타트업으로서 우수한 인재 확보는 항상 중요하며, 젊은 개발자들이 Rails에 대한 흥미가 낮다는 우려도 있습니다. 그러나 Lago는 수백 명의 엔지니어를 채용하는 것이 아니며, 신규 채용에 매우 신중하기 때문에 인력 풀 문제에 직면하지 않았다고 밝힙니다. 여전히 많은 수의 숙련된 Ruby 엔지니어들이 존재하며, 이들은 대규모 프로덕션을 운영할 수 있는 역량을 갖추고 있습니다.