텔레그램 봇에서 확장 가능한 웹 앱으로: 내부 도구의 진화 과정
창고 손실 분석가는 일상적인 업무를 마주했습니다: 매일 여러 개의 엑셀 파일을 처리하는 데 하루 5시간, 한 달에 150시간이 소요되었습니다. 이는 상당한 시간 비용을 의미했습니다. 해결책은 파이썬 텔레그램 봇 형태의 MVP였습니다: 사용자가 파일을 보내면 봇이 처리된 결과를 반환했습니다. 처리 로직은 개발자 통제 하에 유지되었으며, 인터페이스가 필요 없었습니다.
이 접근 방식은 초기에는 효과적이었습니다: 텔레그램은 UI 없이도 빠른 접근을 제공했습니다. 그러나 복잡성이 증가함에 따라 한계가 드러났습니다.
시스템 기반으로서 텔레그램의 한계
텔레그램은 시스템의 중심 코어 역할을 하도록 설계되지 않았습니다. 문제는 빠르게 나타났습니다:
- 20MB 파일 제한으로 대용량 업로드가 차단되었습니다.
- 처리 과정이 상태 가시성 없이 "블랙박스"가 되었습니다.
- 관리를 위한 적절한 인터페이스가 없었습니다.
- 기능 개발이 더 복잡해졌습니다.
- 규제로 인한 러시아 내 접근 문제가 발생했습니다.
텔레그램은 진입점으로는 작동했지만, 핵심으로는 작동하지 않았습니다. 해결책은 로직을 별도의 백엔드로 이동하는 것이었습니다.
웹 애플리케이션으로의 점진적 전환
전환은 완전한 리팩터링이 아니었습니다: 봇은 클라이언트로 남아 있지만 작업을 백엔드에 위임했습니다. 웹 인터페이스가 등장하며 다음과 같은 기능을 갖추게 되었습니다:
- 모든 크기의 파일 업로드.
- 처리 상태 추적.
- 프로세스 관리.
프로젝트는 시스템 특성을 갖추게 되었습니다: 책임 분리는 개발을 단순화했습니다. 백엔드는 데이터와 비즈니스 로직을 처리하고, 웹 부분은 상호작용을 처리하며, 통합(Google Sheets, Yandex.Disk)은 저장 및 전송을 처리합니다.
아키텍처: 계층 분리
시스템은 계층별로 구성됩니다:
- 백엔드: pandas를 이용한 데이터 처리, 비즈니스 로직.
- 웹 인터페이스: API 계층, 사용자를 위한 프론트엔드.
- 클라이언트: 하나의 인터페이스로서 텔레그램 봇.
- 통합: Yandex.Disk용 OAuth, Google Sheets API.
이러한 분리를 통해 로직과 독립적으로 인터페이스를 변경할 수 있습니다. 회사 정책 제한(프록시 없이 직접 데이터베이스 접근 불가)이 이 접근 방식을 필요로 했습니다.
대용량 파일 문제 해결
핵심 순간은 텔레그램의 제한을 우회하는 것이었습니다. OAuth를 통한 Yandex.Disk 통합: 봇이 링크를 수락하면 백엔드가 파일을 다운로드하고 처리합니다. 이는 플랫폼 제한 의존 없이 안정성과 속도를 제공했습니다.
내부 도구를 위한 UX
내부 도구는 종종 인터페이스를 무시하지만, 간단한 개선이 중요합니다:
- 처리 진행률 표시기.
- 명확한 버튼과 양식.
- 모바일 기기 적응성.
이는 사용성을 향상시킵니다: 시스템이 일상 사용을 위한 도구가 됩니다.
개발 환경: PyCharm에서 AI 에이전트로
개발은 데이터 연구 및 디버깅을 위해 PyCharm에서 진행되었습니다. AI 에이전트가 있는 Cursor로 전환하여 일상적인 작업을 가속화했습니다:
- 보일러플레이트 코드 생성.
- 간단한 리팩터링.
- 새로운 기능 래핑.
Cursor는 아키텍처 및 웹 개발에 효과적입니다. PyCharm은 심층 데이터 분석을 위해 남아 있습니다. 하이브리드 접근 방식: 자동화에는 AI, 복잡한 작업에는 클래식 도구. 데이터 처리에서 AI 통합을 위한 Claude Code 및 n8n 테스트가 계획되어 있습니다.
결과 및 절감 효과
시스템은 분석 팀에 대해 월 150시간을 절약했습니다. 핵심 변화는 텔레그램을 중심에서 포기한 것이었습니다: 인터페이스와 통합 추가가 고장 위험 없이 가능해졌습니다.
중요한 점:
- 봇에서 백엔드를 점진적으로 추출하여 시스템을 확장 가능하게 만들었습니다.
- Yandex.Disk 통합으로 파일 제한 문제를 해결했습니다.
- UI와 로직 분리로 개발이 단순화되었습니다.
- Cursor의 AI 에이전트로 보일러플레이트 개발이 가속화되었습니다.
- 웹 인터페이스로 프로세스 제어가 추가되었습니다.
교훈 및 개발 계획
결론: MVP로 시작한 후 성장에 따라 리팩터링하세요. 즉시 완벽한 아키텍처를 구축하지 마세요. Cursor와 같은 도구가 생산성에 영향을 미칩니다.
다음: 웹에서 BI 분석, 대시보드, Docker 컨테이너화. 이는 내부 시스템을 구축하는 중급/고급 개발자를 위한 기술 자료입니다.
— Editorial Team
아직 댓글이 없습니다.