Skip to content

πŸͺ™ μ‹€μ‹œκ°„ μ•”ν˜Έν™”ν 가격 λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œ

License

Notifications You must be signed in to change notification settings

MojitoBar/jude-coin-cast

Repository files navigation

πŸͺ™ μ‹€μ‹œκ°„ μ•”ν˜Έν™”ν 가격 λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œ

πŸ’‘ ν”„λ‘œμ νŠΈ μ†Œκ°œ

Coinbase APIλ₯Ό 톡해 μ‹€μ‹œκ°„ μ•”ν˜Έν™”ν 가격 데이터λ₯Ό μˆ˜μ§‘ν•˜κ³ , Apache Kafka와 Spark Streaming을 ν™œμš©ν•˜μ—¬ 데이터λ₯Ό μ²˜λ¦¬ν•˜λ©°, PostgreSQL에 μ €μž₯ν•˜κ³  Grafana둜 μ‹œκ°ν™”ν•˜λŠ” μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν–ˆμŠ΅λ‹ˆλ‹€.

πŸ”§ 기술 μŠ€νƒ

Data Pipeline

  • Apache Kafka: μ‹€μ‹œκ°„ 데이터 슀트리밍
  • Apache Spark: 슀트리밍 데이터 처리
  • Python: 데이터 μˆ˜μ§‘ 및 처리
  • TimescaleDB (PostgreSQL): μ‹œκ³„μ—΄ 데이터 μ €μž₯

Infrastructure

  • Docker Compose: μ»¨ν…Œμ΄λ„ˆ 기반 인프라 ꡬ좕
  • Grafana: μ‹€μ‹œκ°„ 데이터 μ‹œκ°ν™”
  • SSL: λ³΄μ•ˆ 톡신

🎯 ν”„λ‘œμ νŠΈ ꡬ쑰

디렉토리 ꡬ쑰

project/
β”œβ”€β”€ docker/
β”‚   β”œβ”€β”€ consumer/
β”‚   β”‚   └── Dockerfile
β”‚   β”œβ”€β”€ producer/
β”‚   β”‚   └── Dockerfile
β”‚   β”œβ”€β”€ spark/
β”‚   β”‚   └── Dockerfile
β”‚   └── postgres/
β”‚       β”œβ”€β”€ postgresql.conf
β”‚       β”œβ”€β”€ pg_hba.conf
β”‚       └── ssl/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ consumer/
β”‚   β”‚   └── price_alert_consumer.py
β”‚   β”œβ”€β”€ producer/
β”‚   β”‚   └── coinbase_producer.py
β”‚   └── spark/
β”‚       └── price_processor.py
β”œβ”€β”€ grafana/
β”‚   └── provisioning/
β”œβ”€β”€ docker-compose.yml
└── README.md

μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

[Coinbase API] β†’ [Kafka Producer] β†’ [Kafka] β†’ [Spark Streaming] β†’ [TimescaleDB] β†’ [Grafana Dashboard]
                                          ↓
                                  [Price Alert Consumer]

πŸ“Š μ£Όμš” μ»΄ν¬λ„ŒνŠΈ

1. Producer

  • Coinbase APIλ‘œλΆ€ν„° μ‹€μ‹œκ°„ 가격 데이터 μˆ˜μ§‘
  • Kafka ν† ν”½μœΌλ‘œ 데이터 전솑
  • κ²½λŸ‰ν™”λœ Alpine 기반 μ»¨ν…Œμ΄λ„ˆ

2. Spark Streaming

  • Kafka ν† ν”½μ—μ„œ 데이터 슀트림 처리
  • PostgreSQL에 데이터 μ €μž₯
  • SSL λ³΄μ•ˆ μ—°κ²° ꡬ성

3. Price Alert Consumer

  • μ‹€μ‹œκ°„ 가격 변동 λͺ¨λ‹ˆν„°λ§
  • 1λΆ„ λ‹¨μœ„ 가격 변동 뢄석
  • μž„κ³„κ°’ 기반 가격 변동 μ•Œλ¦Ό

4. 데이터 μ‹œκ°ν™”

  • Grafana λŒ€μ‹œλ³΄λ“œλ₯Ό ν†΅ν•œ μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§
  • μ‹œκ³„μ—΄ 기반 가격 좔이 뢄석
  • μ»€μŠ€ν…€ μ•Œλ¦Ό μ„€μ •

Image

πŸš€ μ£Όμš” μ„±κ³Ό

  • μ‹€μ‹œκ°„ 데이터 νŒŒμ΄ν”„λΌμΈ ꡬ좕
  • μ»¨ν…Œμ΄λ„ˆ 기반의 ν™•μž₯ κ°€λŠ₯ν•œ μ•„ν‚€ν…μ²˜ κ΅¬ν˜„
  • SSL을 ν†΅ν•œ λ³΄μ•ˆ κ°•ν™”
  • 효율적인 μ‹œκ³„μ—΄ 데이터 처리

πŸŽ“ ν•™μŠ΅ λ‚΄μš©

  • μ‹€μ‹œκ°„ 데이터 슀트리밍 μ•„ν‚€ν…μ²˜ 섀계
  • Dockerλ₯Ό ν™œμš©ν•œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ ꡬ좕
  • μ‹œκ³„μ—΄ λ°μ΄ν„°λ² μ΄μŠ€ ν™œμš©
  • λ³΄μ•ˆ μ„€μ • 및 SSL μΈμ¦μ„œ 관리

⚠️ νŠΈλŸ¬λΈ”μŠˆνŒ…

πŸ“ 회고

이 ν”„λ‘œμ νŠΈλ₯Ό 톡해 μ‹€μ‹œκ°„ 데이터 처리 μ‹œμŠ€ν…œμ˜ 전체 μ•„ν‚€ν…μ²˜λ₯Ό μ„€κ³„ν•˜κ³  κ΅¬ν˜„ν•˜λŠ” κ²½ν—˜μ„ ν–ˆμŠ΅λ‹ˆλ‹€. 특히 λ°μ΄ν„°μ˜ μ‹€μ‹œκ°„μ„±, μ‹œμŠ€ν…œ μ•ˆμ •μ„±, 그리고 ν™•μž₯성을 κ³ λ €ν•œ μ„€κ³„μ˜ μ€‘μš”μ„±μ„ λ°°μ› μŠ΅λ‹ˆλ‹€. μ•žμœΌλ‘œλŠ” 더 λ³΅μž‘ν•œ μ‹€μ‹œκ°„ 데이터 처리 μ‹œμŠ€ν…œκ³Ό λ¨Έμ‹ λŸ¬λ‹μ„ κ²°ν•©ν•œ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

About

πŸͺ™ μ‹€μ‹œκ°„ μ•”ν˜Έν™”ν 가격 λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published