기술 스택 - Notipy-DiscordBot/Notipy GitHub Wiki

🛠️ 기술 스택

Notipy는 모듈화된 구조를 바탕으로 Python과 Docker를 중심으로 구현된 웹 기반 자동화 서비스입니다.
각 구성 요소는 다음과 같은 목적과 기준에 따라 선택되었습니다.


📌 언어 및 프레임워크

기술 역할 선택 이유
Python 3.11+ 전체 백엔드 로직 및 Discord 봇 개발 가독성 좋고, FastAPI 및 Discord 생태계와 호환
FastAPI RESTful API 서버 비동기 지원, 자동 문서화, 경량 프레임워크
SQLAlchemy ORM (Object Relational Mapper) 유지보수성 높고, 다양한 DB 백엔드 지원
Pydantic 데이터 검증 및 직렬화 FastAPI와의 통합성, 타입 안정성
discord-py-interactions 디스코드 봇 구현 슬래시 명령어, 인터랙션 기반 개발에 최적화

🗃️ 데이터베이스

기술 역할 선택 이유
MySQL 8.x 알림/연동 상태 저장 및 트랜잭션 관리 안정성 높은 오픈소스 관계형 DB, 도커 환경에 최적화

🧪 외부 API 및 연동

서비스 사용 목적
Notion API Notion DB 이벤트 수신 및 필터링
Discord API 메시지 전송, 슬래시 명령어, OAuth 인증
GitHub API GitHub 프로필 분석용 데이터 수집

🐳 인프라 및 배포

기술 역할 비고
Docker 실행 환경 통합, 이미지 기반 배포 환경 독립성, 일관된 실행 보장
Docker Compose 멀티 컨테이너 구성 관리 backend, discordbot, database 등 분리 실행
Nginx (선택) 리버스 프록시 및 보안 헤더 구성 HTTPS 및 외부 접근 제어에 사용 가능
GitHub Actions 코드 포맷 자동화 PR 시 black 기반 코드 스타일 검사만 수행 중

🧰 유틸리티 및 기타

도구/기술 용도
.env / dotenv 환경 변수 및 비밀 설정 관리
logging 디버깅 및 에러 로깅
asyncio 비동기 I/O 처리

📎 참고 링크