You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
살가이 프로젝트의 백엔드 서버는 **FastAPI 프레임워크**를 기반으로 구축되었으며, 라즈베리파이, LLM 서버, 프론트엔드 애플리케이션과의 안정적인 통신을 담당합니다. 사용자 등록, 복약 기록 저장, 스케줄 기반 알림 제어, 음성 텍스트 전달 등 다양한 기능을 API 단위로 처리하며, 모든 처리는 경량화된 구조 내에서 실시간으로 수행됩니다.
16
14
17
-
## 주요 워크플로우
15
+
---
16
+
17
+
## ✅ 서버 아키텍처
18
+
19
+
-**프레임워크**: FastAPI
20
+
-**배포 환경**: AWS EC2 (Ubuntu 22.04 LTS 기준)
21
+
-**프로세스 관리**: Node.js 기반의 PM2 활용
22
+
-**데이터베이스**: SQLite (테스트용, 향후 PostgreSQL 확장 가능)
23
+
24
+
API 서버는 `/api`로 시작되는 RESTful 라우팅 구조를 따르며, 주요 기능별로 라우터가 분리되어 있습니다.
25
+
26
+
---
27
+
28
+
## 🔁 배포 및 자동화 워크플로우
29
+
30
+
-**GitHub Actions** 또는 수동 방식 모두 지원
31
+
-`main` 브랜치로 코드가 push되면, EC2 서버에서 자동으로 `git pull` → `pm2 restart` 순서로 실행
32
+
-`deploy-cicd.yml` 스크립트로 다음을 수행:
33
+
1. 저장소 pull
34
+
2. 변경된 의존성 설치
35
+
3. 서버 프로세스 재시작 (pm2 기반)
36
+
37
+
---
38
+
39
+
## 🚀 실행 방식
40
+
41
+
### 1. FastAPI 서버 실행
42
+
43
+
```bash
44
+
uvicorn main:app --host 0.0.0.0 --port 8000
45
+
#또는
46
+
```
47
+
48
+
> 배포 환경에서는 `pm2`로 실행하며 백그라운드 유지 및 자동 재시작을 보장합니다.
18
49
19
-
- main 브랜치에 코드 push 시 EC2 서버에 자동 배포 스크립트 실행
50
+
### 2. PM2 관리
51
+
52
+
```bash
53
+
pm2 start "python main.py" --name main
54
+
pm2 restart main
55
+
pm2 logs main
56
+
```
57
+
58
+
- 로그 파일 위치: `~/.pm2/logs/main-out.log`
59
+
- 에러 로그: `~/.pm2/logs/main-error.log`
60
+
61
+
---
62
+
63
+
## 🔐 인증 및 사용자 관리
64
+
65
+
- 관리자, 보호자, 일반 사용자로 구분된 인증 구조는 추후 OAuth 또는 JWT 기반으로 확장 예정
66
+
- 현재는 로그인 시에만 토큰 기반 검증 로직을 사용 중 (개발 편의 목적)
67
+
68
+
69
+
---
70
+
71
+
## 📌 유지보수 전략
72
+
73
+
- EC2 서버는 `ufw` 방화벽으로 포트를 제한하고, API 서버는 `8000` 포트만 외부에 공개
74
+
- SSH 접속은 공개키 기반 인증 사용
75
+
- 추후에는 `Nginx` 리버스 프록시 설정 및 HTTPS 적용 예정
76
+
77
+
---
20
78
21
-
## 실행 방식
22
-
- PM2를 통한 지속 실행
23
-
- 로그는 `~/.pm2/logs/`에서 확인 가능
79
+
## 🔚 마무리
24
80
81
+
살가이 백엔드 서버는 다양한 디바이스와의 연동을 전제로 설계된 **경량화되고 유연한 REST API 시스템**입니다.
82
+
FastAPI 기반 구조는 비동기 처리와 모듈 확장에 강점을 가지며, EC2와 PM2를 통해 높은 안정성과 운영 효율성을 확보하고 있습니다.
83
+
AI 추론, 음성 데이터 수집, 복약 스케줄 관리 등 다양한 기능이 하나의 백엔드 시스템으로 통합되어 있으며, 추후 사용자 인증/보안 강화, 데이터 시각화 기능도 지속 확장될 예정입니다.
0 commit comments