nFolyo 아키텍처 리팩토링: 성능 병목 현상 해소 및 확장성 확보 전략

🤖 AI 추천

이 콘텐츠는 IT 서비스의 성능 개선 및 아키텍처 확장에 관심 있는 개발자에게 매우 유용합니다. 특히 백엔드 시스템의 비효율적인 데이터 처리 로직을 개선하고, 비동기 처리를 도입하여 사용자 경험을 향상시키고자 하는 개발자에게 실질적인 인사이트를 제공합니다.

🔖 주요 키워드

nFolyo 아키텍처 리팩토링: 성능 병목 현상 해소 및 확장성 확보 전략

핵심 기술: nFolyo는 사용자 포트폴리오 추적 및 데이터 분석 서비스의 성능 병목 현상을 해결하기 위해 기존의 모놀리식 아키텍처를 비동기 처리 및 메시지 큐 기반의 분산 아키텍처로 리팩토링하는 전략을 제시합니다.

기술적 세부사항:
* 현재 아키텍처: Next.js/TypeScript 기반의 클라이언트 앱, Python Flask 기반의 nFolyo Core(데이터 임포트 및 계정 업데이트 담당), Python Flask 기반의 nFolyo Finance(가격 API)로 구성.
* 주요 병목 현상: /update-account 엔드포인트의 단일 스레드 방식 처리, TWRR(Time-Weighted Rate of Return) 계산의 비효율성, 순차적인 홀딩 처리로 인한 긴 응답 시간(최대 20분).
* 문제점: 낮은 티어의 Azure 서비스 사용, 병렬 처리 불가로 인한 느린 응답 시간, 사용자 경험 저하.
* 개선 방향 (v0.5.0):
* 메시지 큐 도입: Celery 워커와 Redis/RabbitMQ를 사용하여 TWRR 계산과 같은 무거운 작업을 비동기적으로 처리.
* 작업 분리: /update-account 엔드포인트를 시장 가치 계산과 TWRR 계산으로 분리하여 사용자에게 즉각적인 피드백 제공.
* 기술 스택 강화: Pandas의 비효율성을 극복하기 위해 Polars와 같은 고성능 라이브러리 도입 고려.
* 가격 데이터 개선: 더 빠른 가격 데이터 제공 업체로 변경하여 데이터 조회 시간 단축.
* Server-Sent Events (SSE): 실시간 작업 상태 업데이트를 통해 사용자 경험 개선.
* 스케줄링: 백그라운드에서 주기적으로 가격 및 계정 업데이트 실행.

개발 임팩트: 비동기 처리 및 분산 아키텍처 도입을 통해 서비스 응답 시간 대폭 단축, 사용자 경험 향상, 향후 기능 추가 및 사용자 증가에 대한 확장성 확보.

커뮤니티 반응: (원문에 직접적인 커뮤니티 반응 언급 없음)

📚 관련 자료