현재 백엔드 개발자로서 리드 엔지니어 포지션에 있습니다. 컨설턴트와 PM 경험을 바탕으로 비즈니스 이해도가 높으며, 기술 설계와 팀의 기술적 방향성을 이끌고 있습니다.
<aside> 🧑🏼💻
Python, Go, FastAPI, Prefect, LangChain, Crew.ai, Elasticsearch, MongoDB, MariaDB, PostgreSQL, CDC, Redis, Kafka, Grafana, Docker, K8S, Nginx
</aside>
https://github.com/dongju93/cocktail-maker
시작 계기
위스키에 관심을 가지고 있을때 https://www.youtube.com/@어쿠스틱드링크/shorts 채널의 여러 Short 영상을 보게되었고 자연스럽에 칵테일에 관심을 가지게 되었는데, 칵테일 별 어떤 재료들이 얼마나 들어가는지 그리고 어떤 재료들로 대체될 수 있는지 체계적인 정보가 부족했고 각 재료들의 정보도 https://dailyshot.co/ 과 같이 보고 싶었기 때문에 프로젝트를 시작하였습니다
개발 인원: 1인
담당 범위: 풀스택
기술 스택: Python, FastAPI, Uvicorn, Gunicorn, JWT, SuperTokens, Docker, MongoDB, SQLite, PostgreSQL, Vite, React
기술 스택
항목 | 사용 기술 | 비고 |
---|---|---|
프론트엔드 라이브러리 | Vite | React |
백엔드 프레임워크 | FastAPI | Gunicorn 으로 Uvicorn 워커 제어 |
데이터베이스 연결 | PyMongo | 공식 비동기 지원으로 Motor 드라이버에서 이관 |
ORM | SQLModel | |
이미지 제어 | Pillow | |
로그 | structlog | jsonl 포멧 기록 |
데이터베이스 | SQLite | 태그 및 재료 메타데이터 저장 |
데이터베이스 | MongoDB | 재료 데이터 저장 |
인증 | SuperTokens | PostgreSQL 사용 |
배포 | Docker | |
종속성 관리 | uv | |
린트, 포맷 | ruff | |
타입 체크 | pyright | |
문서화 | MkDocs | |
성능 분석 | pyinstrument | |
보안 | secweb | HTTP Header 추가 |
아키텍처
flowchart TB
User{{User}} --Browser--> Vite
Vite --API--> FastAPI
FastAPI --Auth--> SuperTokens --> PostgreSQL[(PostgreSQL)]
FastAPI --Data--> MongoDB[(MongoDB)]
FastAPI --Metadata--> SQLite[(SQLite)]
FastAPI --Data--> ImageFile([ImageFile])
FastAPI --Logging--> JsonLog([JsonLog])
외부 인증 서비스 통합
고민
외부 인증 서비스 도입
🔐 External Auth Service
├── 사용자 인증/인가 처리
├── 토큰 발급/검증
├── 사용자 정보 관리
└── OAuth/OIDC 표준 준수
로그
데이터베이스 아키텍처
API 서버 성능
코드 품질
아키텍처 패턴
https://github.com/dongju93/real-time-data-stream