Feature Store๋ โํผ์ฒ ์์ฑโ์ด ์๋๋ผ ์ด์ ์ฌํ์ฑ์ ๊ธฐ์ค
๐ ์๋ฆฌ์ฆ ์ ์ฒด ๊ฒฝ๋ก ์์ฝ
| ์์ | ์ฃผ์ |
|---|---|
| 1 | Contract ๊ธฐ๋ฐ Feature Store-lite ๊ตฌ์ถ |
| 2 | Feast ํ์ฅ์ผ๋ก ์กฐํ ๊ฐ๋ฅํ ํ๋ซํผ ์์ฑ |
| 3 | Proof๋ก ์ด์ ์ ๋ขฐ์ฑ ๊ฒ์ฆ |
์ด ์๋ฆฌ์ฆ๋ โFeast๋ฅผ ์จ๋ดค๋คโ๊ฐ ์๋๋ผ,
Feature Store๋ฅผ ์ด์ ๊ฐ๋ฅํ ์์คํ ์ผ๋ก ๊ณ ์ ํ๋ ๊ณผ์ ์ ๊ธฐ๋กํ์ต๋๋ค.
๐ฏ ์ ์ฒด ํ๊ณ ์์ฝ
| ๋จ๊ณ | ๋ชฉํ | ๊ณ ์ ๋ ๊ธฐ์ค |
|---|---|---|
| 1 | Feature Store-lite ๋ผ๋ ๊ตฌ์ถ | Contract ๋ถ๋ฆฌ + ๋ฒ์ 1๋จ + ์ฌํ์ฑ ๋ฉํ |
| 2 | Feast๋ก ํ๋ซํผ ํ์ฅ | version + latest ์ ์ฑ + offline/online ์ผ๊ด์ฑ |
| 3 | Proof๋ก ์ ๋ขฐ์ฑ ํ๋ณด | E2E ๊ฒ์ฆ + ์ฅ์ ์ฌํยท๋ณต๊ตฌ |
๐ ์ด ์๋ฆฌ์ฆ๋ฅผ ๊ดํตํ๋ ํ ๋ฌธ์ฅ
Contract โ Build โ Versioned Store โ Latest Pointer โ Apply โ Materialize โ Online Read
Feature Store๋ฅผ
- ํ์ผ ์์ฑ ํ์ดํ๋ผ์ธ์ด ์๋๋ผ
- *์ด์ ๊ธฐ์ค์ด ๊ณ ์ ๋ ์ํ ๋จธ์ (state machine)**์ผ๋ก ์ ์ํ๊ณ
๋ชจ๋ ๊ฒฐ๊ณผ๊ฐ ์ฌํ ๊ฐ๋ฅํ ๋ฉํ๋ฐ์ดํฐ๋ก ๋จ๋๋ก ์ค๊ณํ์ต๋๋ค.
๐งฉ Feature Store ์ ์ฒด ๊ตฌ์กฐ (Lite โ Feast)

๊ตฌ์กฐ ์์ฝ
Contract ๊ณ์ธต
schema / repo๋ฅผ GitOps ๋ฆฌ์์ค๋ก ๊ณ ์
Control ๊ณ์ธต
Airflow๋ โ์์ฑ + ์ ์ฅ ์ ์ฑ โ๊น์ง๋ง ๋ด๋น
Storage ๊ณ์ธต
version(์ฌํ์ฑ) + latest(์ด์ ํธ์) ๋์ ์ ์ง
Platform ๊ณ์ธต
Feast๊ฐ offline / online / registry๋ฅผ ์ฑ ์
dev/prod ๋ถ๋ฆฌ ์์น
namespace ยท prefix ยท application ๋จ์ ์์ ๋ถ๋ฆฌ
๐ Feature Store Operational Loop

