Flexcar의 Java 마이크로서비스에서 Ruby on Rails 모놀리스로의 전환 경험

RailsConf 2025 365 Days Later: Moving from Java to RoR and how it changed everything by John Dewsnap

작성자
jeff
발행일
2025년 07월 24일

핵심 요약

  • 1 Flexcar는 80개에 달하는 Java 마이크로서비스의 비효율성을 해결하기 위해 Ruby on Rails 모놀리스 아키텍처로 성공적으로 전환했습니다.
  • 2 4명의 핵심 엔지니어가 4개월 만에 플랫폼의 80%를 재구축하여 개발 속도와 효율성을 획기적으로 향상시켰습니다.
  • 3 Ruby on Rails 커뮤니티의 강력한 지원과 Cursor와 같은 AI 코딩 도구의 적극적인 활용은 개발 생산성 향상과 엔지니어의 성장에 크게 기여했습니다.

도입

Flexcar는 과거 70-80개의 마이크로서비스로 구성된 Java 백엔드 시스템을 운영하며 심각한 비효율성과 개발 병목 현상을 겪었습니다. 특히 고객에게 차량 재고를 보여주는 간단한 기능 구현조차 복잡한 서비스 간의 의존성으로 인해 어려움을 겪었으며, 핵심 데이터 접근을 위한 별도의 캐싱 레이어까지 구축해야 하는 상황에 직면했습니다. 이러한 문제 인식 끝에, CTO의 주도하에 Ruby on Rails 모놀리스 아키텍처로의 전환이라는 과감한 결정을 내리게 됩니다.

Flexcar의 Ruby on Rails 전환 과정 및 성과

Flexcar는 기존 Java 마이크로서비스의 한계를 극복하고자 Ruby on Rails로의 전환을 결정했습니다. 이는 초기 엔지니어들의 반발에도 불구하고, CTO의 강력한 리더십과 ‘Go All In’ 전략으로 추진되었습니다.

1. 과감한 전환 및 초기 도전

  • 목표: 3개월 내 플랫폼의 90% 재구축.
  • 실제: 4명의 핵심 엔지니어가 4개월 만에 약 80%를 재구축하며 목표에는 미달했으나, 단기간 내 놀라운 성과를 달성했습니다.
  • 출시 과정: RailsConf 기간 중 라이브 출시를 감행했으며, 데이터 마이그레이션에 예상보다 긴 시간이 소요되는 등 난관이 있었으나 성공적으로 완료했습니다.
  • 초기 안정화: 출시 후 약 2개월간 프로덕션 버그 수정 및 기능 안정화에 집중하며 시스템을 안정화했습니다. 이 과정에서 고객 지원팀의 업무량이 5-6배 증가하는 등 어려움도 있었습니다.

2. 전환을 통한 주요 개선점

  • 개발 속도 향상:
    • 기존 Java 환경에서는 분기당 10-15개의 프로젝트를 수행했으나, Ruby on Rails 전환 후 더 적은 인원으로 분기당 25-30개의 프로젝트를 수행하게 되었습니다.
    • 새로운 기능 구현에 소요되는 시간이 ‘몇 달’에서 ‘몇 주’ 단위로 단축되어, 제품팀이 다양한 아이디어를 빠르게 시도하고 검증할 수 있게 되었습니다.
  • 팀 효율성 증대:
    • 기존의 ‘왕국’처럼 분리된 마이크로서비스 팀 구조를 해체하고, 모든 엔지니어가 시스템 전반을 이해하고 변경할 수 있게 되었습니다.
    • 이전에는 특정 전문가(예: Dan)에게 집중되던 업무(예: 빌링 이슈)가 분산되어 팀 전체의 지식 수준이 향상되었습니다.
    • 팀 규모가 5-8명에서 2-3명으로 축소되어 팀 간의 유연한 인력 교류와 시니어-주니어 멘토링이 활성화되었습니다.
  • 개발 환경 개선:
    • 기존에는 노트북에서 전체 시스템 실행이 불가능했으나, Rails 모놀리스 전환 후 로컬 환경에서 전체 Flexcar 시스템을 실행하고 테스트할 수 있게 되어 개발 효율성이 극대화되었습니다.
    • 코드베이스를 새로 구축하며 기존의 복잡성을 제거하고 훨씬 깔끔한 아키텍처를 구현했습니다.

3. Ruby on Rails 커뮤니티 및 AI 도구의 영향

  • 커뮤니티 지원: RailsConf에서 겪은 커뮤니티의 긍정적이고 지지적인 분위기가 Ruby on Rails 선택의 중요한 이유 중 하나임을 깨달았습니다.
  • AI 활용:
    • 초기에는 ChatGPT를 사용하며 환각(hallucination) 문제로 시간을 낭비하기도 했습니다.
    • 최근에는 Cursor(또는 Cloud Code)와 같은 AI 코딩 도구를 도입하여 생산성을 혁신적으로 높였습니다. 특히, 프론트엔드 개발자도 백엔드(Rails) 코드 작성에 쉽게 참여할 수 있게 되어 풀스택 역량 강화에 기여했습니다. AI는 상용구 코드 제거 및 학습 과정 지원에 큰 도움이 되었습니다.
  • 엔지니어 성장: Ruby on Rails의 명확한 구조와 AI 도구의 지원 덕분에 주니어 개발자들이 빠르게 성장하고 더 많은 책임을 맡을 수 있게 되었습니다.

4. 도전 과제 및 향후 계획

  • 기술적 도전: N+1 쿼리, 잡(Jobs) 관리, 인증(React와 Device 연동) 등에서 어려움을 겪었으나, Sentry와 같은 도구로 문제를 해결하고 있습니다.
  • 내부 툴링 개선: 고객 대면 사이트에 집중했던 과거와 달리, 이제는 내부 운영 툴링 개선에 초점을 맞추고 있습니다. React와 Inertia.js를 활용하여 내부 툴의 사용자 경험을 향상시키고, 궁극적으로는 React를 단일 프론트엔드 프레임워크로 통일할 계획입니다.
  • 미래 아키텍처: 기술 부채를 관리하고 지속적인 학습을 통해 Flexcar의 다음 단계 아키텍처를 구상하며, 비즈니스 성장을 지원할 계획입니다.

결론

Flexcar의 Java 마이크로서비스에서 Ruby on Rails 모놀리스로의 전환은 단순히 기술 스택의 변경을 넘어선 성공적인 조직 및 개발 문화 혁신 사례입니다. 이 전환을 통해 Flexcar는 개발 속도를 획기적으로 향상시키고, 팀의 효율성을 극대화하며, 엔지니어들의 성장을 촉진했습니다. 특히 Ruby on Rails 커뮤니티의 강력한 지지와 Cursor와 같은 AI 코딩 도구의 적극적인 활용은 이러한 성공에 결정적인 역할을 했습니다. 앞으로 Flexcar는 기술 부채를 해결하고 내부 툴링을 강화하며, 지속적인 학습과 아키텍처 개선을 통해 미래 비즈니스 성장을 위한 견고한 기반을 다져나갈 것입니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!