Show HN: Streamdal – 데이터에 대한 오픈소스 tail -f
요약
Streamdal은 애플리케이션 코드 내에서 데이터 작업을 직접 실행하는 오픈소스 '코드 네이티브 데이터 프라이버시' 솔루션입니다. 별도의 데이터 파이프라인 인프라나 팀 없이 앱 내부 컴퓨팅 자원을 활용하며, Wasm을 이용해 실시간으로 PII 마스킹, 스키마 검증 등 다양한 기능을 제공합니다.
핵심 포인트
- 앱 코드 내에서 직접 데이터 처리 가능 (코드 네이티브)
- 별도 파이프라인 인프라/팀 불필요
- Wasm 기반으로 거의 네이티브 속도의 실시간 처리 구현
[!CAUTION]
이 프로젝트는 더 이상 활발하게 유지보수되지 않습니다
Streamdal이 인수되었습니다. 이번 인수는 구체적인 금액으로 이루어졌으며, NDA 의무로 인해 인수자를 밝힐 수 없습니다. 창립자와 엔지니어들은 다른 곳으로 이동했습니다.
이 저장소는 이제 읽기 전용/보관 상태입니다. 참고 및 포크(forking) 목적으로 계속 이용 가능합니다.
Discord 서버가 폐쇄되고 있습니다. 불행하게도, 이 서버는 불법 콘텐츠를 게시하는 스팸 봇에 의해 심각하게 침투되었습니다. 최종 폐쇄 전에 읽기 전용으로 설정될 예정입니다.
커뮤니티에서 이 프로젝트를 포크해 주시기를 권장합니다! 코드베이스는 PII(개인 식별 정보) 처리 및 데이터 관측 가능성(data observability)을 위한 뛰어난 기반을 제공합니다. 커뮤니티가 이 작업을 계속 이어 나가주시면 좋겠습니다.
창립자 연락처:
- Daniel Selans — CTO & 공동 창립자
- Ustin Zarubin — CEO & 공동 창립자
<div align="center">
<img src="./assets/img/streamdal-logo-dark.png#gh-dark-mode-only"><img src="./assets/img/streamdal-logo-light.png#gh-light-mode-only">
</div>Streamdal은 애플리케이션 코드 내에서 데이터 작업을 직접 실행할 수 있는 오픈소스 '코드 네이티브 데이터 프라이버시(Code-Native Data Privacy)' 솔루션입니다.
<sub>이는 마치
- 별도의 데이터 파이프라인 인프라 필요성 제거
- 파이프라인은 앱 내부에서 실행되며, 이미 사용 중인 기존 컴퓨팅 자원을 활용합니다.
- 별도의 데이터 파이프라인 팀 필요성 제거
- 더 이상 데이터 파이프라인 팀의 변경을 기다릴 필요가 없습니다.
- 믿을 수 없을 만큼 빠릅니다
- Streamdal은 Wasm(WebAssembly)을 사용하여 거의 네이티브 속도로 파이프라인을 실행합니다.
- 실제로 실시간입니다
- "준실시간(near real-time)"이나 "최대 30초 실시간"이 아니라, 진짜 실시간입니다. 앱이 데이터를 읽거나 쓰는 즉시 데이터가 처리됩니다.
- 그리고 다른 많은 이유들
라이브 데모 (Live Demo)
Streamdal을 작동하는 것을 보기 위해 서버(server), 콘솔(console), 또는 앱에 측정 장치(instrument)를 설치할 필요가 없습니다. 저희가 라이브 데모를 준비했습니다 :)
DEMO.STREAMDAL.COM
데모는 읽기 전용이지만, Streamdal의 기능을 파악하는 데 좋은 아이디어를 제공할 것입니다.
이 데모에서는 실시간(real-time) 기능을 보여줍니다:
- PII 탐지 및 마스킹
- 스키마 추론/탐지 및 검증
- 데이터 추출 및 자르기 (truncation)
- 스트림 디버깅 및 모니터링
- 데이터 소스 및 목적지 시각화 및 탐색
<sub>이러한 기능들이 어떻게 구현되는지에 대한 자세한 내용은 "작동 원리?" 문서를 참고할 수 있습니다.</sub>
시작하기 (Getting Started)
시작하는 과정은 두 단계로 구성됩니다:
- 서버, 콘솔 및 해당 종속성 설치
- 저희의 SDK 중 하나를 사용하여 코드에 측정 장치(Instrumenting) 추가
설치 (Install)
Streamdal을 실행하는 가장 쉬운 방법은 curl | bash를 이용하는 것입니다:
curl -sSL https://sh.streamdal.com | bash
- 설치 스크립트는
git,docker및docker-compose가 설치되어 있는지 확인합니다. - 설치 스크립트는 이 레포지토리를
~/streamdal에 복제(clone)합니다. - 설치 스크립트는
docker-compose를 통해 모든 컴포넌트를 실행(bring up)합니다.
완료 후:
🎉 브라우저에서 http://localhost:8080을 열어보세요! 🎉
아름다운 (하지만 비어 있는) UI가 표시되어야 합니다! 이를 채우려면, 코드를 계측(instrument)해야 합니다. 다음 섹션으로 넘어가겠습니다!
<sub>대안적인 설치 방법은 docs 디렉터리를 확인하세요.</sub>
계측 (Instrument)
서버와 콘솔을 설치했다면, 이제 코드를 계측하기 시작할 수 있습니다.
_계측(Instrumentation)_이란 애플리케이션이 어딘가에서 데이터를 읽어올 때 후에 또는 앱이 어딘가로 데이터를 쓰기 직전에 저희 SDK의 .Process() 메서드를 호출하는 것을 의미합니다.
SDKs
완전한 계측의 예시를 보려면, 저희의 shim 예제 중 하나나 ./apps/server에 포함된 Go 데모 클라이언트를 살펴보세요.
작동 방식은? (How Does It Work?)
Streamdal은 세 가지 주요 컴포넌트로 구성되어 있습니다:
기본 흐름은 서버와 콘솔을 설치하고, 애플리케이션의 모든 읽기 또는 쓰기 작업을 저희 SDK 중 하나로 감싸는 것입니다. 이렇게 하면 콘솔에서 앱과 앱이 읽거나 쓰는 데이터를 볼 수 있거나 CLI를 사용할 수 있습니다.
또한 데이터에 규칙을 적용할 수도 있습니다 (예: "이것은 유효한 JSON이어야 함", "메시지는 foo라는 필드를 포함해야 함", "모든 이메일 주소 제거" 등).
[!중요]
흐름과 다양한 구성 요소에 대한 더 심층적인 설명은 문서를 방문해 주세요.
레포지토리 레이아웃
이 레포는 다음과 같은 레이아웃과 사용법을 가진 모노레포입니다:
# ┌── assets <--- 정적 자산 (Static assets)
# │ ├── img
# │ └── ...
...
테스트된 버전
Streamdal 플랫폼은 제대로 작동하려면 모든 구성 요소가 특정 버전에 있어야 합니다.
운영 환경에서 실행할 때는 이 목록과 비교하여 구성 요소의 버전을 확인하세요:
| 날짜 | 서버 | 콘솔 | 프로토스 (Protos) | WASM | 헬름 (Helm) |
|---|---|---|---|---|---|
| 2024.08.05 | 0.0.38 | 0.0.69 | 0.1.56 | 0.1.38 | 0.1.61 |
커뮤니티
[!참고]
Streamdal Discord 서버는 더 이상 활성화되어 있지 않으며 스팸/봇 문제로 인해 폐쇄되고 있습니다. 자세한 내용은 이 README 상단의 공지사항을 확인해 주세요.
도움 받기
로드맵
저희가 무엇을 구축하는지에 대한 통제권을 가지고 계십니다. 저희의 로드맵은 100% 공개입니다!
기능에 대해 논의하거나, 새로운 기능을 제안하거나, 파이프라인에 어떤 것이 들어올지 지켜보는 등 언제든지 들러주세요.
기여 (Contributing)
저희는 기여를 환영합니다! 하지만... 아름다운 PR(Pull Request)을 작성하기 전에, 기여 가이드를 읽어봐 주세요.
라이선스 (License)
이 프로젝트는 Apache-2.0 라이선스 하에 배포됩니다.
자세한 내용은 [LICENSE] 파일을 참고해 주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기