๐ฆ ์ธ์์ธ๊ณ์ โ ๋ค์ ๋ํ๋ฐฉ์ฉ
โ ํ์ฌ 1์์ (2026-06-25 โ cmdboard ์ํด ๊ฒฐ์ : RDS ๋น์ฉ ์ ๊ฐ, ์ญ์ ์น์ธ ๋๊ธฐ)
๊ฒฐ์ (ํํ, 2026-06-25): cmdboard ์น์ฑ ์์ ์ํด. SARA๋ฅผ ๊ฐ ํ๋ก์ ํธ๋ณ ์๊ท๋ชจ/๊ธฐ๋ฅ์นดํผ๋ก ๋ณ๊ฐ ์ฌ์ฉ ์ค โ ์ค์ cmdboard ๋ณด๋ ๋ถํ์. CloudWatch ๊ฒ์ฆ=cmdboard-dbinstance 7์ผ ์ฐ๊ฒฐ avg~6(EC2 gunicorn ์ ํดํ, ์ฌ์ฉ ์คํ์ดํฌ 0=์ค์ฌ์ฉ์ ์์). ๋๋น pfs poin-dbinstance๋ ํ์0ยท๊ฐํ1~2=์ค ํธ๋ํฝ.
- ์ธํ๋ผ ํ์ (์ค์ธก 2026-06-25): RDS 3๋ ๋ชจ๋ db.t4g.micro/20GB ๋จ์ผAZ. โ cmdboard-dbinstance(cmdboard ์ ์ฉ, gp3) โก poin-dbinstance(pfs ์ด์, gp2) โข poin-dbinstance-test(pfs ํ
์คํธ). cmdboard๋ pfs์ ๋ณ๊ฐ ์ธ์คํด์ค โ ์ญ์ ํด๋ pfs ๋ฌด์ํฅ(EC2 i-03225ba8bc12a929e๋ง ๊ณต์ ). micro 1๋ โ ์ $15~16.
- โ
์ฝ๋ ์์นด์ด๋ธ ์๋ฃ: C:\dev\cmdboard\_archive\cmdboard_dump_20260625.sql(.gz) โ mysqldump(26ํ
์ด๋ธยท์ ์ฒด๋ฐ์ดํฐ, MySQL 8.4.8). EC2์ aws CLI ์์ด SSM์ผ๋ก ๋คํโEC2 ์ผํ์ฑ http.serverโTailscale(100.73.87.48) ๋ก์ปฌ pull. board_admin์ RELOAD ๊ถํ ์์ โ --single-transaction ๋ถ๊ฐ, --skip-lock-tables๋ก ๋คํ(์ ํดDB๋ผ ์์ ). gzip -t ๊ฒ์ฆ PASS. ๋ณต์=mysql < dump(๋ฏธ๋PC MariaDB ๋ฑ ์ด๋๋ ).
- โณ ์ญ์ ์น์ธ ๋๊ธฐ(์ํ์์
ยทํ
๋ ๊ทธ๋จ ๊ฒ์ดํธ): aws rds delete-db-instance cmdboard-dbinstance --final-db-snapshot-identifier cmdboard-final-20260625 --no-delete-automated-backups(์ต์ข
์ค๋
์ท=์ธ์คํด์ค ์ ์ฒด[cmdboard_test ํฌํจ] ์์ ๋ณด์กด) + EC2 cmdboard.service/cmdboard-test.service stopยทdisable. ์น์ธ ์ ๋ฏธ์คํ.
- ์ ๊ฐ ํ๊ณ: EC2ยทpfs RDS 2๋๋ ์
๋ฌด์ฉ ์ ์ง โ ์ด ์์
์ ๊ฐ์ micro 1๋(~์ $15)๋ฟ. pfs ์ด์์ ๋ฏธ๋PC๋ก ์ฎ๊ธฐ๋ ๊ฑด ๋น์ถ(์ ์ ๋ค์ด ์ด๋ ฅ).
- โ
๋ก์ปฌ ์์ฃผ ์๋ฒ ์ค๋จ(2026-06-25): ๋ฏธ๋PC์์ โ cmdboard Bridge(:8765, SARA ์คํ ๋ธ๋ฆฌ์ง) โก SARA ์๋ฒ(C:\dev\SARA\run.py :8770) โข agent-dialogue-hub(:8780, GPT ์์) ์ข
๋ฃ + ์๋์์ ์์
disable(CmdboardBridge/CmdboardBridgeTest/CmdboardBridgeTray/SaraWatchdog/HubWatchdog). ์์น๋
1๋ถ ์ฌ๊ธฐ๋ ๊ตฌ์กฐ๋ผ task disable ํ์์์. ์ ์ง: broker(:7777 ์น์ธ๊ฒ์ดํธ)ยทpfs orderpaper_sync(:8791)ยทuser_brief(:8788)ยทdevplan(:8799)ยทtalklog(:8790/8792)ยท์๊ฒฉํฐ๋ฏธ๋(:8822). ๋์ด๋ฆฌ๊ธฐ=Enable-ScheduledTask.
โ ์ด์ 1์์ (2026-05-27 ยท ๊ฐฑ์ 58 โ ๋ฌถ์C ์ฌ๋ผ ํผ๋ ๊ตฌํ ์๋ฃ, EC2-test ๊ฒ์ฆ ์ง์ + Tailscale TCP ํด๊ฒฐ)
์งํ ์ค: ๋ฌถ์C = ์นด๋์์ธ '์ฌ๋ผ ์์
์ค๊ณ ํผ๋'. ์ฌ๋ผ๊ฐ ์งํ ์ํฉ์ 1์ธ์นญ ์ ์ค์ฒด๋ก ์ค๊ณ(๋ก๊ทธ ๋ทฐ์ด ์๋). ์ฑํฐ๊ฐ ์ด ์ธ์
์์ ์ง์ ๊ตฌํ(์ฝ๋ Agent ๊ฒฝ๋ก ๋นํ์ฑ โ ์ฌ์ฉ์ ๋์ ํ์ C์=์ฑํฐ ์ง์ ).
ํ์ ์ค๊ณ: T1 40์ข
=actionโ์ฌ๋ผ ์ ์ค์ฒด JS ํ
ํ๋ฆฟ / T2 6์ข
(analysisยทplan ๋ฑ)=B์ ์ ๋จํ์(payload.text 100์, ๋ผ์ด๋ธ AI์์ฝ์ baseline ํ ๋ณ๋์นด๋) / T3 40์ข
=์๋ฒ ์ ์ธ. ๊ฒฝ๊ณ: chati_next_doneยทpayload_mismatchโT3์ ์ธ, updated ๋จ์=T1ยท์ค์ฒฉdict=T2. ์กฐ์ธ activity_logs JOIN tasks. ๋ง์ด๊ทธ๋ ์ด์
0(payload JSON ์ฌ์ฌ์ฉ). ํค=์ ์ค์ฒด. ๋๋ฒ๊ทธ ๋ผ๋ฒจ ๊ธฐ๋ณธ์จ๊น+ํ ๊ธ.
- ๋ฌถ์A ์๋ฃ(:8003, 742f454) โ mock/dead ์ ๋ฆฌ. (์ฝ๋ ์ง์์๋ฐ master push ๋ฐ์ํ์ผ๋ SSM๋ฐฐํฌ Failed๋ก EC2 ๋ฏธ์ ์ฉ)
- ๋ฌถ์B ์๋ฃยท์ด์์์ ํ์ โ /admin ๋จ์ผ์
ธ 6์น์
. ๋ธ๋์น feat/admin-unify-bundleB f06bc76. ๋ธ๋ผ์ฐ์ ๊ฒ์ฆ ์๋ฃ.
- ๋ฌถ์C ์ฝ๋ ๊ตฌํ ์๋ฃ(๋ฏธ์ปค๋ฐ) โ โ app/api/tasks.py: GET /api/tasks/<tc>/feed ์ ๊ท + _FEED_EXCLUDE_ACTIONS(T3 40์ข
) frozenset. โก ์ ๊ท app/static/js/sara_feed.js: ์ฌ๋ผ ์ ์ค์ฒด ๋ ๋๋ฌ(T1 ํ
ํ๋ฆฟ๋งต 40์ข
+actorLabel+updated๋ถ๊ธฐ+T2์ ๋จ+์๋ฃ๋
น์+๋๋ฒ๊ทธํ ๊ธ, codi_live_monitor ํจํด ์ฐจ์ฉ ๋ฉฑ๋ฑ๋ง์ดํธยท5sํด๋ง). โข app/templates/_base.html: sara_feed.js ๋ก๋ ๋ฑ๋ก. PythonยทJS ๊ตฌ๋ฌธ OK. ๊ธฐ์กด /codi/liveยทcodi_live_monitor.js ๋ฌด์์ (QA ๋๋ฒ๊ทธ ์ ์ง).
- ๋ค์ ์์์ = EC2-test ๋ฐ์ยท๊ฒ์ฆ. ๋ฌถ์C 3ํ์ผ์ ํ
์คํธ ๋ธ๋์น ์ปค๋ฐยทํธ์โcmdboard-test pullโ:8003 ์ฌ์์โ/feed ๊ฒ์ฆ(T3 0๊ฑด grep๋์กฐยท์ฌ๋ผํค ๋ ๋ยทT2์ ๋จยท๋๋ฒ๊ทธํ ๊ธยท๋ฌดํ๊ท). ํ
์คํธ ์ปค๋ฐยทํธ์ยท๋ฐฐํฌ๋ ์ฌ์ฉ์ ์ฌ์ ์น์ธ ํ์ (๋งค๋ฒ ์ ๋ฌผ์).
- Tailscale TCP ํด๊ฒฐ ์๋ฃ โ ์์ธ=NAT P2P ์คํจ(๋ฐฉํ๋ฒฝยท๋ฐ์ธ๋ฉยทACL ์ ์, ping์ DERP๊ฒฝ์ ). ๊ณต์ ๊ธฐ ํฌํธํฌ์๋ UDP 41641โ192.168.45.2 ์ถ๊ฐ๋ก EC2โBridge curl /health ์ ์({status:ok}). CGNAT ์๋(๊ณต์ธ 211.209.165.141). push ๋ชจ๋ ๋ถํ ๊ฐ๋ฅ โ T2 ๋ผ์ด๋ธ AI์์ฝ(C์)์ ์๋์ํ ํ ํฐ baseline ํ ๋ณ๋์นด๋๋ก ์น๊ธ ์์ . ์ด์ .env BRIDGE_API_BASE ์ค์ ๋จ/ํ
์คํธ .env ๋น์ด์์.
๋ฏธํด๊ฒฐ/๋๊ธฐ: โ T2 ๋ผ์ด๋ธ AI์์ฝ(C์) โ Tailscale ํด๊ฒฐ๋ก ๊ฐ๋ฅํด์ก์ผ๋ ์๋์ํ ํซํจ์ค ๋๊ธฐ LLMํธ์ถ=ํ ํฐยท์ง์ฐ โ ๋ ๋ฒ1 baseline ํ ๋์
. โก ์ฝ๋ Agent/RemoteTrigger ๊ตฌ๋๊ฒฝ๋ก ์ด ์ธ์
๋นํ์ฑ(๋ฑ๋ก 0). โข ์ด์ ์ผ๊ด๋ฐฐํฌ๋ ์ฌ์ฉ์ ๋ช
์ ์ฌ๊ฐ ์์๋ง.
(๊ฐฑ์ 50~57 ๋ณธ๋ฌธ์ ๐ ์ด๋ ฅ ์์นด์ด๋ธ๋ก ์ด๋)
์ ๋ํ๋ฐฉ ์ฝ๊ธฐ ์ ์ฐจ
- ์ โ ํ์ฌ 1์์ = ํ์ฌ ์ํ(1์์ + ๋ค์ ์์์ ).
- ๐ ์ฃผ์ ์์ธ (๋ชฉ์ฐจ) โ ๊ด๋ จ ์ฃผ์ ๋ฒํธยท์ํ ๋ผ๋ฒจ ํ์ธ.
- ๐ ํญ๋ชฉ๋ณ ์ธ๋ถ ์์ โ notion-anchor-mcp ์ต์ปค๋ก ํด๋น ยง์ฃผ์ ์ ํ. - ๊ณผ๊ฑฐ ๊ฐฑ์ (1~55) ์ ์ฒด ์ด๋ ฅ โ ๐ ์ธ์์ธ๊ณ์ ์ด๋ ฅ ์์นด์ด๋ธ.
๊ธฐ๋ณธ ์ค์ (์์)
- ๋ํ๋ฐฉ ์ปจํ ์คํธ 60% ์๋ฆผ: ํ์ฌ ๋ํ๋ฐฉ์ ์ปจํ ์คํธ ์ฌ์ฉ๋์ด 60%๋ฅผ ๋์ผ๋ฉด ์ฌ์ฉ์์๊ฒ ์๋ฆผ์ ๋ณด๋ด๊ณ , ๋ค์ ๋ํ๋ฐฉ์ ์ค๋นํ๋ค(ํ ๋ ผ์๊น์ง๋ก ์ธ์์ธ๊ณ์ยท์ธ๋ถ ์์ ๊ฐฑ์ โ ํ์ด์ง ๋งํฌ ์ ๋ฌ).
V2 Phase ์ฐธ์กฐ
- Phase 0(๊ฐ์ฌ)ยทPhase 1(๋ผ๋ฒจ) ์๋ฃ. ์ ๋ณธ ๋ฌธ์(๋ก์ปฌ
C:\dev\cmdboard\docs\):cmdboard_v2_phase0_audit.md/cmdboard_v2_naming_map.md(ยง1 ๋ผ๋ฒจ ๋งคํยทยง2 ์๋ณ์ ์ ์งยทยง3 ์ ๊ท๊ฐ๋ ) /cmdboard_v2_first_patch_plan.md. ์์น: ์ฌ์ฉ์-facing ๋ผ๋ฒจ๋ง SARA, DB enum/API URL/Bridge ์๋ณ์(chati)๋ ์ ์ง.
์ ์ฒด ์ํ ์์ (์ฐธ์กฐ)
๋ฌถ์1.5~๋ฌถ์5(D3-c)ยทํ ํฐ๊ณตํตยทD1ยทchainAยท๋ฌถ์4ยท๋ฌถ์5 [EC2-test ์ ์ฉยท๊ฒ์ฆ ALL PASS] โ V2 Phase0ยทPhase1 ์๋ฃ(:8003) โ (๋๊ธฐ) ์ด์ Tier2 ์ผ๊ด ๋ฐฐํฌ(master 1ํ = ์ ์ฒด ๋ฒ๋ค + V2 ๋ผ๋ฒจ) โ ์ค๋ฐ์ดํฐ ๊ฒ์ดํธ ํ์(B๋ฐด๋) / V2 Phase2+(C๋ฐด๋).
์์ ๊ธฐ์ค (์์ ยท ์ฐธ์กฐ)
- Tier1 ์๋ํ์ฉ: ํ์ผ read/edit/write, ๋นํ๊ดด git, ํ ์คํธ/๋น๋, venv ์ค์น, ํ ์คํธ์๋ฒ ์ฌ์์ยทgit pull, bash ์กฐํ.
- Tier2 ์ฌ์ฉ์์น์ธ: master push/์ด์๋ฐฐํฌ(cmd์๋๋ฐฐํฌ), operational rollback, ๋๋ ๋ณ๊ฒฝ.
- Tier3 ํ๋์ฐจ๋จ: rm-rf/DROP/TRUNCATE/DELETE FROM, force push, ์ด์ RDS write, SG ๋ณ๊ฒฝ, env/secret ์ถ๋ ฅ, ์๊ธฐ ๊ถํํ์ฅ, pfs/deploy-live.
- ๊ธฐ๋ณธ ๋ฐฐํฌ ์น์ธ ๋ฒ์: ํ ์คํธ(:8003ยทcmdboard_test)๋ง. ์ด์(master pushยท์ด์ RDS)์ ์ฌ์ฉ์ ๋ช ์ ์์๋ง.
- ํ์ฌ ๋ชจ๋: ์ฑํฐ๊ฐ claude-code/SSM์ผ๋ก ํ ์คํธ(:8003ยทbridge-test)์์ ์ง์ ์์ . ์ด์ :8002 / master / pfs ๋ฌด์ ์ด.
ํต์ฌ ์๋ณ์ (์ฐธ์กฐ)
- EC2 i-03225ba8bc12a929e. ์ด์ /home/ubuntu/cmdboard :8002 cmdboard.service. ํ ์คํธ /home/ubuntu/cmdboard-test :8003 cmdboard-test.service. venv /home/ubuntu/cmdboard-test/venv/bin/python(3.11.10). SSM: aws ssm start-session --target i-03225ba8bc12a929e --region ap-northeast-2.
- Bridge ์ด์ :8765 / bridge-test :8766. EC2 venv 3.11.10 / PC bridge-test .venv 3.14. ๋ก์ปฌ repo C:devcmdboard, origin github.com/delix0731/cmdboard.
- ์ง๋จ ํจ์ : EC2 sys python3=3.6.9 py_compile ์คํ โ venv 3.11.10. SSM ์ถ๋ ฅ cp949 โ --output json + PYTHONUTF8=1. aws-api MCP๋ ssm:SendCommand ๋ถ๊ฐ โ claude-code Bash ๋ก์ปฌ aws send-command(๋น๋๊ธฐ polling). claude-code Bash๋ ๋ช ๋ น๋ง๋ค cwd๊ฐ system32๋ก ๋ฆฌ์ ๋ ์ ์์ โ ์ ๋๊ฒฝ๋ก ์ฌ์ฉ(์๋ glob/ls ๋น๊ฒฐ๊ณผ ์ฃผ์).