참고 데이터 관리의 고민과 해결책
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
데이터 분석
대상자
- 중급~고급 개발자, 마이크로서비스 아키텍처를 사용하는 팀
- 데이터 관리가 복잡한 프로젝트 또는 다중 서비스 간 데이터 일관성 필요성 있는 팀
- 보안 및 정확성 요구가 높은 시스템 개발자
핵심 요약
- 기존 참조 데이터 관리 방식의 문제:
불일치한 데이터
,보안 취약
,업데이트 관리 복잡성
- 제안된 해결책:
ListServ + RefPack
생태계를 통해버전 관리
,암호화
,스키마 검증
을 지원 - 주요 기능:
JWS 기반 암호화
,SemVer 2.0.0
,CLI 기반 패키지 관리
,다중 저장소 지원
섹션별 세부 요약
1. 참조 데이터 관리의 고통
- 문제 사례: 국가 코드, 통화, 산업 분류 등 데이터의 일관성과 정확성 확보 어려움
- 기존 접근 방식: GitHub gist, 정부 CSV 파일 사용 →
데이터 오래됨
,보안 이슈
,다중 버전 존재
- 개발자 시간 낭비:
관리자 패널 구축
,중복 데이터 관리
,보안 검증
2. ListServ과 RefPack 생태계 소개
- ListServ:
도커 기반
,JSON 데이터 서버
,스키마 검증
,암호화
제공 - RefPack:
데이터 패키지 포맷
(.refpack.zip
) →메타데이터
,스키마
,변경 이력
,디지털 서명
포함 - CLI 명령어 예시:
```bash
refpack scaffold --output ./my-refpack --id myid --title "My Dataset" --author "Your Name"
```
3. RefPack 포맷 구조
- 파일 구조:
```text
your-dataset-1.0.0.refpack.zip
├── data.meta.json ← 메타데이터 (ID, 버전, 저자 등)
├── data.meta.json.jws ← JWS 기반 디지털 서명
├── data.json ← 실제 데이터
├── data.schema.json ← JSON 스키마 검증
├── data.changelog.json ← 버전 이력
├── data.readme.md ← 문서
└── assets/ ← 보조 파일 (이미지, CSV 등)
```
4. 기능 및 보안 강화
- 보안 기능:
JWS 서명
,키 회전
,ZIP 정화
(경로 탐색 방지) - 확장성:
Azure Blob Storage
,로컬 파일 시스템
,사용자 정의 저장소
지원 - 고가용성:
회로 차단 패턴
,리더/팔로워 협력
,리스 기반 리더십
5. 실제 적용 사례
- 의료 분야:
ICD-10
,약물 분류
,의료 기기 코드
를 RefPack으로 제공해데이터 정리 시간 절감
- 금융 분야:
은행 식별 코드
,통화 교환 메타데이터
,규제 준수 코드
를 1일 내 사용 가능
6. 사용 예시 및 명령어
- ListServ 사용 예:
```bash
docker run -d -p 7010:80 coretravis/listserv:latest
listserv dataset pull currencies
curl http://localhost:7010/api/currencies
```
- RefPack 패키지 배포:
```bash
refpack push --package my-data-1.0.0.refpack.zip --api-url https://api.listserv.online --api-key $REFPACK_TOKEN
```
결론
listserv dataset pull currencies
명령어로 즉시 사용 가능한 보안/버전 관리된 데이터 확보- 다중 마이크로서비스 간 데이터 일관성 및 정확성 보장
- RefPack 생태계를 통해 데이터를 코드 라이브러리처럼 관리하여 개발자 생산성 향상
- 커뮤니티 기여를 통해 데이터 집합 확장 및 안정성 강화 필요