Skip to content
View vividbaek's full-sized avatar

Highlights

  • Pro

Block or report vividbaek

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please donโ€™t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
vividbaek/README.md

์•ˆ๋…•ํ•˜์„ธ์š”, ๋ฐฑํ˜•์ค€์ž…๋‹ˆ๋‹ค ๐Ÿ‘‹

๋Œ€์šฉ๋Ÿ‰ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ˆ˜์ง‘ํ•˜๊ณ  ์„œ๋น™ํ•˜๋Š” Data Engineer ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ์™€ ๋ฐฑ์—”๋“œ ์‹ค๋ฌด ๊ฒฝํ—˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ์›๋ฆฌ๋ฅผ ๊นŠ์ด ์ดํ•ดํ•˜๋ฉฐ, KafkaยทSpark ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„๋ถ€ํ„ฐ ClickHouse OLAP ์„œ๋น™, AI Agent๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ ๊ตฌ์ถ•๊นŒ์ง€ End-to-End๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.


๐ŸŒฑ Open Source Contributions

Apache Airflow & kafka-python Contributor

Contributing practical documentation, runnable examples, and operational guidance to Apache Airflow and kafka-python. Focused on clarifying real-world workflow patterns, retry strategies, task orchestration behavior, and Kafka consumer semantics.

๋ฌธ์„œ์™€ ์˜ˆ์ œ ์ค‘์‹ฌ์˜ ์ž‘์€ ๊ธฐ์—ฌ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด, ์‹ค์ œ ์‚ฌ์šฉ์ž๋“ค์ด ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฌ์šด ๋™์ž‘์„ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” Airflow์™€ Kafka ์ƒํƒœ๊ณ„์˜ ์‚ฌ์šฉ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ documentation contribution์„ ์ด์–ด๊ฐ€๊ณ  ์žˆ์œผ๋ฉฐ, ์ดํ›„์—๋Š” ํ…Œ์ŠคํŠธยท๋ฒ„๊ทธ ์ˆ˜์ •ยทcore ์ฝ”๋“œ ๋ ˆ๋ฒจ์˜ ๊ธฐ์—ฌ๊นŒ์ง€ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Project PR Contribution
Apache Airflow #67705 Added guidance for automated remediation guardrails in retry workflows, including cooldown markers, maximum automatic action counts, and operational safety considerations.
Apache Airflow #67022 Added a zero-length dynamic task mapping no-op example, showing how skipped mapped tasks can still lead to a successful downstream summary task with the proper trigger rule.
Apache Airflow #66597 Clarified HttpOperator.response_filter and XCom usage in documentation and system test examples. Updated the example to match the actual httpbin /get response structure.
kafka-python #3015 Added a KafkaConsumer manual offset commit example and clarified that consumers should commit the next offset to consume (message.offset + 1).

Highlights

  • 4 upstream PRs merged into Apache Airflow and kafka-python.
  • Contributed documentation, runnable examples, and operational guidance around Airflow workflows and Kafka consumer behavior.
  • Focused on reducing ambiguity for users by documenting real-world patterns such as HTTP response branching, dynamic task mapping edge cases, retry guardrails, and offset management.
  • Next goal: expand contributions from documentation into tests, bug fixes, and core implementation work.

๐Ÿ”ง Tech Stack

Data Engineering

Apache Kafka Apache Spark (Structured Streaming) ClickHouse Apache Airflow Elasticsearch Python

Cloud & Infra

AWS (Lambda ยท S3 ยท EventBridge ยท API Gateway) Docker Prometheus Grafana Nginx

Backend

NestJS TypeScript PostgreSQL MongoDB Redis (BullMQ ยท Cache)

Data Science & AI

PyTorch LightGBM TabNet Optuna Ollama


๐Ÿ’ผ Experience

์ฃผ์‹ํšŒ์‚ฌ ํŽ˜๋ง (Pering)

Lead Developer & Data Engineer | 2024.06 - 2026.01

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ ๋ฐ ๋งˆํŠธ ๊ตฌ์ถ• (Workload Isolation)

  • ์„œ๋น„์Šค ๊ฐ„์„ญ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด 50์—ฌ ๊ฐœ์˜ ์šด์˜ DB(MongoDB)์™€ ๋ถ„์„ ํ™˜๊ฒฝ์„ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ
  • EventBridge ๊ธฐ๋ฐ˜ ์ž๋™ ์•„์นด์ด๋น™์œผ๋กœ S3 ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ ๊ตฌ์ถ•
  • API Gateway ๊ธฐ๋ฐ˜ On-Demand ETL์„ ํ†ตํ•ด PostgreSQL ๋ฐ์ดํ„ฐ ๋งˆํŠธ ์ ์žฌ

