2022.10~ 현재
경력
2019.09~ 2022.10
- Golang으로 DSP (광고 할당 서버) 구축 및 Ad Exchange 연동
- DSP 운영 & 유지보수
- 광고 상품 서버 운영 & 유지보수
- 사내 Python Expert로써 전사 범위의 기술 도입 및 지식 공유
- 레거시 모노리스 포팅 TF 리딩
역량
도메인 분리 & 정제
기술 부채 해결 / 레거시 개편
인프라
- [Buzzvil] Istio 트래픽 미러링으로 마이그레이션 검증
- 7k+ RPS 광고 서버 포팅
- 3k+ RPS 광고 할당 서버 분리
- [Buzzvil] DevOps Edge program 멤버로 지속적인 인프라 역량 학습
- [Buzzvil] 모노리스 프로젝트의 CI 소요시간 4배 단축
- 개인 프로젝트로 HA로 구성된 Kubernetes 클러스터 2개를 바닥부터 구축 및 운영 중
- 아래 Projects의 homelab 참조
팀을 넘어선 기술 공유 및 도입
- [Buzzvil] 테크 블로그를 활용한 사내외 지식 공유
- [Buzzvil] 유관 프로덕트팀과의 도메인 분리를 선제적으로 제안 및 DDD 이주 가이드 & 리뷰
- [Buzzvil] Python expert group 리딩하며 Python 프로젝트 코드 퀄리티 개선
- [Buzzvil] Python type checker (mypy) & code formatter (black) 전사 도입
- 제안서를 통한 전사 합의
- 지속적인 typing 가이드 & 리뷰
- Python 버전 업그레이드마다 신규 typing 기술 공유
- [Buzzvil] 프로젝트간 lint 설정을 버전으로 관리하며 동일하게 유지하는 툴 도입
- [Buzzvil] Python package manager로 pip-tools 대신 poetry 도입
대용량 데이터 처리 및 성능 개선
학력
2017.02~ 2019.03
- 학위 논문 주제: 데이터센터 워크로드를 위한 적응형 성능격리 스케줄러
- 재사용 가능한 실시간 워크로드 모니터링 프레임워크를 개발해서 연구원들과 공유
- M1522.000600 Teaching Assistant 하는 동안 실습 & 교육을 위한 자동 코드 채점 웹 서비스를 개발 후 학기 동안 운영
- 게재 논문
2013.03~ 2016.08
한국 항공대학교
Bachelor of Science in Computer Science
- 총 7학기 조기 & 차석 졸업
- 알고리즘 문제 풀이 경연대회
- 2014 ACM-ICPC 대전 본선 22위
- 2015 LG CodeChallenge 본선 37위
Projects
homelab (Kubernetes cluster)
Linux 머신에 Kubernetes 설치 이후부터 GitOps 기반 클러스터 구축하고 운영하는 프로젝트
- 프로덕션급의 스택을 가진 Kubernetes cluster를 바닥부터 구축 & 운영하는 경험을 위해 작업
- 인프라를 구성하고 자동 운영 상태를 만드는 것이 주목적
- 현재도 해당 repository 기반 GitOps로 클러스터 운영중
- 아래의 서버가 실제로 동작 중 (FYI. 웹 UI가 있는 서버들은 아닙니다)
- blocky라는 DNS proxy ⇨ dnsb.bhyoo.com (DNS, DNS over TLS, DNS over HTTPS)
- Python Formatter black의 서버 ⇨ black.bhyoo.com
- 관련 기술: Kubernetes, Terraform, Helm, GitOps, ArgoCD, Traefik, Rook, Prometheus, Grafana, Docker, Cloudflare, Github Actions
arrow 라이브러리 전체 typing
8k+ star의 시간 관련 Python 라이브러리에 기여
- 전체 코드에 Type annotation 추가하는 기여
- diff 총 합 1200+ 줄 정도의 PR
- 1.0.0 릴리즈에 포함됨
flake8-force-keyword-arguments
Python linter인 flake8의 플러그인 개발
- 기존 플러그인이 false alarm 문제가 있어서 개발
- 정적 분석으로 파라미터가 여러개일 때 가독성을 위해 positional argument 대신 keyword argument를 사용하도록 가이드
외부 활동
Skills
업무에서 경험한 기술들입니다.
백엔드
- Python, asyncio, Django, FastAPI, gunicorn, sqlalchemy
- Golang, fiber
- gRPC, Protobuf
- Elasticsearch, Kafka, MemoryDB, Athena, DynamoDB
- Pact, pytest
- mypy, flake8, nitpick, poetry
- IntelliJ
인프라
- Kubernetes, Docker, Helm, ECK
- Istio, Traefik
- Terraform
- Drone CI, Github Actions, Jenkins, Spinnaker
- Datadog, Prometheus, Grafana, Loki, Sentry
- Linux