cert-study-app / docs /06_decision_log.md
Kentlo's picture
Sync from GitHub f8e98d3f03952efd3d7c1b217df60c77c3992aec
87b5875 verified
|
Raw
History Blame Contribute Delete
8.05 kB
# 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 ์ €์žฅ ํ…Œ์ŠคํŠธ๊นŒ์ง€ ์ ์ง„์ ์œผ๋กœ ๋„“ํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.