์„œ๋ฒ„๋ฆฌ์Šค ETL ํŒŒ์ดํ”„๋ผ์ธ ์ตœ์ ํ™”

  • AWS Lambda ๋ฐฐ์น˜ ์‚ฌ์ด์ฆˆ ๋ฒค์น˜๋งˆํ‚น์„ ํ†ตํ•ด ์ตœ์  ์ฒ˜๋ฆฌ ๋‹จ์œ„(4K) ๋„์ถœ
  • ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ 12% ๊ฐœ์„  ๋ฐ ์šด์˜ ์„œ๋ฒ„ ๋ถ€ํ•˜ 0% ๋‹ฌ์„ฑ
  • Metabase ๊ธฐ๋ฐ˜ ํด๋ผ์ด์–ธํŠธ ์ „์šฉ KPI ๋Œ€์‹œ๋ณด๋“œ ์ž๋™ํ™”

RouteBag (๋Œ€๊ทœ๋ชจ ์ถ•์ œ ํ”Œ๋žซํผ)

  • Redis Cache ๋ฐ BullMQ ๊ธฐ๋ฐ˜ ๋น„๋™๊ธฐ ๋Œ€๊ธฐ์—ด ์„ค๊ณ„
  • ๋™์‹œ ์ ‘์† ์ˆ˜์šฉ๋Ÿ‰ 5๋ฐฐ ํ–ฅ์ƒ
  • P95 ์‘๋‹ต ์†๋„ 92% ๋‹จ์ถ• (15s โ†’ 1.2s)

FESPA (๊ฒฐ์ œยท๋ฉ€ํ‹ฐ ์„œ๋น„์Šค)

  • NestJS Monorepo ๊ธฐ๋ฐ˜ Web, CMS, Socket ์„œ๋น„์Šค ๋ถ„๋ฆฌ ์„ค๊ณ„
  • MongoDB Transaction ๊ธฐ๋ฐ˜ ๊ฒฐ์ œ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ ํ™•๋ณด

๐Ÿš€ Currently Building

CoinWhale

์‹ค์‹œ๊ฐ„ ๊ธˆ์œต ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ ๋ถ„์„ ํ”Œ๋žซํผ (์šด์˜ ์ค‘)

  • ์ผ์ผ 1.6์–ต+ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ
  • ํ‰๊ท  1,900 req/s
  • ํ”ผํฌ 14.0K TPS
  • Binance WebSocket 18 Streams ์šด์˜

Real-Time Data Platform

  • Kafka 18 Topics / 36 Partitions
  • Spark Structured Streaming ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ
  • ClickHouse Medallion Architecture ๊ตฌ์ถ•
  • dbt ๊ธฐ๋ฐ˜ Gold Analytics Mart ๋ฐ Evidence Layer ์šด์˜

Reliability & Operations

  • ReplacingMergeTree ๊ธฐ๋ฐ˜ ๋ฉฑ๋“ฑ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•
  • 3๋‹จ๊ณ„ ์ฒดํฌํฌ์ธํŠธ ๋ฐฉ์–ด (Process Lock ยท State Recovery ยท GAP Prune)
  • Spark ์žฌ์‹œ์ž‘ ๋ฃจํ”„ 88ํšŒ โ†’ 0ํšŒ ๊ฐœ์„ 
  • Prometheus ยท Grafana ๊ธฐ๋ฐ˜ ์šด์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ์ฒด๊ณ„ ๊ตฌ์ถ•
  • OOM ์ž๋™ ๊ฐ์ง€ ๋ฐ Runtime Self-Healing ์šด์˜

AI Agent Layer

  • Advisor Chat: Planner โ†’ Tool Execution โ†’ Evidence QA ๊ธฐ๋ฐ˜ ๊ธˆ์œต ๋ถ„์„ Agent
  • News RAG: Qdrant Semantic Search + ClickHouse Fallback
  • Market Decision Agent: 5์ดˆ Trigger Detector + Async Decision Worker
  • Ops Agent: Incident Triage ยท Evidence Collection ยท Approval Workflow

๐Ÿ“Œ Featured Projects

