프로젝트 목록으로
프로젝트 상세

Contexta: 로컬 퍼스트 ML Observability 프로젝트

로컬 환경에서도 ML 실행 이력과 산출물을 일관된 contract로 추적, 비교, 복구할 수 있게 만든 observability 라이브러리 프로젝트입니다.

유형 개인 주도형 ML 플랫폼 프로젝트
연도 2026
주요 역할 ML 엔지니어
역할 ML 엔지니어, Python 라이브러리 개발자
AI-DLC 기반 운영형 MLOps 엔지니어 구현 완료 ML ObservabilityLocal-firstPythonDuckDBExperiment TrackingMLOps

AI 실행 기록과 산출물을 추적, 비교, 복구할 수 있는 운영형 observability 설계 역량을 보여줍니다.

structuredhybrid
dataexperimentevaluationobservabilityfeedback-recovery
로컬 퍼스트 observability 구조 설계canonical contract 및 workspace 구현조회·비교·복구 흐름 통합
문제

머신러닝 실험과 배포 과정에서는 메타데이터, 레코드, 아티팩트가 여러 도구에 흩어지기 쉽고, 재현 가능한 observability 흐름을 유지하기 어렵습니다.

접근

`.contexta/` workspace를 기준으로 메타데이터, 레코드, 아티팩트를 분리 저장했습니다.

결과

ML 시스템의 실행 이력과 산출물을 로컬에서 일관되게 관리하고 조사할 수 있는 observability 기반을 구현했습니다.

아키텍처

Python facade, CLI, workspace storage, report/recovery 흐름이 같은 contract를 공유하는 로컬 퍼스트 ML observability 구조입니다.

Python API

사용자가 실험 코드에서 호출하는 facade

CLI

조회, 비교, 복구 명령 표면

Canonical Contract

metadata, records, artifacts의 스키마 기준

Local Workspace

로컬 실행 기록과 산출물 저장소

Reports & Recovery

비교 리포트, replay, backup, restore

성과 지표
Local-first 외부 백엔드 없이 workspace 중심으로 작동
Schema-first API와 CLI가 동일한 데이터 의미를 공유
Trace / Compare / Recover 실험 추적부터 복구까지 연결

배경

Contexta는 머신러닝 시스템을 위한 로컬 퍼스트 observability 라이브러리 프로젝트입니다. 저는 이 프로젝트에서 클라우드 의존 없이도 실험과 실행 데이터를 일관된 구조로 다룰 수 있도록, Python 라이브러리와 CLI, workspace 구조를 중심으로 제품 형태의 기반을 만드는 데 집중했습니다.

문제

머신러닝 프로젝트를 진행하다 보면 메트릭, 실행 로그, 아티팩트, 환경 정보가 여러 파일과 도구에 분산되기 쉽습니다. 이런 구조에서는 실행 이력을 다시 추적하거나 결과를 비교하고, 장애 이후 상태를 복구하는 과정이 번거로워집니다. 특히 로컬 환경이나 에이전트 기반 개발 흐름에서는 외부 백엔드 없이도 일관된 contract와 저장 구조를 갖춘 observability 계층이 필요했습니다.

구현

저는 Contexta를 단일 진입점과 일관된 데이터 계약을 가진 ML observability 라이브러리로 설계했습니다. Contexta facade, contexta.config, contexta.contract, contexta.capture 같은 표면을 정리하고, 메타데이터 저장소, 레코드 저장소, 아티팩트 저장소를 분리된 truth plane으로 구성해 기록과 조회 흐름을 명확히 했습니다. 또한 로컬 .contexta/ workspace를 기준으로 실행 데이터 저장, 스냅샷 조회, 비교 리포트 생성, replay·backup·restore 같은 recovery 워크플로를 연결해 실험 추적부터 운영 대응까지 이어지는 구조를 구현했습니다.

결과

프로젝트는 ML 실행 데이터를 로컬에서 안정적으로 수집, 저장, 비교, 복구할 수 있는 observability 기반을 갖추게 되었습니다. 개인적으로는 단순 실험 코드 수준을 넘어, Python 패키징, CLI, 문서화, 예제, 저장 구조 설계까지 포함한 제품형 ML 도구를 구축하면서 MLOps와 observability 관점의 설계 경험을 깊게 쌓을 수 있었습니다.