CV
온라인에서는 finalchild로 활동하고 있는 박재온입니다.
초등학생 때부터 프로그래밍에 관심을 가졌고, 마인크래프트 커뮤니티에서의 다양한 경험과 교류를 통해 개발 전반에 대한 넓은 이해를 얻었습니다. 한편, 문제 해결에도 재능이 있다는 것을 발견해 고등학교 시절에는 국내 주요 알고리즘 대회에서 여러 번 수상했습니다.
서울대학교 컴퓨터공학부에 20학번으로 입학했으나, 대학에 오래 있는 것이 공부에 필수적이지는 않다고 판단해 3년만에 조기 졸업했습니다. 현재는 산업기능요원을 위해 회사에 다니면서, 견고한 마이크로서비스를 신속하게 개발하기 위한 방법론에 대해 고민하고 있습니다.
연차에 비해 읽고 접한 것이 많은 편입니다. 서비스 코드 및 라이브러리 코드에서 보안 문제가 될 수 있거나 표준에 부합하지 않는 부분을 직감적으로 잘 찾아냅니다. 버그의 원인을 오픈 소스 프로젝트에서 찾아내고, 직접 기여해 고치기도 합니다.
경력
- PortOne 백엔드 엔지니어 (2023~)
- 간편한 결제 연동 API를 제공하는 서비스
- Scala, Kotlin, TypeScript 등을 사용하는 MSA
- 액터 모델을 근간으로 하는 scalable한 코어 시스템을 담당하는 팀
- 배포 용이성, 개발 속도 등을 개선하는 데 집중
- Cassandra, OpenSearch, Druid, PostgreSQL 데이터베이스와 Kafka 이용
학력 및 수료 내역
- 서울대학교 컴퓨터공학부 졸업 2020~2022 (GPA 3.89, 전공 3.91)
- 한가람고등학교 2017~2019
- 서울여자대학교 정보보호영재교육원 2019
대회 및 문제 풀이
주요 대회
- NYPC 2018 동상 (9위)
- Google Code Jam 2019 R3 321위
- NYPC 2019 은상 (3위)
- 한국정보올림피아드 2019 은상 (12위)
- UCPC 2020 본선
- UCPC 2021 본선
- UCPC 2022 본선
- 대회 시간 안에 "NPU 최적화"를 푼 유일한 참가자
- ACM-ICPC Seoul Regional 2022 예선 5위
- ACM-ICPC Seoul Regional 2022 본선 15위 (팀원 한 명 불참)
기타
- CodeForces max. 1977
- solved.ac Diamond 5
- 2018 서울대학교 프로그래밍 경시대회 Open Contest - Division 2 1위
- 제5회 정보보호영재교육원 정보보안 경진대회 (2019) 개인전 3위
- Kotlin Heroes Episode 1 29위
관심 분야 및 지식
- 프로그래밍 언어 설계 및 컴파일러 등의 구현에 관심
- Kotlin, Java, Groovy를 이용한 개발 경험
- JVM 바이트코드 조작, 컴파일러 확장, 어노테이션 처리기 등의 주제에 익숙
- Gradle에서 convention plugin 등 최신 권장 구조를 따라가고 있음
- Netty, Spring Boot (Reactive Stack), Ktor 등 라이브러리 사용
- 학사 논문: Kotlin에서의 Algebraic Effect Handler 구현
- TypeScript, JavaScript를 이용한 개발 경험
- Angular, Express 사용 (옛날)
- deno, jsr.io, hono 등을 현업에서 이용
- C/C++에 대한 지식
- 알고리즘 문제 풀이 및 언어 스펙 공부에 집중
- language lawyer가 되어가는 중 (포스트: https://proofby.ac/teaching-c/)
- Rust에 관심
- strict provenance, concurrency, ...
- rustc 기여 (프로젝트 참고)
- 함수형 프로그래밍
- Rust, OCaml 등에서 ADT 및 패턴 매칭 사용
- 모나드, 대수적 효과 처리자, 커리-하워드 대응 등의 주제에 익숙
- Scala ZIO 생태계에 익숙
- 알고리즘, Coq, abstract interpretation, ...
- 인프라 관련
- Kubernetes 기반 마이크로서비스 아키텍처에서의 업무 경험
- Alpine (busybox, OpenRC, ...), Arch
- PostgreSQL, Cassandra, OpenSearch, Druid
- Kafka, Debezium, ...
- 페디버스에 개인 인스턴스 운영 (https://twt.rs/)
대학 과목 내 주요 경험
- CUDA 등 병렬 프로그래밍 기술을 이용한 딥러닝 모델 최적화 과제 (멀티코어프로그래밍)
CUDA, MPI - 영지식 증명 언어 Cairo를 이용한 개인 정보 공유 시스템 PoC (창의적통합설계, 삼성리서치)
Ethereum, Solidity, Cairo, Kivy- 2학년에 수강하여 설계 전반과 핵심 개발을 맡아 팀 내 주도적 역할
- 리눅스 커널을 수정해 기능을 추가하는 과제 (운영체제)
Linux, C - 특수한 비용 모델을 대상으로 프로그램을 최적화하는 LLVM 패스 구현 및 팀별 경쟁 (소프트웨어개발의원리와실습)
LLVM, C++- Clang이 기본적으로 사용하는 최적화 파이프라인 및 그 코드를 공부해 적용하는 역할
- 텍스트 감정 인식을 위한 BERT 전이 학습 경험 (인공지능)
HuggingFace, PyTorch
외부 프로젝트
- 한가람고등학교 시간표 생성기 (2018)
- TypeScript
- 한가람고등학교 학생회장단 투표 시스템 (2019)
- Angular, Express, SQLite
- 양띵TV 인생상가 - 마인크래프트 모드 UI 개발 (2020)
- Kotlin, LWJGL, OpenGL
- 마크다운 문서에 스타일을 적절히 입혀 당시 네이버 카페에서 사용할 수 있는 HTML 문서로 변환하는 스크립트 (2020)
- Kotlin의 싱글톤 object를 JavaPlugin을 상속하는 일반 클래스로 변환하여 Bukkit 플러그인에서도 싱글톤 문법을 사용할 수 있게 하는 Kotlin 컴파일러 확장 (2020)
- 랜선 어린이 궁중문화축전 - 마인크래프트 미니게임 개발 참여 (2021)
- Kotlin
- 양띵TV 인생상가2 - 보스 몬스터 개발 (2021)
- Kotlin의 suspend 함수를 마인크래프트 서버의 틱 기준 스케줄러에 연동시켜 사용, direct style 코드로 몹 패턴을 개발할 수 있었음
- 우마공크리에이티브 감사 및 개발자 (2021~2022)
- 외부 기업의 마인크래프트 관련 블록체인 프로젝트에 개발 자문 등 활동
- 파이널판타지14 한국판을 CrossOver(Wine) 위에서 실행할 수 있는 크로스플랫폼 커스텀 런처 (2022)
- 공식 런처가 이용하는 크로미움이 당시 CrossOver에서 구동되지 않았음
- WireShark, mitmproxy를 이용한 역공학
- Rust, Slint
- Rust 컴파일러에 기여 중 (2022~)
- diagnostic 메시지를 다국어로 번역 가능한 인터페이스로 이주시키기
기타 활동
2017년부터 마인크래프트 자바 에디션의 한국어 번역 검수를 맡고 있습니다.
2018년에 번역한 마인크래프트 가이드북이 있습니다. (흑역사)