layout | title | description | background |
---|---|---|---|
page |
Resume |
/img/bg-index.jpg |
6년차 Data Engineer 로서 하루 평균 2000만건 이상의 데이터를 Spark Streaming 및 AWS 인프라를 통해 실시간으로 처리하는 파이프라인 구축 경험을 가지고 있습니다.
데이터 볼륨이 증가했을 때 processing delay 및 분산처리 시스템에서의 동시성 이슈 등
여러 incident를 경험하면서 스트리밍 성능 최적화를 진행하였고
그 결과, 기존 대비 10배 이상의 성능 향상 경험을 가지고 있습니다.
항상 일을 진행할 때 협업과 커뮤니케이션이 프로젝트의 성패를
좌우한다고 믿고 있습니다.
저는 주어진 일에 문제가 발생하였을 때 문제를 공유하고,
협업을 통해 문제를 해결하기 위해 끊임없이 노력하기 때문에
새로운 일에 대해 두려움 없이 성공적으로 마무리할 수 있습니다.
- - -
- Java, Kotlin, Scala, Python
- Spring Boot/MVC
- JPA, Hibernate
- Junit4/5, Mockito, Spock, Kotest, ScalaTest
- Gradle, Maven
- DocumentDB(MongoDB), RDS(Aurora), Mysql
- Jenkins, CircleCI, Airflow
- Elastic Cache (Redis), S3, EC2, Cloud Watch
- Nginx, Tomcat
- Spark Streaming/Batch, Structured Streaming
- AWS Event Bridge, Kinesis, Kafka
- Hive, Presto, Trino
- ELK Stack
- Grafana, Graylog, Prometheus, nGrinder
- Git/Github
- React, Redux
- Typescript, Javascript
- Jira / Wiki Confluence
- Slack
- - -
2021.02.01 ~ 현재
-
Leading data pipeline revamp project
- Processed rows per second(AS-IS: 800 -> TO-BE: 10,000)
- Active-Active EMR Cluster 구성
- 불필요한 Shuffle 제거
- 재처리 구조 개선
- 데이터 정합성 메트릭 구성
- Migrate from spark streaming to structured streaming.
-
Elastic Search와 Airflow 스케줄을 이용한 실시간 집계 결과값 제공
- 데이터 웨어하우스에서 데이터 추출 및 S3 저장
- S3 데이터 로드하여 Elastic Search 인덱싱
- 하루 평균 1,500백만건 데이터를 api로 실시간 집계 결과값 서빙
- nGrinder를 이용한 성능 테스트
-
상담 가능성 높은 상품 예측 및 call routing 서비스 반영
- Accuracy: (60% -> 92%)
- Precision: (42% -> 77%)
- Recall: (30% -> 68%)
-
Bus Route Recommendation Service
- Fulfillment Center 지원자에게 버스가 제공되며, 지원자 거주지 기준으로 자동으로 가까운 버스 추천
- 기존에는 상담사가 직접 지원자의 거주지와 가까운 버스 정류장을 찾아서 전달하기 때문에 상담시간 지연 발생
- 지원자의 거주지를 위, 경도로 변환 후 버스 정류장의 위, 경도와 비교하여 거리 및 우선순위에 따라 추천
- Haversine formula 알고리즘을 이용하여 가까운 거리 계산
- Redis를 활용하여 버스 정류장 데이터를 캐싱하여 성능 개선
- 상담사의 상담 준비시간(After Call Work)을 60% 개선
- As-Is : 2.5 min
- To-Be : 1 min (셔틀버스노선 확인 시간 감소)
-
Build customer service data pipeline with Kafka, Spark streaming and DocumentDB
- 기존 batch 기반으로 API를 반복적으로 호출하는 방식에서 AWS event bridge를 사용하여 3rd party data pipeline 구축
- Spark Streaming의 마이크로 배치(10초)를 통해 Data 수집 및 Kafka publishing 하여 타 도메인에서 사용할 수 있도록 제공
- API 기반의 데이터 처리 방식 대비 약 60배의 퍼포먼스 개선
- As-Is : 250/sec
- To-Be : 15,000/sec
- API error로 인해 발생하던 exception 100% 감소
- As-Is: 1000/day
- To-Be: 0/day
- Airflow를 통해 3rd party domain의 장애 발생 및 Event bridge로 데이터 전달 누락, 이벤트 처리 실패에 대한 retry 프로세스 적용
- Data 저장을 위한 AWS storage cost 절감
- As-Is : $12,264 /Month (AuroraDB r5.12xlarge)
- To-Be : $3,901 /Month (DocumentDB r5.4xlarge)
#### 삼성SDS회사 IT혁신사업부 Software Engineer
2019.01 ~ 2021.01 (총 2년 1개월)
- SW Certificate 강사 활동
- Samsung SW certificate professional 취득
- 자바, 스프링 기반의 Outsourcing Management System 개발 및 운영
- 삼성 SDS 대학생 it 멘토링 발표
#### 인포뱅크 회사 Expert System 개발팀 인턴
2018.01 ~ 2018.02 (총 2개월)
- 한의학 분야와 Drools를 이용한 전문가 시스템을 융합 및 웹서비스 제공
- Nginx를 이용한 로드밸런싱 구조 구축 및 성능 벤치마킹
- A Scalability Study with Nginx for Drools-Based Oriental Medical Expert System 논문 발행
- - -
전자정보연구정보센터 한국정보처리학회 (제 2018-6-18 호)
- Drools를 이용한 Nginx와 Ajax기반의 Medical Expert System 개발
- - -
-
Drools 기반 한방전문가 시스템의 Nginx를 이용한 확장성 연구
https://github.com/WonYong-Jang/Medical-Expert-System/tree/master/journal
http://kiss.kstudy.com/thesis/thesis-view.asp?key=3652924
- Drools를 이용한 Nginx와 Ajax기반의 Medical Expert System 개발
- Drools 기반의 메디컬 Expert 시스템 아키텍처와 프로세스 연구
- 메디컬 Expert 시스템을 위한 Drools와 JavaFX 기반의 사용자 인터페이스 설계 및 구현
- - -
- 2012.03 ~ 2018.06 국민대학교 소프트웨어공학과 졸업