미리보기
기본 정보
데이터를 활용한 서비스, 제품 개발과 데이터 엔지니어링에 관심이 많은 엔지니어입니다. 다양한 언어와 기술 스택에 대한 프로그래밍 경험이 있으며 최근에는 Python, TypeScript 등의 언어를 주로 사용하고 있습니다. 다년간의 백엔드 개발 및 데이터 엔지니어링 경험을 통해 다양한 인프라 환경과 데이터베이스에 대한 경험을 가지고 있습니다. 다양한 규모의 기업에서 근무한 경험과 기술 이전 투자 경험을 가지고 있습니다. 새로운 기술을 접하고 공부하고 그 원리를 분석하는 것을 좋아합니다. 엔지니어로서 기술도 중요하지만 다양한 사람들과 협업하거나 대화하는 일의 중요성을 알고 있고, 좋은 제품과 결과물을 만들어내고 싶습니다.
자기소개
2011년부터 모바일 앱 개발을 시작으로 프로그래머로 일해왔습니다. 데이터를 활용한 서비스나 제품의 개발과 데이터 엔지니어링에 관심이 많습니다. 다양한 언어와 기술 스택에 대한 프로그래밍 경험이 있으며 최근에는 Python, TypeScript 등의 언어를 주로 사용하고 있습니다.
AWS 등의 클라우드부터 폐쇄적인 환경의 온프레미스까지 다양한 인프라 환경에 대한 경험과 다양한 데이터 구조, 목적에 따른 데이터베이스를 활용한 경험을 가지고 있습니다. 다양한 규모의 기업에서 근무한 경험과 기술 이전 투자 경험을 가지고 있습니다.
새로운 기술을 접하고 공부하고 그 원리를 분석하는 것을 좋아합니다. 엔지니어로서 기술도 중요하지만 다양한 사람들과 협업하거나 대화하는 일의 중요성을 알고 있고, 좋은 제품과 결과물을 만들어내고 싶습니다.
기술 스택
Python, TypeScript, Node.js, React, PostgreSQL, Apache Spark, Airflow, C#, playwright, AWS
경력
프리랜서
프리랜서 | 프리랜서 | 재직 중
2024.02. ~ 재직 중 (9개월)
웹 스크래퍼 개선:
클라이언트의 기존 웹 스크래핑 방식에는 스크래퍼의 탐지 등에 미흡한 부분이 있었습니다.
고도화를 위해 HTTP 통신 과정 중의 TLS, HTTP/2 Frame을 통한 스크래퍼 탐지 및 사용자 식별을 회피하고 기존 스크래핑 파이프라인에 연동할 수 있게 프로그램을 만들어 파이프라인을 개선하였습니다.
사용 기술: Python(3.11, 초기 PoC 및 스크립트), Go(프로그램 전체), mitm-proxy, Wireshark
시계열 분석 파이프라인 개발:
MS SQL Server에 저장된 데이터를 가공해서 AWS Forecast로 분석하고 결과물과 AWS 리소스를 정리하는 배치 파이프라인을 구현했습니다. (정기적인 분석, 요청에 의해 실행되는 분석)
AWS Forecast의 최대 리소스 수에 따른 제한, 분석 후 삭제가 필요한 리소스의 순차 정리, 기존 데이터에서 생기는 예외 상황 등에 대응했습니다.
사용 기술: Python (3.10 ~ 3.12), MS SQL Server, Pandas, AWS Forecast
아이엠디티
시니어 소프트웨어 엔지니어 | HIS 사업본부
2022.08. ~ 2023.12. (1년 5개월)
동물병원에서 사용되는 클라우드 EMR과 동물 건강 검진 솔루션 개발에 참여하였습니다. 초기부터 개발을 위한 인프라 환경 구축, 기능 구현(백엔드 및 프론트엔드), 장비 연동을 위한 모듈 개발 등 다양한 파트에 참여했습니다.
제품 개발에 필요한 다양한 포지션에서 개발에 참여하였습니다. (주로 백엔드 및 검사 장비 연동)
Terraform을 통해 AWS 인프라를 구축 및 관리하고, GitHub Actions를 통한 CI / CD 파이프라인을 구축했습니다.
건강 검진 솔루션에서 보호자에게 보낼 PDF 보고서 생성이 오래 걸리는 문제가 있어, 메시지 큐를 활용해 해당 보고서 생성을 별도의 서비스로 분리하여 생성 시간을 1/4로 단축했습니다.
동물병원의 PC에서 검사 장비와 연동을 위한 모듈을 개발하였습니다. RS-232(시리얼 포트) 및 TCP 소켓 통신에 대응하며 해당 과정에서 의료 데이터의 전송 규격인 HL7 v2.x 패킷 파서를 구현하였습니다.
사용 기술:
Terraform, AWS
TypeScript, Node.js, Fastify, React, Nx
Python, FastAPI, Strawberry, Pantsbuild
굿닥
시니어 소프트웨어 엔지니어 | 프로덕트 팀
2021.02. ~ 2022.05. (1년 4개월)
백엔드 개발과 회사 내 필요한 데이터 수집, 가공, 분석 작업 및 그에 필요한 환경 등 데이터 엔지니어링 업무를 진행하였습니다.
새로운 계정 관리 서버 개발: 유지보수가 제대로 되지 않던 계정 및 사용자와 관련된 여러 마이크로서비스를 통합하여 새로운 서버를 작성하였습니다. GraphQL API와 호환을 위한 HTTP Web API를 제공합니다.
데이터 솔루션의 대체: 기존 사내에서 제대로 활용되지 못한 고가의 엔터프라이즈 데이터 솔루션을 오픈 소스 도구 및 다른 수집 솔루션(Firebase, Heap, Amplitude)으로 대체하는 작업을 주도하였습니다. 다양한 포지션의 동료들과 협업을 통해 성공적으로 대체하면서 연 1억 이상의 비용을 절감할 수 있었습니다.
데이터 수집용 스크래퍼 및 배치 파이프라인 개발: 네이버와 카카오의 위치 정보 데이터, 정부 기관에서 공개된 Open API, 건강보험심사평가원의 웹 페이지 등을 위한 웹 스크래퍼, 배치 파이프라인을 만들었습니다. 해당 데이터를 활용해 병원과 약국의 운영 시간이나 개폐업 정보 등을 최신으로 유지할 수 있었습니다.
사용자 지표 확인을 데이터 분석 파이프라인 개발: 굿닥 내 서비스(태블릿 접수, 비대면 진료)의 기간별 지표 및 영업에 필요한 데이터를 확인할 수 있도록 주기적으로 지표를 확인할 수 있게 도와주는 배치 파이프라인을 구축했습니다. 해당 결과는 Slack, Google Spreadsheet 등으로 쉽게 확인할 수 있게 연동하여 다양한 직군에서 해당 데이터를 참고하여 의사 결정을 할 수 있게 도왔습니다.
서비스 마이그레이션을 위한 ETL 개발: 서비스의 대규모 업데이트 과정에서 여러 데이터베이스에 나뉘어 저장된 데이터를 새로운 데이터베이스 스키마에 맞게 데이터를 마이그레이션하는 ETL 파이프라인을 개발하였습니다. 해당 작업을 바탕으로 서비스 마이그레이션을 성공적으로 진행할 수 있었습니다.
사용 기술:
Node.js, TypeScript, Nexus, Prisma, MySQL
Python, Flask, Apache Airflow, Apache Spark & Delta Lake, ClickHouse, Pandas, Playwright
Apache Zeppelin, Tableau, Kubernetes(K8s)
주식회사 뉴플러스기획
소프트웨어 엔지니어 | 퍼플시드
2020.04. ~ 2020.12. (9개월)
모바일 게임 커뮤니티의 프로토타입, 사내에서 마케팅에 필요한 인플루언서 관리를 위한 도구를 개발하였습니다.
프로젝트를 진행하면서 Google Play Store, Apple App Store, 마케팅에 필요한 소셜 서비스의 광고 데이터 수집을 위한 파이프라인을 만들었습니다.
사용 기술: Node.js, TypeScript, Nest.js, React, Playwright, PostgreSQL, Elastic Beanstalk
주식회사에비드넷
연구원 | 플랫폼개발팀
2018.01. ~ 2019.02. (1년 2개월)
아주대학교의료원에서의 기술 이전 후, 병원 내에 데이터 변환 및 공동 연구를 위해 필요한 인프라를 설계하고 기술지원하였습니다. 연구에 필요한 서비스나 프로그램을 개발하는 등의 업무도 진행하였습니다.
병원 내 온프레미스 서버 인프라 설계:
컨소시엄에 참여하는 여러 병원에서 ETL 및 데이터 분석에 사용할 OLAP 데이터베이스의 엔진 및 사양 등을 설계하고 여러 데이터베이스 엔진을 테스트하였습니다.
해당 인프라에 필요한 소프트웨어(데이터베이스 및 ETL, 분석) 및 인프라 관리에 필요한 도구를 만들었습니다.
병원 내 데이터 분석 연구 지원:
연구에 필요한 R, SQL 코드를 병원 내에서 연구자가 쉽게 실행할 수 있도록 윈도우 프로그램을 만들었습니다.
연구에 필요한 R, SQL 코드를 만들고, 병원의 데이터 분석이나 인프라와 관련된 기술지원을 진행하고 해당 과정을 프로세스로 만들었습니다.
기존 병원에서 분석 시 소요 시간 등으로 어려움을 겪었던 연구(고혈압 약제의 다제 병용요법 비교 연구)의 코드 및 성능을 분석하고 CPU 쓰레드 및 IO 과정의 병목 지점을 찾아 개선하는 작업을 진행하였습니다. 해당 작업을 통해 기존 5시간 30분이 소요되었던 작업을 1시간 47분으로 단축할 수 있었습니다. (AWS EC2 c5.9xlarge 기준)
다기관 임상 연구 협업 플랫폼 개발: 비식별화된 환자 데이터를 활용해 여러 기관에서 진행되는 후향적 임상 연구를 위한 협업 플랫폼의 개발에 계속 참여하였습니다. (기존 아주대학교병원 의료정보학과 연구실에서 계속됨)
사용 기술:
Docker, R, PostgreSQL, Apache NiFi, MS SQL Server
C# .NET Framework 4.8, WPF, Rx.NET, ReactiveProperty
TypeScript, Node.js, React
아주대학교의료원
특임연구원 | 의료정보학과
2016.12. ~ 2018.02. (1년 3개월)
부서 내에서 연구 혹은 정부 사업에 필요한 소프트웨어 개발에 참여하였고, 이후 성과를 통해 에비드넷을 통한 기술 이전과 투자가 이루어졌습니다.
생체 신호 데이터 수집을 위한 장비 연동 개발: 다양한 시계열 생체 신호 데이터를 수집하기 위해 중환자실의 벤틸레이터(Hamilton G5) 장비와 연동하여 데이터를 저장하는 프로그램을 개발하였습니다. 해당 데이터는 중환자실 환자의 패혈증 예측 모델을 개발하는데 사용되었습니다.
다기관 임상 연구 협업 플랫폼 개발: 비식별화된 환자 데이터를 활용해 여러 기관에서 진행되는 후향적 임상 연구를 위한 협업 플랫폼의 프로토타입을 개발하였습니다. 서버와 관리자용 웹을 개발하였습니다.
병원 내 용어 맵핑 프로그램 개발: 여러 병원에서 쓰이는 각 병원의 자체적인 용어(약, 시술 등의 처치, 진단 등)를 국제 표준 규격의 용어와 연결해 데이터를 모으는 프로세스를 관리하고 개선할 수 있게끔 프로그램을 개발하였습니다. 해당 데이터는 각 병원의 의료 데이터를 다기관 분석에 사용되는 공통 모델로 ETL하는 과정에서 사용되었습니다. 윈도우 프로그램, 관리자 웹, 서버에서의 성능 이슈를 개선하였습니다.
해당 기간 개발된 기술들이 기술이전되어 이후에 에비드넷에서 업무를 계속하게 되었습니다.
사용 기술:
Go, Kotlin, Vert.x, MS SQL Server
TypeScript, React, MobX
C# .NET Framework 4.8, WPF, Rx.NET, ReactiveProperty
0101RGB
프리랜서 | 프리랜서
2015.12. ~ 2016.05. (6개월)
iOS 탈옥 환경의 탐지와 탈옥 환경에서 자동화 테스트에 필요한 도구 개발
Android / iOS에서 영수증 영역의 탐지와 이미지 처리 모듈 개발 (Edge Detection 등)
말랑스튜디오
안드로이드 개발자 | 개발팀
2014.01. ~ 2014.12. (1년)
알람몬 안드로이드 애플리케이션 유지보수 및 개편 작업
C2Soft
공동창업자 | -
2014.01. ~ 2015.06. (1년 6개월)
식당 내 고객 관리 솔루션 개발 및 기획
전자 투표 솔루션 개발 및 기획
외주 개발 진행
대한지적공사(현재: 대한국토정보공사)
교육용 앱 서비스 개발
산업용 누수 감지 장비와 연동되는 서버 및 앱 개발
프로젝트
웹 스크래퍼 개선
프리랜서 (클라이언트 비공개)
2024.02. ~ 2024.08.
클라이언트의 기존 웹 스크래핑 방식에는 스크래퍼의 탐지 등에 미흡한 부분이 있었습니다.
고도화를 위해 HTTP 통신 과정 중의 TLS(ClientHello Header), HTTP/2 Frame을 통한 스크래퍼 탐지 및 사용자 식별을 회피하고 기존 스크래핑 파이프라인에 연동할 수 있게 프로그램을 만들어 파이프라인을 개선하였습니다.
사용 기술: Python(3.11, 초기 PoC 및 스크립트), Go(프로그램 전체), mitm-proxy, Wireshark
시계열 데이터 예측을 위한 분석 파이프라인 개발
프리랜서 (클라이언트 비공개)
2024.05. ~ 2024.08.
MS SQL Server에 저장된 데이터를 가공해서 AWS Forecast로 예측 모델을 만들고 결과물과 AWS 리소스를 정리하는 배치 파이프라인을 구현했습니다. (정기적인 분석, 요청에 의해 실행되는 분석)
AWS Forecast의 최대 리소스 수에 따른 제한, 분석 후 삭제가 필요한 리소스의 순차 정리, 기존 데이터에서 생기는 예외 상황 등에 대응했습니다.
사용 기술: Python (3.10 ~ 3.12), MS SQL Server, Pandas, AWS Forecast
headache.place
개인 프로젝트
2024.02. ~ 2024.08.
TypeScript, Next.js, 네이버 카페의 API를 활용해 카페의 공개 게시물을 네이버 외의 다양한 검색 엔진에서 검색될 수 있도록 검색 엔진 최적화를 한 웹 사이트를 만들었습니다. 사용자가 검색 엔진을 통해 접속 시에는 네이버 카페로 자연스럽게 이동합니다.
CLAiRE EMR - 동물병원용 클라우드 EMR 및 건강 검진 솔루션
아이엠디티
2022.08. ~ 2023.12.
백엔드 및 프론트엔드에서의 기능 구현, 장비 연동을 위한 클라이언트용 모듈 개발, 필요한 초기 인프라 구축 등 다양한 작업을 진행하였습니다.
Terraform을 통해 AWS 인프라를 구축 및 관리하고, GitHub Actions를 통한 CI / CD 파이프라인을 구축했습니다.
사용자(동물병원 방문 보호자)에게 보내지는 PDF 보고서의 생성이 오래 걸려, 해당 서비스를 분리하고 메시지 큐를 활용해 생성 시간을 1/4로 단축했습니다.
RS-232(시리얼 포트) 및 TCP 소켓 통신에 대응하는 동물병원 내 검사 장비 연동 모듈을 개발하였습니다. 해당 과정에서 의료 데이터의 전송 규격인 HL7 v2.x 패킷 파서를 구현하였습니다.
새로운 통합 사용자 / 계정 관리 서버 개발
굿닥
2021.01. ~ 2021.05.
기존 여러 마이크로서비스로 분리되어 일부는 유지보수가 제대로 되지 않던 계정 및 사용자와 관련된 여러 서버를 새로운 서버로 통합하였습니다. 새로운 서버는 GraphQL API와 기존 클라이언트의 호환 유지를 위한 HTTP Web API를 모두 제공합니다.
데이터 수집/분석 및 파이프라인 솔루션 대체
굿닥
2021.04. ~ 2021.09.
기존 사내에서 제대로 활용되지 못한 고가의 엔터프라이즈 데이터 솔루션을 오픈 소스 도구(Apache Airflow, Apache Spark & Delta Lake, ClickHouse) 및 다른 수집 솔루션(Firebase, Heap, Amplitude)으로 대체하는 작업을 주도하였습니다.
해당 과정에서 다양한 포지션의 동료들과 협업하면서 클라이언트에서의 마이그레이션 비용을 줄이기 위해 호환 가능한 데이터 수집 API를 만들거나하는 등의 작업을 진행하였습니다.
이후 성공적으로 해당 솔루션을 대체하면서 연 1억 이상의 비용을 절감할 수 있었습니다.
병원 / 약국 정보 수집 스크래퍼 개발
굿닥
2021.04. ~ 2022.05.
네이버와 카카오의 위치 정보 데이터, 정부 기관에서 공개된 Open API, 건강보험심사평가원의 웹 페이지 등을 위한 웹 스크래퍼, 배치 파이프라인을 만들었습니다. 초기 개발 후 퇴사 전까지 꾸준히 유지보수해왔습니다. Open API나 웹 호출에서의 실패 시 재시도 등의 예외 처리 등이 반영되어 있습니다.
해당 데이터를 활용해 병원과 약국의 운영 시간이나 개폐업 정보 등을 최신으로 유지할 수 있었습니다.
사용자 지표 확인용 파이프라인 개발
굿닥
2021.08. ~ 2022.05.
서비스(태블릿 접수, 비대면 진료)의 기간별 지표 및 영업에 필요한 데이터를 확인할 수 있도록 주기적으로 지표를 확인할 수 있게 도와주는 배치 파이프라인을 구축했습니다. 해당 과정에서 PO나 경영진과의 상의를 통해 필요한 지표의 정의부터 어떻게 해당 지표를 확인할지 등에 참여하였습니다.
지표 결과는 Slack, Google Spreadsheet 등으로 쉽게 확인할 수 있게 연동하여 다양한 직군에서 해당 데이터를 참고하여 의사 결정을 할 수 있게 도왔습니다. 해당 작업의 결과는 투자 유치에도 활용되었습니다.
서비스 대규모 업데이트를 위한 데이터베이스 마이그레이션
굿닥
2021.11. ~ 2022.05.
서비스의 대규모 업데이트 과정에서 최소 4개 이상의 여러 데이터베이스에 나뉘어 저장된 데이터를 새로운 데이터베이스와 그 구조에 맞게 마이그레이션하는 작업을 진행하였습니다. 해당 작업을 바탕으로 서비스 마이그레이션을 성공적으로 진행할 수 있었습니다.
병원 내 데이터 분석 연구를 위한 인프라 설계 및 연구 지원
에비드넷
2018.01. ~ 2019.02.
병원 내 온프레미스 서버 인프라 설계:
컨소시엄에 참여하는 여러 병원에서 ETL 및 데이터 분석에 사용할 OLAP 데이터베이스의 엔진 및 사양 등을 설계하고 여러 데이터베이스 엔진을 테스트하였습니다.
해당 인프라에 필요한 소프트웨어(데이터베이스 및 ETL, 분석) 및 인프라 관리에 필요한 도구를 만들었습니다.
병원 내 데이터 분석 연구 지원:
연구에 필요한 R, SQL 코드를 병원 내에서 연구자가 쉽게 실행할 수 있도록 윈도우 프로그램을 만들었습니다.
연구에 필요한 R, SQL 코드를 만들고, 병원의 데이터 분석이나 인프라와 관련된 기술지원을 진행하고 해당 과정을 프로세스로 만들었습니다.
기존 병원에서 분석 시 소요 시간 등으로 어려움을 겪었던 연구(고혈압 약제의 다제 병용요법 비교 연구)의 코드 및 성능을 분석하고 CPU 쓰레드 및 IO 과정의 병목 지점을 찾아 개선하는 작업을 진행하였습니다. 해당 작업을 통해 기존 5시간 30분이 소요되었던 작업을 1시간 47분으로 단축할 수 있었습니다. (AWS EC2 c5.9xlarge 기준)
다기관 후향적 임상 연구 협업 플랫폼 개발
에비드넷, 아주대학교의료원 의료정보학과
2017.05. ~ 2018.02.
비식별화된 환자 데이터를 활용해 여러 기관에서 진행되는 후향적 임상 연구를 위한 협업 플랫폼의 개발에 참여하였습니다. 서버 API 및 관리자용 웹 개발에 참여하였습니다.
해당 내용은 아주대학교의료원 의료정보학과에서 투자 유치 후 에비드넷으로 기술 이전에 포함되었습니다.
병원 내 용어 맵핑 프로그램 개발
아주대학교의료원 의료정보학과, 에비드넷
2017.05. ~ 2018.02.
여러 병원에서 쓰이는 각 병원의 자체적인 용어(약, 시술 등의 처치, 진단 등)를 국제 표준 규격의 용어와 연결해 데이터를 모으는 프로세스를 관리하고 개선할 수 있게끔 프로그램을 개발하였습니다. 해당 데이터는 각 병원의 의료 데이터를 다기관 분석에 사용되는 공통 모델로 ETL하는 과정에서 사용되었습니다. 윈도우 프로그램, 관리자 웹, 서버에서의 성능 이슈를 개선하였습니다.
해당 내용은 아주대학교의료원 의료정보학과에서 투자 유치 후 에비드넷으로 기술 이전에 포함되었습니다.