์๊ธฐ๋ฅ #44
์งํ์ค๐ Mangement Cloud server FastAPI ํ๋ก์ ํธ
0%
์ค๋ช
- ๋ชฉ์ฐจ
- ๐ Mangement Cloud server FastAPI ํ๋ก์ ํธ
- ๐ฆ Epic 1 โ FastAPI ํ๋ก์ ํธ ๊ตฌ์กฐ ์ค๊ณ
- ๐ฆ Issue 2 โ Django ๋ชจ๋ธ ๋ถ์ ๋ฐ FastAPI ๋ชจ๋ธ ๋ณํ ๊ณํ
- ๐ฆ Issue 3 โ FastAPI ๊ธฐ๋ณธ ์๋ฒ ๊ตฌ์ถ
- ๐ฆ Issue 4 โ PostgreSQL ์ฐ๊ฒฐ ๋ฐ SQLAlchemy ๋ชจ๋ธ ์์ฑ
- ๐ฆ Issue 5 โ MQTT Worker ๋ ๋ฆฝ ํ๋ก์ธ์ค ์ค๊ณ
- ๐ฆ Issue 6 โ Reverse SSH ๊ตฌ์กฐ ์ค๊ณ
- ๐ฆ Issue 7 โ AlmaLinux ์๋ฒ 2๋ ๊ตฌ์ฑ ๊ณํ
- ๐ฆ Issue 8 โ journald / systemd ์ต์ ํ ๊ณํ
- ๐ฆ Issue 9 โ Django โ FastAPI ๋ง์ด๊ทธ๋ ์ด์ ์ฒดํฌ๋ฆฌ์คํธ ์์ฑ
- ๐ฆ Issue 10 โ ์ ์ฒด ์ํคํ ์ฒ ๋ฌธ์ํ
๐ Mangement Cloud server FastAPI ํ๋ก์ ํธ¶
๐ฆ Epic 1 โ FastAPI ํ๋ก์ ํธ ๊ตฌ์กฐ ์ค๊ณ¶
ํธ๋์ปค: Task
์นดํ
๊ณ ๋ฆฌ: FastAPI ์๋ฒ ๊ฐ๋ฐ
์ค๋ช :
- FastAPI ๊ธฐ๋ฐ mgmt ์๋ฒ์ ์ ์ฒด ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ค.
- app / worker / routers / models / core ๊ตฌ์กฐ ์ ์
- Gitea ์ ์ฅ์ ์์ฑ
- PyCharm ๊ฐ๋ฐ ํ๊ฒฝ ์ค๋น
- ๊ธฐ๋ณธ ์คํ ๊ตฌ์กฐ(main.py) ์ค๊ณ
๐ฆ Issue 2 โ Django ๋ชจ๋ธ ๋ถ์ ๋ฐ FastAPI ๋ชจ๋ธ ๋ณํ ๊ณํ¶
ํธ๋์ปค: Task
์นดํ
๊ณ ๋ฆฌ: Django โ FastAPI ๋ง์ด๊ทธ๋ ์ด์
์ค๋ช
๊ธฐ์กด Django ORM ๋ชจ๋ธ์ ๋ถ์ํ๊ณ SQLAlchemy ๋ชจ๋ธ๋ก ๋ณํ ๊ณํ์ ์๋ฆฝํ๋ค.
ServerMaster
ServerStatus
ServerControl
ServerDetail
JSONField โ PostgreSQL JSONB ๋ณํ
๊ด๊ณ(OneToOne, ForeignKey) ๋งคํ ๋ฐฉ์ ์ ์
๐ฆ Issue 3 โ FastAPI ๊ธฐ๋ณธ ์๋ฒ ๊ตฌ์ถ¶
ํธ๋์ปค: Feature
์นดํ
๊ณ ๋ฆฌ: FastAPI ์๋ฒ ๊ฐ๋ฐ
์ค๋ช
FastAPI ๊ธฐ๋ณธ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ค.
/ping
/server/list
/server/status/{hostname}
uvicorn ์คํ ํ ์คํธ
test_main.http ํ ์คํธ
๐ฆ Issue 4 โ PostgreSQL ์ฐ๊ฒฐ ๋ฐ SQLAlchemy ๋ชจ๋ธ ์์ฑ¶
ํธ๋์ปค: Feature
์นดํ
๊ณ ๋ฆฌ: DB(PostgreSQL)
์ค๋ช
PostgreSQL ์ฐ๊ฒฐ ๋ฐ SQLAlchemy ๋ชจ๋ธ์ ์์ฑํ๋ค.
DB ์ฐ๊ฒฐ ํ ์คํธ
SQLAlchemy Base ์์ฑ
๋ชจ๋ธ ๋งคํ
JSONB ํ๋ ํ ์คํธ
๐ฆ Issue 5 โ MQTT Worker ๋ ๋ฆฝ ํ๋ก์ธ์ค ์ค๊ณ¶
ํธ๋์ปค: Feature
์นดํ
๊ณ ๋ฆฌ: MQTT Worker
์ค๋ช
MQTT worker๋ฅผ FastAPI์ ๋ถ๋ฆฌ๋ ๋
๋ฆฝ ํ๋ก์ธ์ค๋ก ์ค๊ณํ๋ค.
asyncio-mqtt ์ฌ์ฉ
๋ฉ์์ง ์์ ๊ตฌ์กฐ ์ค๊ณ
DB ์ ๋ฐ์ดํธ ๋ฐฉ์ ๊ฒฐ์
FastAPI์ ์ฐ๋ ๋ฐฉ์ ์ ์(API ํธ์ถ vs DB ์ง์ ์ ๋ฐ์ดํธ)
๐ฆ Issue 6 โ Reverse SSH ๊ตฌ์กฐ ์ค๊ณ¶
ํธ๋์ปค: Task
์นดํ
๊ณ ๋ฆฌ: Reverse SSH
์ค๋ช
Reverse SSH ๊ธฐ๋ฅ์ FastAPI์์ ์ ์ดํ ์ ์๋๋ก ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ค.
ํฌํธ ๊ด๋ฆฌ
์ธ์ ๊ด๋ฆฌ
FastAPI ์ ์ด API ์ค๊ณ
๋ก์ปฌ ํ ์คํธ ํ๋ก์ฐ ์ ์
๐ฆ Issue 7 โ AlmaLinux ์๋ฒ 2๋ ๊ตฌ์ฑ ๊ณํ¶
ํธ๋์ปค: Task
์นดํ
๊ณ ๋ฆฌ: ์๋ฒ ๋ถ๋ฆฌ(1GB ร 2๋)
์ค๋ช
์๋ฒ๋ฅผ 2๋๋ก ๋ถ๋ฆฌํ๊ณ 1GB ๋ฉ๋ชจ๋ฆฌ ๊ธฐ์ค์ผ๋ก ์ต์ ํํ๋ค.
mgmt + worker ์๋ฒ
lotto + pwa ์๋ฒ
systemd ์๋น์ค ๊ตฌ์ฑ
๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ๊ณํ
๐ฆ Issue 8 โ journald / systemd ์ต์ ํ ๊ณํ¶
ํธ๋์ปค: Task
์นดํ
๊ณ ๋ฆฌ: AlmaLinux ํ๊ฒฝ ๊ตฌ์ฑ
์ค๋ช
AlmaLinux์์ journald ๋ฐ systemd ์ต์ ํ๋ฅผ ์ํํ๋ค.
journald ๋ฉ๋ชจ๋ฆฌ ์ ํ
๋ก๊ทธ ๋กํ ์ด์
systemd ์๋น์ค ํ์ผ ์ค๊ณ
gunicorn/uvicorn ์๋น์ค ๊ตฌ์ฑ
๐ฆ Issue 9 โ Django โ FastAPI ๋ง์ด๊ทธ๋ ์ด์ ์ฒดํฌ๋ฆฌ์คํธ ์์ฑ¶
ํธ๋์ปค: Task
์นดํ
๊ณ ๋ฆฌ: Django โ FastAPI ๋ง์ด๊ทธ๋ ์ด์
์ค๋ช
Django์์ FastAPI๋ก ์ ํํ๊ธฐ ์ํ ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค.
๊ธฐ๋ฅ ๋น๊ต
API ๋งคํ
DB ์คํค๋ง ๋น๊ต
MQTT ๋ก์ง ๋ถ๋ฆฌ
reverse SSH ๊ธฐ๋ฅ ์ด์
๋ฐฐํฌ ํ๋ก์ฐ ์ ์
๐ฆ Issue 10 โ ์ ์ฒด ์ํคํ ์ฒ ๋ฌธ์ํ¶
ํธ๋์ปค: Documentation
์นดํ
๊ณ ๋ฆฌ: ๋ฌธ์ํ
์ค๋ช
FastAPI mgmt ์๋ฒ + MQTT worker + PostgreSQL + reverse SSH + ์๋ฒ ๋ถ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ฌธ์ํํ๋ค.
์ ์ฒด ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จ
๋ฐ์ดํฐ ํ๋ฆ
์๋ฒ ๊ตฌ์ฑ
๋ฐฐํฌ ์ ๋ต
์ด์ ๊ฐ์ด๋
ํ์ ์ผ๊ฐ 7 (7 ๊ฑด ์งํ ์ค — ๋ชจ๋ ๋ฏธ์๋ฃ)
minkyu park์ด(๊ฐ) 21์ผ ์ ์ ๋ณ๊ฒฝ
- ์ค๋ช ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. (๋น๊ต(diff))
- ๋ด๋น์์(๋ฅผ) minkyu park(์ผ)๋ก ์ง์ ๋์์ต๋๋ค.
minkyu park์ด(๊ฐ) 21์ผ ์ ์ ๋ณ๊ฒฝ
- Subtask์ #45์ด(๊ฐ) ์ถ๊ฐ๋์์ต๋๋ค.
minkyu park์ด(๊ฐ) 21์ผ ์ ์ ๋ณ๊ฒฝ
- ์ ๋ชฉ์(๋ฅผ) ๐ ๋ ๋๋ง์ธ ์ด๊ธฐ ์ด์ ์ธํธ (Markdown ํ ํ๋ฆฟ)์์ ๐ Mangement Cloud server FastAPI ํ๋ก์ ํธ(์ผ)๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
- ์ค๋ช ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. (๋น๊ต(diff))
minkyu park์ด(๊ฐ) 21์ผ ์ ์ ๋ณ๊ฒฝ
- Subtask ๊ฐ์ด ์ง์์ก์ต๋๋ค. (
#45)
minkyu park์ด(๊ฐ) 21์ผ ์ ์ ๋ณ๊ฒฝ
- Subtask์ #46์ด(๊ฐ) ์ถ๊ฐ๋์์ต๋๋ค.
minkyu park์ด(๊ฐ) 21์ผ ์ ์ ๋ณ๊ฒฝ
- Subtask์ #47์ด(๊ฐ) ์ถ๊ฐ๋์์ต๋๋ค.
minkyu park์ด(๊ฐ) 20์ผ ์ ์ ๋ณ๊ฒฝ
- Subtask์ #48์ด(๊ฐ) ์ถ๊ฐ๋์์ต๋๋ค.
minkyu park์ด(๊ฐ) 20์ผ ์ ์ ๋ณ๊ฒฝ
- Subtask์ #49์ด(๊ฐ) ์ถ๊ฐ๋์์ต๋๋ค.
minkyu park์ด(๊ฐ) 20์ผ ์ ์ ๋ณ๊ฒฝ
- Subtask์ #50์ด(๊ฐ) ์ถ๊ฐ๋์์ต๋๋ค.
minkyu park์ด(๊ฐ) 20์ผ ์ ์ ๋ณ๊ฒฝ
- Subtask์ #51์ด(๊ฐ) ์ถ๊ฐ๋์์ต๋๋ค.
minkyu park์ด(๊ฐ) 20์ผ ์ ์ ๋ณ๊ฒฝ
- Subtask์ #52์ด(๊ฐ) ์ถ๊ฐ๋์์ต๋๋ค.