์๊ธฐ๋ฅ #44
minkyu park์ด(๊ฐ) 21์ผ ์ ์ ๋ณ๊ฒฝ
## ๐ฆ Issue 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 + ์๋ฒ ๋ถ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ฌธ์ํํ๋ค. ์ ์ฒด ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จ ๋ฐ์ดํฐ ํ๋ฆ ์๋ฒ ๊ตฌ์ฑ ๋ฐฐํฌ ์ ๋ต ์ด์ ๊ฐ์ด๋