nFolyo 개발 회고: 모놀리식에서 마이크로서비스로의 전환, 그리고 교훈

🤖 AI 추천

nFolyo 팀은 초기 MVP 개발의 속도와 장기적인 확장성 사이의 균형을 맞추는 과정에서 얻은 귀중한 경험을 공유합니다. 특히 사이드 프로젝트를 운영하며 겪었던 번아웃, 고립된 개발 방식, UI 라이브러리 선택의 중요성, 비동기 아키텍처의 필요성, 클라우드 배포의 어려움 등을 자세히 다루고 있어, 유사한 상황에 놓인 IT 개발자, 특히 스타트업 및 사이드 프로젝트를 진행하는 개발팀에게 큰 인사이트를 제공할 것입니다. 프론트엔드, 백엔드, 아키텍처 전반에 걸친 기술적 결정과 그에 따른 결과에 관심 있는 모든 개발자에게 추천합니다.

🔖 주요 키워드

nFolyo 개발 회고: 모놀리식에서 마이크로서비스로의 전환, 그리고 교훈

핵심 기술: nFolyo는 초기 Python 스크립트에서 시작하여 Next.js, Python/Flask, MongoDB, Azure를 활용한 현대적인 웹 서비스로 발전했습니다. 이 글은 MVP 개발 후 겪게 되는 기술 부채와 확장성 문제를 솔직하게 공유하며, 모놀리식 서비스의 한계를 극복하기 위한 비동기 아키텍처 및 마이크로서비스 전환의 필요성을 강조합니다.

기술적 세부사항:
* 프론트엔드: Next.js를 사용하여 풀스택 개발 및 SSR 지원
* 백엔드: Python과 Flask를 사용하여 nfolyo-core(계정 및 포트폴리오 업데이트), nfolyo-finance(가격 데이터 조회) 마이크로서비스 구축
* 데이터베이스: 확장성 및 기존 경험을 바탕으로 MongoDB 사용
* 배포: Azure 환경에서 Docker 및 GitHub Actions를 이용한 CI/CD 구현
* 초기 아키텍처 문제: 단일 백엔드 서비스로 인한 비동기/메시지 큐 부재, 느린 가격 API (Yahoo Finance), UI 컴포넌트 라이브러리 선택 오류 (Radix UI → shadcn/ui), broker API 자동 연동 부재
* 개선 방향: 메시지 큐(RabbitMQ, Redis) 및 Celery 같은 태스크 프로페서 도입을 통한 비동기, 분산 시스템 구축 필요성 제기
* Azure 배포 문제: App Services의 성능 및 비용 문제, Static Web App의 콜드 스타트 및 타임아웃 문제

개발 임팩트:
* 초기 MVP 개발 속도 향상에 집중했으나, 장기적으로는 기술 부채 증가 및 확장성 저해로 이어짐.
* 비동기 처리 부재는 계정 업데이트 시 긴 처리 시간(최대 10분)을 유발하며 사용자 경험을 저하시킴.
* UI 라이브러리 선택 실패는 프론트엔드 개발에 수개월의 추가 시간 소요.
* 장기적인 확장성을 위해 아키텍처 리팩토링 및 재설계가 필수적임을 시사.

커뮤니티 반응:
* 글에서 직접적인 커뮤니티 반응 언급은 없으나, 사용자 피드백을 통해 개선점을 도출하고 있음을 강조.
* 특히 수동적인 브로커 명세서 업로드 방식보다 API 자동 동기화를 원하는 사용자가 80%에 달한다는 점을 주요 피드백으로 언급.

톤앤매너: 솔직하고 객관적인 자기 비판을 통해 IT 개발 실무에서 발생할 수 있는 다양한 문제점을 공유하며, 해결책 모색 과정을 상세히 기술하여 동료 개발자들에게 실질적인 도움을 주고 있습니다.

📚 관련 자료