Flexar의 Ruby on Rails 전환 배경
Flexar는 기존 80개 이상의 Java 마이크로서비스 아키텍처를 운영하며 심각한 문제에 직면했습니다.
- 기능 개발 지연: 새로운 기능 하나를 출시하는 데 여러 팀 간의 조율이 필요하여 2~3개월이 소요되었습니다. 이는 현재 Rails 환경에서 2~3주 만에 가능한 작업입니다.
- 과도한 복잡성: 핵심 데이터 처리를 위해 7~8개의 서비스 호출과 복잡한 캐싱 아키텍처가 필요했습니다. 이는 단일 데이터베이스로 처리될 수 있는 단순한 로직이었습니다.
- “모기를 잡는 데 바주카포”: Flexar의 규모에 비해 과도하게 복잡한 아키텍처는 비효율성을 초래했습니다.
전환 과정 및 팀의 적응
Freedom의 주도로 전환이 결정되었으며, 초기에는 팀원들의 저항이 있었습니다. John Denap 역시 회의적이었으나, 회고해보면 성공적인 결정이었다고 평가합니다.
- 빠른 학습 곡선: 개발자들은 4개월 만에 Java 마이크로서비스를 Rails 모놀리스로 전환하는 데 성공했습니다. 초기에는 Java 스타일의 코드가 있었으나, Rails의 유연성과 관용성 덕분에 점진적으로 개선될 수 있었습니다.
- 프론트엔드 전략: 소비자용 사이트는 React를 유지하고, 내부 툴링에는 Stimulus와 Turbo를, 그리고 Rails 위에 Inertia와 React를 혼합하여 사용하는 하이브리드 환경을 구축했습니다.
- Cursor 활용: 최근 두 달간 Cursor를 도입하여 아키텍처 설명 및 아이디어 공유에 활용하며 학습 효율을 높였습니다.
성공적인 출시 및 커뮤니티의 영향
RailsConf 2023에서 Arena Nazerova의 키노트 중 Flexar의 전환 사례가 언급되면서, 예정보다 빠르게 라이브 전환을 결정했습니다.
- 전환은 약 10시간 이상 소요되었으며, 다음 날 정오에 성공적으로 출시되었습니다.
- Ruby 커뮤니티의 따뜻함과 개방성에 깊은 인상을 받았으며, 20년 이상의 경력 동안 경험하지 못한 특별한 유대감을 느꼈다고 언급했습니다.