Spaces:
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 ์ ์ฅ ํ ์คํธ๊น์ง ์ ์ง์ ์ผ๋ก ๋ํ ์ ์์ต๋๋ค.