이력서
현재 = 2021 년 3 월.
요약
회사에 다닌지 3 년 된 생각 많은 컴퓨터 프로그래머입니다. 편안한 커뮤니케이션을 추구하며 일을 잘 하려는 마음도 놓치지 않으려 합니다.
보유 기술
- Java 와 Kotlin/JVM. Java 빌드 툴체인 사용, JVM 런타임 튜닝, 네이티브 디버깅 등을 포괄적으로 수행할 수 있음. OpenJDK HotSpot 환경에서 모듈의 메모리 사용을 예측, 실시간 측정해 비용효율적인 런타임 계획을 수립할 수 있음.
- Android 앱 프로그래밍. Android 플랫폼, Android SDK, AndroidX 에서 작업. Retrofit, Moshi, Glide, ThreeTenABP, RxJava 에 익숙함.
- Spring Boot 기반 웹 마이크로백엔드 프로그래밍.
- L4 / L7 LBR 을 활용하는 규모가변 배포 및 형상관리.
- 함수형 반작용적 프로그래밍 (FRP): ReactiveX.
- 프로그래밍 언어: C, Python.
- 기본적인 Bash 스크립팅.
- 빌드 시스템: Ant, Maven, Gradle, CMake.
- 버전 컨트롤과 CI: Git, GitHub, Jenkins.
- 운영체제, 가상화, 오케스트레이션: Linux, Docker, Kubernetes.
관심 분야 (업무 경험 있음)
- 모던 웹 API, Node.js, React 웹 프론트엔드.
- 프로그래밍 언어: ECMAScript, Rust, Go, C++20, Haskell, Prolog.
- Unity 게임 엔진, C# 스크립팅.
- OpenGL Shading Language (GLSL).
- .NET Core, MSBuild.
- Z3, CVC4. 일차논리식 충족가능성 정리증명기 (SMT solver).
- 증명보조기 Coq (논리 언어 Gallina).
- 도메인특화 언어 설계 및 구현.
- Tensorflow, Kubeflow.
직업 경력
서비스 엔지니어 (“개발 직군”). 2017 년 9 월 – 현재 (현재 기준 3 6/12 년).
네이버. 클로바. (🔗)
- (2020–현재) 클로바 앱 (Android, iOS) 클라이언트를 위한 API 서버, 푸시 알림 서버, 서비스 운영을 위한 웹 기반 도구 등을 관리하고 있습니다.
- (2019–현재) 클로바 앱 (Android, iOS) 클라이언트의 디바이스 제어 관련 기능에 대한 명세를 작성하고, 클라이언트의 기능 구성을 서버에서 운영 및 유통하는 시스템을 개발하고 있습니다.
- (2018) 클로바 플랫폼의 통합 오디오 컨텐츠 규격 개편에 참여하였습니다.
- (2018) 클로바 SDK (클로바 클라이언트 SDK; CLOVA SDK for Android) 의 개발 및 요구사항 관리를 전담하여, 기능 추가, 버그 픽스, 클라이언트 이슈 대응 (당시 KR+JP 클라이언트 20 여 곳), 릴리스 등 SDK 전반 업무를 수행하였습니다.
- (2017) 클로바 앱 전면개편 시기에 클로바 디바이스 계정 연결 기능을 재구현하였습니다. (Android 클라이언트 코드 작성. 현재에도 형상 유지되는 표준 구현입니다.)
- (2017) 클로바 프렌즈 출시에 맞추어 클로바 앱을 통한 클로바 플랫폼 디바이스 제어 기능을 개발하였습니다. (Android 클라이언트 코드 작성, 서버/디바이스 디버깅)
서비스 엔지니어 인턴 (“개발 인턴”). 2017 년 7 월 – 2017 년 8 월 (7 주).
네이버. 스마트에디터. (🔗)
ℹ️ 스마트에디터는 네이버 서비스에서 사용되는 텍스트 서식 에디터 브랜드입니다.
스마트에디터 부서에서 클라이언트 애플리케이션의 아키텍처 패턴에 대한 인턴 과제를 수행하였습니다.
연구원 (학사). 2017 년 3 월 – 2017 년 6 월.
고려대학교 정형기법연구실.
고려대학교 학부 2017 년 봄학기 계산이론 과목 1분반의 이론조교 및 실습조교였습니다.
VERSA 유지보수 (후술) 작업을 재개하였습니다.
전산계원 (자동화체계운용·정비병). 2014 년 6 월 – 2016 년 1 월.
육군 현역병 복무 2014 년 4 월 – 〃.
여단급 제대 참모부의 전산실에 배속되어 전산계원으로 다음과 같은 업무를 수행하였습니다.
- PC 등 단말 2 천여 대와, 라우터 등 장비 백여 대를 포함하는 규모의 내부 정보통신망과 인터넷 등에 대한 관리를 맡아, 네트워크 토폴로지와 보안정책을 분석하여 재수립하고 원활히 운용했습니다.
- 전산장비와 전산소모품의 생애주기에 대한 중점관리요소를 분석하여, 장비 및 소모품에서 연간 손실 +40% 수준으로 예측을 초과하던 비용을 정상수준으로 회복하였습니다.
학부연구생. 2013 년 9 월 – 2014 년 4 월.
고려대학교 정형기법연구실.
ℹ️ ACSR 은 CCS, CSP 와 유사한 프로세스 대수 기반 정형 명세 언어입니다.
ACSR 도구모음인 VERSA (🔗) 에 대한 작업을 수행하였습니다.
- LEDA 등 오래된 라이브러리를 사용하던 유지보수 끊긴 소스코드로부터 정상 동작하는 실행파일 빌드를 복원했습니다. (현재에도 빌드 가능한 코드가 유지됩니다.)
- 소스 코드 리팩토링과 버그픽스를 수행하여 ACSR 이론 기준 정상 동작을 점검하였습니다.
- 하이퍼바이저 환경에서의 스케줄 가능성 등 연구에 참여하여 ACSR 확장 이론에 대응하였습니다.
인턴 프로그래머. 2013 년 6 월 – 2013 년 8 월 (2 개월).
넥슨코리아. 마비노기 DX팀.
마비노기의 모바일 개발 팀이던 DX팀에서 메신저 앱인 마비노기 톡 (Android 🔗) 과 스핀오프 미니게임인 마비노기 생활의 달인 (Android 🔗, iOS ⛓️) 개발에 참여했습니다.
- 마비노기 생활의 달인 (2013 년 6 월 Android 출시, Unity 4 기반) 게임의 동적 리소스 시스템을 구성하였습니다. Unity Editor 연동 리소스 빌더 구현에 2 주 가량 소요되었으며, 그 결과로 앱 빌드 결과물의 크기를 약 180 MB 에서 30 MB 이하 수준으로 감량하고, iOS 출시 (2013 년 11 월) 가 가능하게 되었습니다.
교육
공학사. 2017 년 2 월. (학부 재학 2011 년 3 월 – 〃, 군 복무 기간 포함).
고려대학교, 컴퓨터학과.
공통교육과정 수료. 7차 교육과정 (제정). 2011 년 2 월.
완산고등학교, 2008 년 3 월 – 〃. (심화 2년 “자연계열” 2009 년 3 월 – 〃.)
연구 및 출판
2017
이혁, 정언, 최진영. 제약 만족 문제 방식을 통한 스케줄 가능성 분석. 한국정보과학회 2017 한국소프트웨어종합학술대회 논문집, 2017. 12., 1611–1613. (DBpia 🔗)
오픈소스
기여자이기보다 주로 소비자입니다. 필요에 따라 제가 만질 수 있는 것은 소소하게 메인라인에도 제안하고 있습니다. 새로운 기능보다는 버그, 튜닝, 구조에 집중하는 편입니다.
2019
Google AutoValue 확장인 auto-value-parcel 에 대한 이슈 리포트 (GitHub 🔗)
2017–2019
MSYS2 PKGBUILD (GitHub 🔗)
2017
Java SE 7 환경에서의 바이너리 배포시 GPLv2+CE 문제 관련, java-optionalbp 공개 (GitHub 🔗)
2017
Z3 이슈 리포트 (GitHub 🔗, 🔗)
2016
Lea Verou 의 conic-gradient polyfill 기여 (GitHub 🔗)
2015–2016
CMake 모듈 기여 (FindBISON DEFINES_FILE: 메일 스레드 🔗, 🔗; FindBISON VERBOSE: 메일 스레드 🔗, 🔗)
2013
Matthew Sarnoff 의 chipdb (🔗; GitHub 🔗) 오픈소스화에 참여
2013
K-9 Mail 초기 한국어 번역 (GitHub 🔗)