- Golang 기반 백업 서비스 개발 및 유지보수
- Serverless 아키텍처 기반 개발(kubernetes, AWS Lambda) 및 배포(terraform)
경력
-
Clumio
…Software Engineer
-
TmaxData
…Team Leader (겸직)
- 기술 공부 및 팀 업무에 도입
- 코드 퀄러티 향상: 리팩토링 2, 클린 코드 등
- 가독성 및 테스트 커버리지에 중점으로 코드 리뷰
- 업무 효율성 개선
- 문서화 되지 않은 내용들의 문서화
- 문서 갱신을 통해 필요한 정보를 쉽게 찾을 수 있도록 함
- 신입 교육
- 이론적 내용 교육
- 빠른 실무투입을 위한 신입용 문서 정리 및 tutorial 도입
- 팀 관리 업무
- 팀 내 일감 분배 및 보고
- 기술 부채 관리를 통해 장기/잠재적 이슈들 관리
- 정량적 요소뿐만 아니라 역량을 고려하여 팀원 평가
- 팀 개발 분위기 조성
- 본인 커리어에 도움이 될 수 있을만한 롱텀 이슈 분배 및 관리
- 개발 및 설계 위주로 최대한 업무 구성
- 기술 공부 및 팀 업무에 도입
-
TmaxData
…Software Engineer
RDBMS 엔진 개발 및 유지보수
- Parser 설계 및 개발
- Bison/Flex 기반 Parser 유지보수 (DDL, PLSQL, SQL Parser)
- Conflict 없는 Custom Parser의 설계
- DBMS Lock 경합 감소와 Cache 구조 개선
- Partition 단위의 Lock 설계 및 구현
- Global 단위의 PL/SQL 캐시 설계 및 구현
- Lock 구간 최소화를 통한 Deadlock 제거
- PL/SQL Engine 설계 및 개발
- Nested Type 개발
- PL/SQL 관련 dblink 프로토콜 설계 및 개발
- PL/SQL VM interpreter 최적화를 위한 stack 설계
- PL/SQL Compiled mode 설계
- DBMS 부가 기능 개발
- Gateway 개발
- Job 모듈 유지보수
- DB monitoring process 개발
- PL/SQL 패키지 설계 및 개발
- PL/SQL 기반 Message Queue 패키지 설계
- PL/SQL debugger 기능 설계 및 개발
- DevOps
- 오류 조기 검출: Compile time에 오류 검출을 위한 스크립트 추가
- 유닛 테스트 도입
- Docker을 이용한 통일된 환경에서의 개발 및 배포
- 성과
- 담당했던 모듈의 중대 버그 모두 제거
- 중요 기능 개발로 회사 매출에 기여 (재직 초기 대비 매출액 약 3배 증가)
- Parser 설계 및 개발
학력
-
서울대학교 학사 졸업
…컴퓨터공학부
- Github에서 각종 side project 수행
- 개발 동아리 활동: UPnL
- 보안 동아리 활동: Guardian
- 행사 참여: SW Maestro, Microsoft App Hackathon 등
-
Software Maestro 3기 수료
…한국정보산업연합
- 개인 방송 솔루션 설계 및 Android 앱 개발
- 게임 컨트롤러 플랫폼 설계 및 Android, server, 데모 게임 개발
-
서울대학교 석사 졸업
…컴퓨터공학부 생명정보공학 연구소
- mRNA 데이터 분석 방법 연구
- Tensorflow 기반으로 모델 설계 및 개발
- 4편의 논문 작성 (메인 저자 1편)
논문
-
Identifying stress-related genes and predicting stress types in Arabidopsis using logical correlation layer and CMCL loss through time-series data
…BIBM, Main Author
- 적은 수의 고차원 time series mRNA 데이터로부터 해당 개체의 label을 알아낼 수 있으면서, 동시에 biomarker을 찾아낼 수 있는 모델 개발 및 검증.
- Rscript의 DEG 패키지를 이용하여 p-value를 검출하고(preprocess), 이를 모델의 input으로 함. output은 one-hot encoded label으로 설정.
- 적은 데이터로 인해 발생하는 overfitting을 방지하기 위해, Group effect를 추가 고려
- Multiple selection이 될 경우를 고려하여 CMCL Loss (KL Divergence) 사용
- 변수에 비해 데이터가 굉장히 적고, time 정보를 살릴 수 없었던 점이 아쉬웠던 점.
-
In silico experiment system
…Methods
- 웹에서의 In silico experiment를 위한 설계 수행
- Flask로 분석 파이프라인 구현
- Rscript 이용하여 microarray data를 DEG p-value로 preprocessing
- Graph rendering을 위해 cytoscape.js 라이브러리 사용
- 실제 biomarker과 cross validation 수행
-
Venn-diaNet
…BMC
Venn-diaNet: venn diagram based network propagation analysis framework for comparing multiple biological experiments
- Rscript 이용하여 DEG p-value 검출
- cytoscape.js를 이용하여 venn diagram rendering 개발
- N-group에서 사용 가능하도록 설계
- Edge weight를 이용하여 node들의 positioning을 설정하고, 이에 따라 venn diagram이 구성됨
- threshold를 이용한 선택적 rendering으로 성능 최적화
- venn diagram의 geneset들의 유효성 검증
-
HTRgene
…BMC
HTRgene: integrating multiple heterogeneous time-series data to investigate cold and heat stress response signaling genes in Arabidopsis
- DEG 알고리즘 개발: response point 별로 clustering을 통하여 정확도 및 biomarker 발현의 순서를 확인
- 알고리즘 성능 검증: Arabidopsis의 cold/heat stress data를 통하여 유의미한 biomarker 검출 확인, 타 DEG 알고리즘과 비교
프로젝트
-
Rhythmus
…C++, OpenGL, GLFW
- Game Engine 자체구현
- GPL License 기반 open source 목표를 달성하기 위해 직접 개발
- GLFW 프레임워크 기반
- Multicore에 최적화된 resource manager 개발
- Worker/Task queue 사용하여 자체 리소스 스케쥴러 개발
- 성능 효율성과 lag를 최소화를 위해 동적 vsync 적용
- Sound effector 기능이 들어간 Mixer 자체구현
- 리버싱을 통한 타 게임 리소스 지원 (dxa)
- Game script runtime 설계 및 구현 (lua, lr2script)
- Be-music script library 개발
- googletest 도입으로 품질 안정화
- Game Engine 자체구현
-
bmx2ogg
…C++
- C++로 직접 audio decode/encode, mixing 모듈 개발
- pitch / speed change 개발
- travis CI 도입을 통한 품질 안정화
- C++로 직접 audio decode/encode, mixing 모듈 개발
-
iidx.insane.pe.kr
…python
- django + ORM 기반의 게임 데이터 관리 사이트
- frontend: jQuery + bootstrap
- 추천 서비스 개발
- MCML을 통하여 각 유저와 곡 수치를 산출하고, 이에 따른 추천 서비스 제공
- maintenance 툴 개발
- management 자동화를 위한 script 개발 및 유지보수
- 데이터 수정 툴 개발을 통해 쉬운 유지보수
- django + ORM 기반의 게임 데이터 관리 사이트
-
iBeatcon for Android
…Android, C#
- client: Android, server: C#
- 모바일기기를 게임 컨트롤러처럼 쓸 수 있도록 하는 애플리케이션입니다.
-
Controller based on Smartphone Sensor
…Android, python
- 스마트폰의 센서를 이용하여 범용적인 컨트롤러로 사용할 수 있도록 하는 솔루션
- server: python, client: Android
- 머신 러닝을 통헤 보다 정확도 높은 모션 인식을 구현
-
Rhythmus_java
…Java
- libGDX 엔진 기반
- 높은 호환성 자랑 (Windows, Mac, Android)
- 빠른 개발 진행
- libGDX 엔진 기반
-
NovelViewer
…C++, DirectX
- UMPC에서 text 소설을 볼 수 있도록 하는 프로그램입니다.
- 편리한 UX 제공: 북마크, 다음 파일로 이동, 최근 파일 자동 열림 등 구현
- 부드러운 페이지 넘김을 구현하였습니다.
- 쾌적한 사용자 경험을 위해 DirectX + font cache를 이용, 저사양 최적화를 하였습니다.
프로그래밍 언어
프레임워크 및 플랫폼