홈으로 돌아가기

봇에서 웹-시스템으로: Excel 자동화

Telegram 봇을 창고 Excel 파일 처리를 위한 완전한 웹 시스템으로 변환하는 과정을 설명하는 기사. 개발자는 논리를 백엔드로 점진적으로 이동하고 웹 인터페이스와 통합을 추가했습니다. 결과: 월 150시간 절약, 개선된 아키텍처.

봇이 Excel을 위한 완전한 시스템이 된 방법
Advertisement 728x90

텔레그램 봇에서 확장 가능한 웹 앱으로: 내부 도구의 진화 과정

창고 손실 분석가는 일상적인 업무를 마주했습니다: 매일 여러 개의 엑셀 파일을 처리하는 데 하루 5시간, 한 달에 150시간이 소요되었습니다. 이는 상당한 시간 비용을 의미했습니다. 해결책은 파이썬 텔레그램 봇 형태의 MVP였습니다: 사용자가 파일을 보내면 봇이 처리된 결과를 반환했습니다. 처리 로직은 개발자 통제 하에 유지되었으며, 인터페이스가 필요 없었습니다.

이 접근 방식은 초기에는 효과적이었습니다: 텔레그램은 UI 없이도 빠른 접근을 제공했습니다. 그러나 복잡성이 증가함에 따라 한계가 드러났습니다.

시스템 기반으로서 텔레그램의 한계

텔레그램은 시스템의 중심 코어 역할을 하도록 설계되지 않았습니다. 문제는 빠르게 나타났습니다:

Google AdInline article slot
  • 20MB 파일 제한으로 대용량 업로드가 차단되었습니다.
  • 처리 과정이 상태 가시성 없이 "블랙박스"가 되었습니다.
  • 관리를 위한 적절한 인터페이스가 없었습니다.
  • 기능 개발이 더 복잡해졌습니다.
  • 규제로 인한 러시아 내 접근 문제가 발생했습니다.

텔레그램은 진입점으로는 작동했지만, 핵심으로는 작동하지 않았습니다. 해결책은 로직을 별도의 백엔드로 이동하는 것이었습니다.

웹 애플리케이션으로의 점진적 전환

전환은 완전한 리팩터링이 아니었습니다: 봇은 클라이언트로 남아 있지만 작업을 백엔드에 위임했습니다. 웹 인터페이스가 등장하며 다음과 같은 기능을 갖추게 되었습니다:

  • 모든 크기의 파일 업로드.
  • 처리 상태 추적.
  • 프로세스 관리.

프로젝트는 시스템 특성을 갖추게 되었습니다: 책임 분리는 개발을 단순화했습니다. 백엔드는 데이터와 비즈니스 로직을 처리하고, 웹 부분은 상호작용을 처리하며, 통합(Google Sheets, Yandex.Disk)은 저장 및 전송을 처리합니다.

Google AdInline article slot

아키텍처: 계층 분리

시스템은 계층별로 구성됩니다:

  • 백엔드: pandas를 이용한 데이터 처리, 비즈니스 로직.
  • 웹 인터페이스: API 계층, 사용자를 위한 프론트엔드.
  • 클라이언트: 하나의 인터페이스로서 텔레그램 봇.
  • 통합: Yandex.Disk용 OAuth, Google Sheets API.

이러한 분리를 통해 로직과 독립적으로 인터페이스를 변경할 수 있습니다. 회사 정책 제한(프록시 없이 직접 데이터베이스 접근 불가)이 이 접근 방식을 필요로 했습니다.

대용량 파일 문제 해결

핵심 순간은 텔레그램의 제한을 우회하는 것이었습니다. OAuth를 통한 Yandex.Disk 통합: 봇이 링크를 수락하면 백엔드가 파일을 다운로드하고 처리합니다. 이는 플랫폼 제한 의존 없이 안정성과 속도를 제공했습니다.

Google AdInline article slot

내부 도구를 위한 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

Advertisement 728x90

다음 읽기