Coinbase APIλ₯Ό ν΅ν΄ μ€μκ° μνΈνν κ°κ²© λ°μ΄ν°λ₯Ό μμ§νκ³ , Apache Kafkaμ Spark Streamingμ νμ©νμ¬ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ©°, PostgreSQLμ μ μ₯νκ³ Grafanaλ‘ μκ°ννλ μ€μκ° λͺ¨λν°λ§ μμ€ν μ ꡬμΆνμ΅λλ€.
- Apache Kafka: μ€μκ° λ°μ΄ν° μ€νΈλ¦¬λ°
- Apache Spark: μ€νΈλ¦¬λ° λ°μ΄ν° μ²λ¦¬
- Python: λ°μ΄ν° μμ§ λ° μ²λ¦¬
- TimescaleDB (PostgreSQL): μκ³μ΄ λ°μ΄ν° μ μ₯
- 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]
- Coinbase APIλ‘λΆν° μ€μκ° κ°κ²© λ°μ΄ν° μμ§
- Kafka ν ν½μΌλ‘ λ°μ΄ν° μ μ‘
- κ²½λνλ Alpine κΈ°λ° μ»¨ν μ΄λ
- Kafka ν ν½μμ λ°μ΄ν° μ€νΈλ¦Ό μ²λ¦¬
- PostgreSQLμ λ°μ΄ν° μ μ₯
- SSL 보μ μ°κ²° ꡬμ±
- μ€μκ° κ°κ²© λ³λ λͺ¨λν°λ§
- 1λΆ λ¨μ κ°κ²© λ³λ λΆμ
- μκ³κ° κΈ°λ° κ°κ²© λ³λ μλ¦Ό
- Grafana λμ보λλ₯Ό ν΅ν μ€μκ° λͺ¨λν°λ§
- μκ³μ΄ κΈ°λ° κ°κ²© μΆμ΄ λΆμ
- 컀μ€ν μλ¦Ό μ€μ
- μ€μκ° λ°μ΄ν° νμ΄νλΌμΈ ꡬμΆ
- 컨ν μ΄λ κΈ°λ°μ νμ₯ κ°λ₯ν μν€ν μ² κ΅¬ν
- SSLμ ν΅ν 보μ κ°ν
- ν¨μ¨μ μΈ μκ³μ΄ λ°μ΄ν° μ²λ¦¬
- μ€μκ° λ°μ΄ν° μ€νΈλ¦¬λ° μν€ν μ² μ€κ³
- Dockerλ₯Ό νμ©ν λ§μ΄ν¬λ‘μλΉμ€ ꡬμΆ
- μκ³μ΄ λ°μ΄ν°λ² μ΄μ€ νμ©
- 보μ μ€μ λ° SSL μΈμ¦μ κ΄λ¦¬
μ΄ νλ‘μ νΈλ₯Ό ν΅ν΄ μ€μκ° λ°μ΄ν° μ²λ¦¬ μμ€ν μ μ 체 μν€ν μ²λ₯Ό μ€κ³νκ³ κ΅¬ννλ κ²½νμ νμ΅λλ€. νΉν λ°μ΄ν°μ μ€μκ°μ±, μμ€ν μμ μ±, κ·Έλ¦¬κ³ νμ₯μ±μ κ³ λ €ν μ€κ³μ μ€μμ±μ λ°°μ μ΅λλ€. μμΌλ‘λ λ 볡μ‘ν μ€μκ° λ°μ΄ν° μ²λ¦¬ μμ€ν κ³Ό λ¨Έμ λ¬λμ κ²°ν©ν νλ‘μ νΈλ₯Ό μ§ννκ³ μΆμ΅λλ€.