지루한 Pub-Sub 시스템 구축 방법

Madrid.rb - February 2025 - How to Build a Boring(TM) Pub-Sub System

작성자
Ruby on Rails 소식지
발행일
2025년 07월 23일

핵심 요약

  • 1 본 발표는 Lingokids에서 자체적으로 구축한 '지루한' Pub-Sub 시스템의 개발 과정을 공유합니다.
  • 2 Pub-Sub 시스템의 개념, Lingokids의 실제 사용 사례, 그리고 자체 구축 결정 배경 및 구현 방법을 다룹니다.
  • 3 코드, 다이어그램, 실제 운영 데이터를 바탕으로 접근 방식의 장단점과 교훈을 실용적으로 분석합니다.

도입

본 발표는 'boringtechnology.club'의 일원으로서 Lingokids에서 자체적으로 구축한 Pub-Sub 시스템에 대한 실용적인 통찰력을 제공합니다. 이 시스템은 복잡한 기술보다는 검증되고 안정적인 접근 방식을 선호하는 '지루한 기술(boring technology)' 철학을 바탕으로 개발되었습니다. 발표는 Pub-Sub 시스템의 기본 개념부터 Lingokids의 실제 적용 사례, 그리고 자체 구축을 결정하게 된 배경과 그 과정에서 얻은 교훈들을 상세히 다룰 예정입니다.

Pub-Sub 시스템은 메시지 발행자(publisher)가 특정 주제로 메시지를 발행하고, 해당 주제를 구독하는 구독자(subscriber)들이 메시지를 수신하는 비동기 통신 패턴입니다. Lingokids에서는 이 시스템을 다양한 실시간 데이터 처리 및 서비스 간의 효율적인 통신을 위해 활용하고 있습니다. 발표에서는 Lingokids가 Pub-Sub 시스템을 어떻게 활용하고 있는지 구체적인 실제 사례들을 제시하여 그 중요성과 유용성을 강조합니다.

시스템 구축에 앞서 Lingokids는 Redis Pub/Sub, Kafka, RabbitMQ 등 시장에 나와 있는 다양한 ‘덜 지루한’ 또는 상용 솔루션들을 면밀히 검토했습니다. 하지만 최종적으로는 자체적인 ‘지루한’ 버전의 Pub-Sub 시스템을 구축하기로 결정했습니다. 이러한 결정은 특정 요구사항에 대한 정밀한 제어, 불필요한 복잡성 회피, 그리고 운영 효율성 극대화를 목표로 했습니다. 발표에서는 자체 시스템을 구축하게 된 구체적인 이유와 그 과정에서 적용된 기술적 선택들을 설명합니다.

자체 구축 과정에서는 간결성과 안정성에 중점을 두었으며, 이를 통해 시스템의 유지보수 용이성과 예측 가능성을 높였습니다. 발표에서는 실제 코드 스니펫, 시스템 아키텍처 다이어그램, 그리고 실제 프로덕션 환경에서 측정된 성능 수치 등을 제시하여 시스템의 내부 작동 방식과 성능을 투명하게 공개합니다. 이를 통해 청중들은 Lingokids가 직면했던 문제점과 그들이 어떻게 ‘지루한’ 기술 접근 방식을 통해 효과적인 해결책을 마련했는지 구체적으로 이해할 수 있습니다.

결론

Lingokids의 Pub-Sub 시스템 구축 사례는 '지루한 기술' 접근 방식이 어떻게 견고하고 실용적인 솔루션을 제공할 수 있는지를 명확히 보여줍니다. 이 시스템은 복잡한 외부 의존성을 최소화하고, 팀의 역량 내에서 충분히 관리 가능한 형태로 설계되었습니다. 물론, 이러한 접근 방식에도 트레이드오프와 단점은 존재합니다. 발표에서는 자체 구축의 장점뿐만 아니라 발생할 수 있는 잠재적인 단점과 그에 대한 대응 방안도 솔직하게 논의합니다. 궁극적으로 이 발표는 성공적인 시스템 구축 경험뿐만 아니라, 무엇이 효과가 있었고 무엇이 그렇지 않았는지에 대한 솔직한 분석을 통해 실용적인 교훈을 제공하며, 견고하고 신뢰할 수 있는 시스템을 구축하고자 하는 다른 개발 팀들에게 귀중한 통찰력을 제공할 것입니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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