Spaces:
Running
Running
| # 06. ์์ฌ๊ฒฐ์ ๊ธฐ๋ก | |
| ์ด ๋ฌธ์๋ ํ๋ก์ ํธ์์ ์ค์ํ ๊ธฐ์ ์ ํ์ ์ ํ๋์ง ๊ธฐ๋กํฉ๋๋ค. | |
| ํ์์ ๊ฐ๋ฒผ์ด ADR(Architecture Decision Record) ์คํ์ผ์ ๋ฐ๋ฆ ๋๋ค. | |
| ## ADR-001. UI๋ Streamlit์ ์ฌ์ฉํ๋ค | |
| - ์ํ: ์ฑํ | |
| - ๋ ์ง: 2026-06-07 | |
| ### ๋ฐฐ๊ฒฝ | |
| ์ด ํ๋ก์ ํธ๋ ๋ฌธ์ ํ์ด ํ๋ฉด, PDF ์ ๋ก๋ ํ๋ฉด, ์ฒ๋ฆฌ ํํฉ ํ๋ฉด์ ๋น ๋ฅด๊ฒ ๋ง๋ค๊ณ ๊ฒ์ฆํด์ผ ํฉ๋๋ค. ๊ฐ์ธ ํ๋ก์ ํธ ๋จ๊ณ์์๋ ๋ณต์กํ ํ๋ก ํธ์๋ ๊ตฌ์กฐ๋ณด๋ค ๊ธฐ๋ฅ ๊ฒ์ฆ ์๋๊ฐ ์ค์ํฉ๋๋ค. | |
| ### ๊ฒฐ์ | |
| ์น UI๋ Streamlit์ผ๋ก ๋ง๋ ๋ค. | |
| ### ์ด์ | |
| - Python ์ฝ๋๋ง์ผ๋ก ์น ํ๋ฉด์ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์๋ค. | |
| - ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ฝ๋์ ์ฐ๊ฒฐํ๊ธฐ ์ฝ๋ค. | |
| - ๊ฐ์ธ ํ๋ก์ ํธ๋ ํ๋กํ ํ์ ์ ์ ํฉํ๋ค. | |
| - ๋ฌธ์ ํ์ด, ์ ๋ก๋, ํ, ์งํ๋ฅ ํ์ ๊ฐ์ ํ๋ฉด์ ๋น ๋ฅด๊ฒ ๊ตฌ์ฑํ ์ ์๋ค. | |
| ### ๊ฒฐ๊ณผ | |
| ๋น ๋ฅด๊ฒ ๊ธฐ๋ฅ์ ๋ง๋ค ์ ์๋ ๋์ , ์ธ๋ฐํ UI/UX ์ปค์คํฐ๋ง์ด์ง์๋ ํ๊ณ๊ฐ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ง์์ง๊ฑฐ๋ ๋ณต์กํ ์ธํฐ๋์ ์ด ํ์ํด์ง๋ฉด ๋ณ๋ ํ๋ก ํธ์๋ ์ ํ์ ๊ฒํ ํ ์ ์์ต๋๋ค. | |
| ## ADR-002. ๋ฉ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ PostgreSQL์ ์ฌ์ฉํ๋ค | |
| - ์ํ: ์ฑํ | |
| - ๋ ์ง: 2026-06-07 | |
| ### ๋ฐฐ๊ฒฝ | |
| ๋ฌธ์ , ์ ๋ต, ํ์ด ๊ธฐ๋ก, PDF ์ฒ๋ฆฌ ์์ ์ํ๋ ์ ํํ๊ฒ ์ ์ฅ๋์ด์ผ ํฉ๋๋ค. Docker์ Airflow๋ฅผ ํจ๊ป ์ฐ๋ ๊ตฌ์กฐ์์๋ ํ์ผ ๊ธฐ๋ฐ SQLite๋ณด๋ค ์๋ฒํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ ์ ํฉํฉ๋๋ค. | |
| ### ๊ฒฐ์ | |
| ๋ฉ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ PostgreSQL์ ์ฌ์ฉํ๋ค. | |
| ### ์ด์ | |
| - ๋ฌธ์ ์ ํ์ด ๊ธฐ๋ก์ ์์ ์ ์ผ๋ก ์ ์ฅํ ์ ์๋ค. | |
| - Docker Compose์์ ์๋น์ค๋ก ๋์ฐ๊ธฐ ์ฝ๋ค. | |
| - ํฅํ ๋ฐฐํฌ ํ๊ฒฝ์์๋ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค. | |
| - Airflow ์์ ๊ณผ Streamlit ์ฑ์ด ๊ฐ์ DB๋ฅผ ๋ฐ๋ผ๋ณผ ์ ์๋ค. | |
| ### ๊ฒฐ๊ณผ | |
| ๋ก์ปฌ ์คํ ์ PostgreSQL ์ปจํ ์ด๋๊ฐ ํ์ํฉ๋๋ค. ๋์ ์ค์ ๋ฐฐํฌ์ ๊ฐ๊น์ด ๊ตฌ์กฐ๋ก ๊ฐ๋ฐํ ์ ์์ต๋๋ค. | |
| ## ADR-003. ์ ์ฌ ๋ฌธ์ ๊ฒ์์ Chroma๋ฅผ ์ฌ์ฉํ๋ค | |
| - ์ํ: ์ฑํ | |
| - ๋ ์ง: 2026-06-07 | |
| ### ๋ฐฐ๊ฒฝ | |
| ๋ฌธ์ ํ์ด ์ฑ์์๋ ๋จ์ ํค์๋ ๊ฒ์๋ฟ ์๋๋ผ ์๋ฏธ๊ฐ ๋น์ทํ ๋ฌธ์ ๋ฅผ ์ฐพ๋ ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค. | |
| ### ๊ฒฐ์ | |
| ์ ์ฌ ๋ฌธ์ ๊ฒ์์ ์ํด Chroma๋ฅผ ์ฌ์ฉํ๋ค. | |
| ### ์ด์ | |
| - ๋ก์ปฌ์์ ๋ฒกํฐ ๊ฒ์์ ์คํํ๊ธฐ ์ฝ๋ค. | |
| - ๋ฌธ์ ์๋ฒ ๋ฉ์ ์ ์ฅํ๊ณ ์ ์ฌ๋๋ฅผ ๊ณ์ฐํ ์ ์๋ค. | |
| - PostgreSQL๊ณผ ์ญํ ์ ๋ถ๋ฆฌํ ์ ์๋ค. | |
| ### ๊ฒฐ๊ณผ | |
| PostgreSQL์๋ ์๋ณธ ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , Chroma์๋ ๊ฒ์์ฉ ๋ฒกํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์๋ฒ ๋ฉ ๋ชจ๋ธ์ด ๋ฐ๋๋ฉด ๊ธฐ์กด ์ธ๋ฑ์ค์ ์ฐจ์์ด ๋ง์ง ์์ ์ ์์ผ๋ฏ๋ก ๋ชจ๋ธ๋ณ ์ปฌ๋ ์ ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. | |
| ## ADR-004. PDF ์ฒ๋ฆฌ ์์ ์ Airflow๋ก ๊ด๋ฆฌํ๋ค | |
| - ์ํ: ์ฑํ | |
| - ๋ ์ง: 2026-06-07 | |
| ### ๋ฐฐ๊ฒฝ | |
| PDF ํ์ฑ, ํ์ง ๊ฒ์ฆ, ์ด๋ฏธ์ง ๋ถ์, ๋ฒกํฐ ์์ธ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ์น ์์ฒญ ์์์ ๋ชจ๋ ์ฒ๋ฆฌํ๋ฉด ํ๋ฉด์ด ๋ฉ์ถ๊ฑฐ๋ ์คํจ ์ถ์ ์ด ์ด๋ ค์์ง ์ ์์ต๋๋ค. | |
| ### ๊ฒฐ์ | |
| PDF ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ Airflow DAG๋ก ์คํํ๊ณ ๊ด๋ฆฌํ๋ค. | |
| ### ์ด์ | |
| - ๊ธด ์์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ ์ ์๋ค. | |
| - ์คํจํ ์์ ์ ์ถ์ ํ๊ธฐ ์ฝ๋ค. | |
| - ๋จ๊ณ๋ณ ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์๋ค. | |
| - ๋์ค์ ์ฌ์คํ์ด๋ ์์ฝ ์์ ์ผ๋ก ํ์ฅํ๊ธฐ ์ข๋ค. | |
| ### ๊ฒฐ๊ณผ | |
| ๊ตฌ์กฐ๋ ๋ ๋ช ํํด์ง์ง๋ง Airflow ์์ฒด ์ด์ ๋น์ฉ์ด ์๊น๋๋ค. ๊ฐ์ธ ํ๋ก์ ํธ ๋จ๊ณ์์๋ ๋ณต์ก๋๊ฐ ๋์ด๋ ์ ์์ผ๋ฏ๋ก, ๊ผญ ํ์ํ ๊ธด ์์ ๋ถํฐ Airflow๋ก ๋ถ๋ฆฌํฉ๋๋ค. | |
| ## ADR-005. ์คํ ํ๊ฒฝ์ Docker Compose๋ก ํต์ผํ๋ค | |
| - ์ํ: ์ฑํ | |
| - ๋ ์ง: 2026-06-07 | |
| ### ๋ฐฐ๊ฒฝ | |
| ์ด ํ๋ก์ ํธ๋ ์น ์ฑ, PostgreSQL, Airflow, Chroma, PDF ์ฒ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๋ฅผ ํจ๊ป ์ฌ์ฉํฉ๋๋ค. ๋ก์ปฌ ํ๊ฒฝ์ ์ง์ ์ค์นํ๋ฉด ๋ฒ์ ์ฐจ์ด์ ์ค์ ์ฐจ์ด๊ฐ ์๊ธธ ์ ์์ต๋๋ค. | |
| ### ๊ฒฐ์ | |
| ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ์ ๊ธฐ๋ณธ ์คํ ๋ฐฉ์์ Docker Compose๋ก ํต์ผํ๋ค. | |
| ### ์ด์ | |
| - ์ฌ๋ฌ ์๋น์ค๋ฅผ ํ ๋ช ๋ น์ผ๋ก ์คํํ ์ ์๋ค. | |
| - ๋ค๋ฅธ ํ๊ฒฝ์์๋ ๋น์ทํ๊ฒ ์ฌํํ ์ ์๋ค. | |
| - PostgreSQL๊ณผ Airflow๋ฅผ ํจ๊ป ์คํํ๊ธฐ ์ฝ๋ค. | |
| - ํฅํ ์๋ฒ ๋ฐฐํฌ์ ์ฐ๊ฒฐํ๊ธฐ ์ข๋ค. | |
| ### ๊ฒฐ๊ณผ | |
| Docker๋ฅผ ๋ชจ๋ฅด๋ฉด ์ฒ์ ์คํ ์ฅ๋ฒฝ์ด ์๊ธธ ์ ์์ต๋๋ค. ๊ทธ๋์ README์ ๋ฐฐํฌ ๋ฌธ์์ ์คํ ๋ฐฉ๋ฒ์ ๋ช ํํ ๊ธฐ๋กํฉ๋๋ค. | |
| ## ADR-006. ํฅํ ๋ฐฐํฌ ๋์์ Oracle Cloud Ubuntu๋ก ๊ณํํ๋ค | |
| - ์ํ: ๊ณํ | |
| - ๋ ์ง: 2026-06-07 | |
| ### ๋ฐฐ๊ฒฝ | |
| ํฌํธํด๋ฆฌ์ค ํ๋ก์ ํธ๋ก ๋จ๊ธฐ๋ ค๋ฉด ๋ก์ปฌ ์คํ๋ฟ ์๋๋ผ ์ค์ ์๋ฒ ๋ฐฐํฌ ๊ฒฝํ๋ ์ค์ํฉ๋๋ค. | |
| ### ๊ฒฐ์ | |
| ํฅํ Oracle Cloud์ Ubuntu ์๋ฒ์ Docker ๊ธฐ๋ฐ์ผ๋ก ๋ฐฐํฌํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค. | |
| ### ์ด์ | |
| - Ubuntu ์๋ฒ๋ Docker ๋ฐฐํฌ ์๋ฃ๊ฐ ๋ง๋ค. | |
| - ๊ฐ์ธ ํ๋ก์ ํธ ๋ฐฐํฌ ์ฐ์ต์ ์ ํฉํ๋ค. | |
| - Streamlit, PostgreSQL, Airflow๋ฅผ ํ ์๋ฒ์์ ์คํํ๊ธฐ ์ข๋ค. | |
| - ์ค์ ์ ์ ๊ฐ๋ฅํ ํฌํธํด๋ฆฌ์ค ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค ์ ์๋ค. | |
| ### ๊ฒฐ๊ณผ | |
| ๋ฐฐํฌ ์ ์๋ ๋ณด์, ํ๊ฒฝ ๋ณ์, ๋ฐ์ดํฐ ๋ฐฑ์ , HTTPS ์ค์ ์ ์ ๋ฆฌํด์ผ ํฉ๋๋ค. | |
| ## ADR-007. ๋ฌธ์ ์ ์ฅ ์ ํ์ง ๊ฒ์ดํธ๋ฅผ ๋๋ค | |
| - ์ํ: ์ฑํ | |
| - ๋ ์ง: 2026-06-07 | |
| ### ๋ฐฐ๊ฒฝ | |
| PDF ํ์ฑ์ ํญ์ ์ ํํ์ง ์์ต๋๋ค. ์๋ชป ๋๋ ๋ฌธ์ ๋ ์ ๋ต์ด ๋น์ด ์๋ ๋ฌธ์ ๊ฐ ๊ทธ๋๋ก ์ ์ฅ๋๋ฉด ํ์ต ๊ฒฝํ์ด ๋๋น ์ง๋๋ค. | |
| ### ๊ฒฐ์ | |
| PDF ํ์ฑ ํ ๋ฐ๋ก ์ ์ฅํ์ง ์๊ณ , ํ์ฑ ํ์ง ๊ฒ์ฆ๊ณผ Quality Gate ๋จ๊ณ๋ฅผ ๋๋ค. | |
| ### ์ด์ | |
| - ์๋ชป ํ์ฑ๋ ๋ฌธ์ ๋ฅผ ์ค์ผ ์ ์๋ค. | |
| - ๋ฌธ์ ์ฒญํน ์ํ๋ฅผ ์๋์ผ๋ก ์ ๊ฒํ ์ ์๋ค. | |
| - ์ฌ๋์ด ๋ชจ๋ ๋ฌธ์ ๋ฅผ ์ง์ ๊ฒ์ํ๋ ๋ถ๋ด์ ์ค์ผ ์ ์๋ค. | |
| - LLM ์ฌ์ฉ์ ์ต์ํํ๋ฉด์๋ ํ์ง์ ๋์ผ ์ ์๋ค. | |
| ### ๊ฒฐ๊ณผ | |
| ํ์ดํ๋ผ์ธ ๋จ๊ณ๋ ๋์ด๋์ง๋ง, ๋ฌธ์ ๋ฐ์ดํฐ์ ์ ๋ขฐ๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค. ์์ผ๋ก๋ ํ์ง ๋ฆฌํฌํธ๋ฅผ UI์์ ๋ ๋ณด๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ์์ ์ด ํ์ํฉ๋๋ค. | |
| ## ADR-008. ๋ฌธ์ ์ ํ๊ณผ ์ ๋ต ๋น๊ต๋ ๋ณ๋ ๊ณ์ธต์์ ํ์คํํ๋ค | |
| - ์ํ: ์ฑํ | |
| - ๋ ์ง: 2026-06-07 | |
| ### ๋ฐฐ๊ฒฝ | |
| ์๊ฒฉ์ฆ ๋ฌธ์ ์๋ ๋จ์ผ ์ ํ, ๋ณต์ ์ ํ, Yes/No ์ง์ ํ, ํซ์คํ, ๋๋๊ทธ ์ค ๋๋กญ, ๊ณตํต ์ง๋ฌธ ๋ฌธ์ ๊ฐ ์์ฌ ์์ต๋๋ค. ์๋ณธ ๋ฐ์ดํฐ์ `question_type`๋ `Hotspot (True/False)`์ฒ๋ผ ๋ค์ํ ๋ฌธ์์ด๋ก ๋ค์ด์ฌ ์ ์์ต๋๋ค. | |
| ### ๊ฒฐ์ | |
| ๋ฌธ์ ์ ํ์ `question_type_metadata_service.py`์์ ๋ด๋ถ ํ์ค ์ ํ์ผ๋ก ๋ณํํ๊ณ , ์ ๋ต ๋น๊ต๋ `answer_normalizer.py`์์ ์ฒ๋ฆฌํ๋ค. | |
| ### ์ด์ | |
| - ํ๋ฉด, ๊ฒ์, ์ฑ์ ๋ก์ง์ด ์๋ก ๋ค๋ฅธ ๊ธฐ์ค์ ์ฐ๋ ๋ฌธ์ ๋ฅผ ์ค์ผ ์ ์๋ค. | |
| - ์ ๋ฌธ์ ์ ํ alias๊ฐ ๋ค์ด์๋ ํ ๊ณณ์์ ์ถ๊ฐํ ์ ์๋ค. | |
| - Yes/No์ ์์ํ ๋ต์์ฒ๋ผ ์ผ๋ฐ ๊ฐ๊ด์๊ณผ ๋ค๋ฅธ ์ฑ์ ๋ฐฉ์์ ๋ถ๋ฆฌํ ์ ์๋ค. | |
| ### ๊ฒฐ๊ณผ | |
| ๋ฌธ์ ํ์ด ํ๋ฉด๊ณผ ์๋ ๊ฒ์ ์๋น์ค๊ฐ ๊ฐ์ ๋ฌธ์ ์ ํ ๊ธฐ์ค์ ๊ณต์ ํฉ๋๋ค. ์์ผ๋ก ์ ์ ํ์ ์ถ๊ฐํ ๋๋ ๋จผ์ ํ์ค ์ ํ ๋ณํ๊ณผ ํ ์คํธ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. | |
| ## ADR-009. ๋ฐฐํฌ ์ ํ์ง ๊ฒ์ฌ๋ ์คํฌ๋ฆฝํธ์ GitHub Actions๋ก ์๋ํํ๋ค | |
| - ์ํ: ์ฑํ | |
| - ๋ ์ง: 2026-06-07 | |
| ### ๋ฐฐ๊ฒฝ | |
| Hugging Face Space์๋ DB ์ ์ฒด๊ฐ ์๋๋ผ seed ํ์ผ๊ณผ ์ ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฆฝ๋๋ค. ๋ฐ๋ผ์ seed ๊ตฌ์กฐ, ๋ฌธ์ ์ ํ alias, ์ ๋ต ์ ๊ทํ๊ฐ ๊นจ์ง๋ฉด ๋ฐฐํฌ ํ ๋ฌธ์ ํ์ด๊ฐ ๋ฐ๋ก ์ํฅ์ ๋ฐ์ต๋๋ค. | |
| ### ๊ฒฐ์ | |
| `scripts/check_quality.py`๋ฅผ ์ถ๊ฐํ๊ณ , GitHub Actions์์ ํต์ฌ ํ ์คํธ์ ๋ฌธ๋ฒ ๊ฒ์ฌ๋ฅผ ์คํํ๋ค. | |
| ### ์ด์ | |
| - push ์ ์ ๋ก์ปฌ์์ ๊ฐ์ ๊ฒ์ฌ๋ฅผ ์คํํ ์ ์๋ค. | |
| - GitHub์์๋ ์ต์ ํ์ง ๊ฒ์ฌ๋ฅผ ์๋์ผ๋ก ๋จ๊ธธ ์ ์๋ค. | |
| - ๋ฌด๊ฑฐ์ด OCR/LLM ์์กด์ฑ์ ์ค์นํ์ง ์๊ณ ํต์ฌ ๋๋ฉ์ธ ๋ก์ง๋ง ๋น ๋ฅด๊ฒ ๊ฒ์ฆํ ์ ์๋ค. | |
| ### ๊ฒฐ๊ณผ | |
| ํ์ฌ ์๋ ๊ฒ์ฌ๋ ๋ฌธ์ ์ ํ/์ ๋ต/seed ๋ฆฌํฌํธ ์ค์ฌ์ ๋๋ค. ์ดํ PDF ํ์ฑ๊ณผ DB ์ ์ฅ ํ ์คํธ๊น์ง ์ ์ง์ ์ผ๋ก ๋ํ ์ ์์ต๋๋ค. | |