경력
  1. Clumio

    …Software Engineer

    1. Backend
    2. Cloud
    • Golang 기반 백업 서비스 개발 및 유지보수
    • Serverless 아키텍처 기반 개발(kubernetes, AWS Lambda) 및 배포(terraform)
  2. TmaxData

    …Team Leader (겸직)

    1. Backend
    • 기술 공부 및 팀 업무에 도입
      • 코드 퀄러티 향상: 리팩토링 2, 클린 코드 등
      • 가독성 및 테스트 커버리지에 중점으로 코드 리뷰
    • 업무 효율성 개선
      • 문서화 되지 않은 내용들의 문서화
      • 문서 갱신을 통해 필요한 정보를 쉽게 찾을 수 있도록 함
    • 신입 교육
      • 이론적 내용 교육
      • 빠른 실무투입을 위한 신입용 문서 정리 및 tutorial 도입
    • 팀 관리 업무
      • 팀 내 일감 분배 및 보고
      • 기술 부채 관리를 통해 장기/잠재적 이슈들 관리
      • 정량적 요소뿐만 아니라 역량을 고려하여 팀원 평가
    • 팀 개발 분위기 조성
      • 본인 커리어에 도움이 될 수 있을만한 롱텀 이슈 분배 및 관리
      • 개발 및 설계 위주로 최대한 업무 구성
  3. TmaxData

    …Software Engineer

    1. Backend

    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배 증가)
학력
  1. 서울대학교 학사 졸업

    …컴퓨터공학부

    • Github에서 각종 side project 수행
    • 개발 동아리 활동: UPnL
    • 보안 동아리 활동: Guardian
    • 행사 참여: SW Maestro, Microsoft App Hackathon 등
  2. Software Maestro 3기 수료

    …한국정보산업연합

    • 개인 방송 솔루션 설계 및 Android 앱 개발
    • 게임 컨트롤러 플랫폼 설계 및 Android, server, 데모 게임 개발
  3. 서울대학교 석사 졸업

    …컴퓨터공학부 생명정보공학 연구소

    • mRNA 데이터 분석 방법 연구
    • Tensorflow 기반으로 모델 설계 및 개발
    • 4편의 논문 작성 (메인 저자 1편)
논문
  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 정보를 살릴 수 없었던 점이 아쉬웠던 점.
  2. In silico experiment system

    …Methods

    • 웹에서의 In silico experiment를 위한 설계 수행
    • Flask로 분석 파이프라인 구현
    • Rscript 이용하여 microarray data를 DEG p-value로 preprocessing
    • Graph rendering을 위해 cytoscape.js 라이브러리 사용
    • 실제 biomarker과 cross validation 수행
  3. 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들의 유효성 검증
  4. 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 알고리즘과 비교
프로젝트
  1. Rhythmus

    …C++, OpenGL, GLFW

    1. Game
    • 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 도입으로 품질 안정화
  2. bmx2ogg

    …C++

    • C++로 직접 audio decode/encode, mixing 모듈 개발
      • pitch / speed change 개발
    • travis CI 도입을 통한 품질 안정화
  3. iidx.insane.pe.kr

    …python

    1. Backend
    2. Frontend
    3. Web
    • django + ORM 기반의 게임 데이터 관리 사이트
      • frontend: jQuery + bootstrap
    • 추천 서비스 개발
      • MCML을 통하여 각 유저와 곡 수치를 산출하고, 이에 따른 추천 서비스 제공
    • maintenance 툴 개발
      • management 자동화를 위한 script 개발 및 유지보수
      • 데이터 수정 툴 개발을 통해 쉬운 유지보수
  4. iBeatcon for Android

    …Android, C#

    1. Android
    • client: Android, server: C#
    • 모바일기기를 게임 컨트롤러처럼 쓸 수 있도록 하는 애플리케이션입니다.
  5. Controller based on Smartphone Sensor

    …Android, python

    1. Android
    • 스마트폰의 센서를 이용하여 범용적인 컨트롤러로 사용할 수 있도록 하는 솔루션
    • server: python, client: Android
    • 머신 러닝을 통헤 보다 정확도 높은 모션 인식을 구현
  6. Rhythmus_java

    …Java

    1. Game
    • libGDX 엔진 기반
      • 높은 호환성 자랑 (Windows, Mac, Android)
      • 빠른 개발 진행
  7. NovelViewer

    …C++, DirectX

    • UMPC에서 text 소설을 볼 수 있도록 하는 프로그램입니다.
    • 편리한 UX 제공: 북마크, 다음 파일로 이동, 최근 파일 자동 열림 등 구현
    • 부드러운 페이지 넘김을 구현하였습니다.
    • 쾌적한 사용자 경험을 위해 DirectX + font cache를 이용, 저사양 최적화를 하였습니다.
프로그래밍 언어
  1. Go
  2. Python
  3. C/C++
  4. Java
  5. Rust
  6. Javascript
  7. CSS
  8. R
  9. PL/SQL
  10. shell
프레임워크 및 플랫폼
  1. django
  2. bootstrap
  3. jquery
  4. SDL2
  5. OpenGL
  6. Tensorflow
  7. GLFW
  8. Flex/Bison
  9. RDB
  10. NoSQL
  11. Android
  12. Linux
  13. terraform
  14. AWS
  15. Docker
  16. kubernetes