ํ”„๋กœ์ ํŠธ ์„ค๋ช… ์Šคํƒ
CoinWhale ์‹ค์‹œ๊ฐ„ ๊ธˆ์œต ๋ฐ์ดํ„ฐ E2E ํŒŒ์ดํ”„๋ผ์ธ ยท AI Agent ํ”Œ๋žซํผ Kafka, Spark, ClickHouse, Airflow, LangGraph
AWS Data Platform (ํŽ˜๋ง) S3 ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ ๋ฐ PostgreSQL ๋งˆํŠธ ๊ตฌ์ถ• ยท ์„œ๋ฒ„๋ฆฌ์Šค ETL ์ตœ์ ํ™” AWS Lambda, EventBridge, S3, PostgreSQL, Metabase
RouteBag (ํŽ˜๋ง) ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ๋Œ€์‘ ์ถ•์ œ ํ”Œ๋žซํผ ยท P95 ์‘๋‹ต 92% ๋‹จ์ถ• NestJS, Redis, BullMQ, MongoDB
FESPA (ํŽ˜๋ง) ๊ฒฐ์ œ ๋ฐ ๋‹ค์ค‘ ์„œ๋น„์Šค ์šด์˜์„ ์œ„ํ•œ Monorepo ์•„ํ‚คํ…์ฒ˜ NestJS, MongoDB Transaction, Redis
TabBoost (ICTC 2025) ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์„ผ์„œ ๋ฐ์ดํ„ฐ ๋ณ‘ํ•ฉ(Sequential Stream Merge) OOM ๊ทน๋ณต ยท F1-Score +33.4% Python, LightGBM, PyTorch, Optuna

๐Ÿ† Certifications & Awards

  • AWS Certified Solutions Architect โ€“ Associate (2026.04)
  • SnowPro Core Certification (2026.02)
  • ํˆฌ์ž์ž์‚ฐ์šด์šฉ์‚ฌ (2021.02)
  • ICTC 2025 ๊ตญ์ œ ํ•™์ˆ ๋Œ€ํšŒ ๋…ผ๋ฌธ ๊ฒŒ์žฌ (TabBoost)
  • ๊ด€๊ด‘ ๋ฐ์ดํ„ฐ ํ™œ์šฉ ๊ณต๋ชจ์ „ ์žฅ๋ ค์ƒ (ํ•œ๊ตญ๊ด€๊ด‘๊ณต์‚ฌ)
  • ๊ด€๊ด‘ ๋ฐ์ดํ„ฐ๋žฉ ํ™œ์šฉ ๊ฒฝ์ง„๋Œ€ํšŒ ์žฅ๋ ค์ƒ (ํ•œ๊ตญ๊ด€๊ด‘๊ณต์‚ฌ)
  • GBT Hackathon ์ตœ์šฐ์ˆ˜์ƒ (ํ•œ๊ตญ์™ธ๊ตญ์–ด๋Œ€ํ•™๊ต ์ด์žฅ์ƒ)
  • ์šฉ์ธ์‹œ SW/AI ํ•ด์ปคํ†ค ์žฅ๋ ค์ƒ

๐Ÿ“ซ Contact

Pinned Loading

  1. VividBaek_main VividBaek_main Public

    ๋ฐฑํ˜•์ค€์˜ ๊ฐœ์ธํ”„๋กœ์ ํŠธ github์ž…๋‹ˆ๋‹ค!

    Jupyter Notebook

  2. BOAZ-25-kafka-practice BOAZ-25-kafka-practice Public

    ๋ณด์•„์ฆˆ ์—”์ง€๋‹ˆ์–ด๋ง 25๊ธฐ์—์„œ ์ง„ํ–‰ํ•˜๋Š” kafka producer, consumer ๊ด€๋ จ ์‹ค์Šต ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

    Python

  3. Forcasting-Apartment-actual-transaction Forcasting-Apartment-actual-transaction Public

    DAT ๋Ÿฌ๋‹๋ฉ”์ดํŠธํŒ€์—์„œ ์ง„ํ–‰ํ•œ ๋ถ€๋™์‚ฐ ๊ฐ€๊ฒฉ ์˜ˆ์ธก ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

    Jupyter Notebook 1 3

  4. Mapping101 Mapping101 Public

    Forked from FindAlphaa/Mapping101

    ํŒŒ์ธ์•ŒํŒŒ-Mapping101

    JavaScript