- GitOps๋ก ๊ณ์ฝ์ด ๋จผ์ ๊ณ ์ ๋๊ณ
- Airflow๋ ๊ณ์ฝ์ ์ฝ์ด ๋์ผํ ๊ท์น์ผ๋ก ํผ์ฒ๋ฅผ ์์ฑํ๋ฉฐ
- S3์๋ version๊ณผ latest๊ฐ ํจ๊ป ์ ์ง๋๊ณ
- Feast๋ latest๋ง ๋ฐ๋ผ๋ณด๋ฉฐ offline/online ์ผ๊ด์ฑ์ ๋ณด์ฅํฉ๋๋ค
๋ชจ๋ธ ํ์ต, ์๋น, ๋ชจ๋ํฐ๋ง์
feature version ๋๋ registry ๊ธฐ์ค์ผ๋ก ์์ฐ์ค๋ฝ๊ฒ ํ์ฅ๋ฉ๋๋ค.
๐ง ์ด์ ์์น ์ ๋ฆฌ
1๏ธโฃ Contract First
- schema / repo๋ ์ฝ๋๊ฐ ์๋๋ผ ์ด์ ๋ฆฌ์์ค
- GitOps๋ก ๋ฐฐํฌยท๋กค๋ฐฑ ๊ฐ๋ฅํด์ผ ํจ
- ํ์ดํ๋ผ์ธ์ โ์ฝ๊ธฐ ์ ์ฉ ์๋น์โ๋ก ์ ํ
2๏ธโฃ Version์ ๊น์ด์ง์ง ์๋๋ค
/<feature_set>/<version>/1๋จ ๊ณ ์ - ์ฌํ์ฑ์ depth๊ฐ ์๋๋ผ ๊ท์น์์ ๋์จ๋ค
3๏ธโฃ latest๋ ํธ์ ์ฅ์น์ผ ๋ฟ์ด๋ค
- Feast offline์ latest๋ง ์ฌ์ฉ
- ์ฌํ/๋ถ์/ํ์ต์ ์ธ์ ๋ version์ผ๋ก ํ๊ท ๊ฐ๋ฅ
4๏ธโฃ ์คํจ๋ ์ญ์ ํ์ง ์๊ณ ๊ฒฉ๋ฆฌํ๋ค
s3fs, subPath, Airflow Variable SDK ๋ฑ
์ค์ ๋ก ๊นจ์ก๋ ์ง์ ์
์ฌํ โ ํด๊ฒฐ โ ๊ฐ๋๋ ์ผ๋ก ๊ณ ์
์ด์ ์์คํ ์ โ๊นจ์ก๋ ํ์ โ์ ๋จ๊ธธ์๋ก ๊ฐํด์ง๋ค
โ ์ต์ข ์ ๊ฒ ์ฒดํฌ๋ฆฌ์คํธ (Proof ๊ธฐ๋ฐ)
- ArgoCD์์ feature-store / feast devยทprod Synced/Healthy
- Airflow Pod์์ ๊ณ์ฝ ํ์ผ mount ํ์ธ
- DAG E2E ์ฑ๊ณต (build โ store)
- S3์ version prefix + latest ๋์ ์กด์ฌ
- metadata.json์ schema_hash / generated_at ๊ธฐ๋ก
- Feast apply ์ฑ๊ณต + registry S3 ๋ฐ์
- materialize ์ฑ๊ณต (s3fs ํฌํจ ์ด๋ฏธ์ง)
- online(redis) ์กฐํ ๊ฒฐ๊ณผ๊ฐ None ์๋
๐ ํ๊ณ
์ด๋ฒ ์๋ฆฌ์ฆ์ ๊ฒฐ๋ก ์
โFeature Store๋ฅผ ๋ง๋ค์๋คโ๊ฐ ์๋๋๋ค.
ํผ์ฒ๊ฐ ์์ฑยท์ ์ฅยท์กฐํ๋๋ ์ ๊ณผ์ ์ โ์ด์ ๊ธฐ์คโ์ผ๋ก ๊ณ ์ ํ๋ค๋ ์ ์ ๋๋ค.
Feature Store-lite์์๋ ์ฌํ์ฑ์ ๋ผ๋๋ฅผ ๋ง๋ค์๊ณ ,
Feast ํ์ฅ์์๋ ๊ทธ ์์ ์กฐํ ๊ฐ๋ฅํ ํ๋ซํผ์ ์ฌ๋ ธ์ต๋๋ค.
ํนํ, ์ค์ ๋ก ๊นจ์ก๋ ํฌ์ธํธ๋ค์ ํํผํ์ง ์๊ณ
์ฌํ โ ํด๊ฒฐ โ ๊ตฌ์กฐ ๊ณ ์ ๊น์ง ๊ฐ์ ธ๊ฐ์ต๋๋ค.
์ด์ ์ด Feature Store๋
Training / Serving / Monitoring์ผ๋ก
์์ฐ์ค๋ฝ๊ฒ ํ์ฅ๋ ์ ์๋ ์์ ํ ๊ธฐ์ค์ ์ด ๋์์ต๋๋ค.
๐ ํ๋ก์ ํธ GitHub ์ ์ฅ์
- GitHub ์ฝ๋: [GitOps] mlops-platform
- DAG ์ฝ๋: [DAG] airflow-dags