남정현 (Junghyun Nam)

(View English version)

E-mail: [email protected]
Telegram: @cr0sh
GitHub: @cr0sh
LinkedIn: 남정현
Blog: blog.cro.sh

Last updated: 2023-02-02

이 페이지 출력하기

서울에 거주 중입니다.

현재 적극적 구직 상태는 아니지만 기회와 제안들에 대해 열려 있습니다.

보충역 산업기능요원으로 복무 중이며 예상 소집해제일은 2023년 7월 30일입니다.

학력

서울대학교 2019.03 ~ 휴학 중

주전공: 컴퓨터공학부

  • 평균 학점: 3.9/4.3 (미확정)
  • 이수 학점/졸업필수학점: 45/41 (미확정)

통계학부 복수 전공 중

세종과학고등학교 2016.03 ~ 2019.02

직무 경험

하이퍼리즘 (https://hyperithm.com) 2021.08 ~ 현재

하이퍼리즘은 한국과 일본에 기반한 대한민국 최고의 암호화폐 자산 운용사입니다.

  • Head of Infrastructure
  • AWS/GCP 기반의 클라우드 인프라 관리
  • HFT에 최적화된 암호화폐 거래소 데이터 피드 개발 및 유지보수
    • Keywords: Asynchronous Programming, Rust, Tokio, HTTP, WebSocket.
  • L7 프록시와 같은 암호화패 거래소 데이터 피드 보조 인프라 관리
  • 트레이딩 전략 관리 인프라 개발 주도
  • 1Password-AWS 연동에 특화된 AWS 인프라 전용 DevOps 툴킷 개발

서울대학교 CARES Lab 연구 인턴2021.03.26 ~ 2021.06.30

동년 2월에 UROP(undergraduate research opportunities program)로 시작하여 3월에 유급 인턴으로 전환함.

FEMU SSD 에뮬레이터의 (부분적) Rust 포트인 RustFTL을 작업함.

FEMU의 FTL(flash transation layer) 부분을 Rust로 재작성하여 안전성, 성능, 간결함에 초점을 맞춘 임베디드 시스템에서의 Rust 사용례에 대해 보고함.

최종 보고서와 문서를 mdBookrustdoc으로 정리함.

CN.AI 개발 인턴2020.08.01 ~ 2020.08.28

PyO3 and HDF5를 사용하여 데이터 파이프라인을 구성해 학습 속도를 가속화함.

StyleGAN2를 사용해 두 사용자의 얼굴 이미지의 중간 버전을 보여주는 데모 페이지를 제작함.

  • 모델은 FFHQ 데이터셋으로 TensorFlow를 통해 학습되었으며 백엔드와 TCP로 통신하여 서빙함.
  • 백엔드는 Go 표준 라이브러리의 net/http 모듈과 Gorilla web toolkit을 사용하여 구성함.
  • 프론트엔드는 React로 구성함.

보유 기술

프로그래밍 언어

  • Rust(주력): Tokio 및 관련 비동기 생태계, aws-sdk-rust
  • Golang: net/http, Bolt(임베디드 KV store)
  • C
  • TypeScript: 주로 React
  • Python: Tkinter, requests, Bolt(Slack SDK)
  • 기타 사용 경험이 있는 언어: C++, Java(JVM, Android), Dart(pre-2, Flutter), OCaml

데브옵스

Jenkins 및 (비공개) 보안 플랫폼 등 다수의 온프레미스 솔루션 관리

경험:

  • AWS EC2, EC2 Image Builder, ECR 등을 사용한 CI/CD 파이프라인
  • AWS EC2 Launch Template, ECS, ECR 등을 사용한 Layer-7 HTTP 프록시 클러스터
  • AWS Systems Manager Session Manager 및 IAM을 사용한 EC2 접근 권한 미세 조정 시스템

리눅스 및 시스템 프로그래밍

지식:

  • Raspberry Pi(1B+, Zero W, 3B+) 및 Buildroot를 포함한 임베디드 리눅스 개발
  • Custom syscall 및 task scheduler를 포함한 kernel hacking

블록체인 및 탈중앙 금융

지식:

  • Proof-of-Work, (naïve) Proof-of-Stake 및 Proof-of-History와 같은 변종, Byzantine Fault Tolerance 등 일반적인 컨센서스 메커니즘
  • 탈중앙 금융의 원리와 그들의 하위 분류: money markets, 탈중앙 거래소, yield aggregators, 스테이블코인 등
  • 크로스체인/멀티체인/layer-2 생태계: Wormhole, Cosmos, Polkadot, Arbitrum, ZKSync 등
  • 영지식 증명에 대한 직관 수준의 이해와 블록체인에서의 적용 방식
  • 상술한 프로젝트 중 일부에 투자
    • 실적은 묻지 말아주시기를 정중히 부탁드립니다. (농담입니다)

기계학습 및 컴퓨터 비전

지식:

  • 회귀, 분류, 인공신경망, 정규화(regularization), 경사하강법 등 기초적 지식
  • 합성곱 신경망 및 그들의 파생, 오토인코더, 적대적 생성 신경망 및 그들의 파생

풀스택 웹 개발

경험:

  • 이 이력서 페이지.
  • WebAssembly 애플리케이션을 Rust로 작성하여 웹 데모로 배포
  • 각각 1) 모니터링 및 데이터 시각화 및 2) 간단한 CRUD 데모 기능을 갖춘 Next.js 애플리케이션 개발
  • Rust/Golang 기반 취미 수준 웹 백엔드
  • Cloudflare Workers와 같은 서버리스 엣지 컴퓨팅. 공개적으로 사용 가능하도록 배포됨

개인 프로젝트

Nerf Rust, Serde, Tokio, Tower, Hyper, HTTP 깃허브 레포지토리 링크

tower-rs와 통합된 HTTP 요청 프레임워크.

사내에서 비공개로 개발 중인 암호화폐 거래소 API를 결합성 좋은 tower::Layer로 리팩토링하려는 개인 실험 목적이며, 주된 달성 성과로 다음이 있음:

  • HTTP 백엔드 전환 가능.
  • Rate limit 설정 가능(tower-rs 제공).
  • HTTP 클라이언트 멀티플렉싱(tower-rs 제공).
  • axum과 연계한 mock testing.
  • API 응답에 기반한 자동 rate limit 조절 (TODO).

lzn Rust, Web Scraper, SQLite, Diesel ORM 깃허브 레포지토리 링크

네이버 웹툰/레진코믹스 스크래퍼. 도덕적 문제로 인해 소스를 공개하지 않았으나 안티-스크래퍼 장치가 발전함에 따라 동작하지 않게 되어서 기존에 사용했던 코드를 공개함. 동일한 이유로 무료 회차만 저장하도록 설계함.

기능:

  • SQLite 기반 스토리지 (Postgres/MySQL 등 다른 RDB로 전환 용이)
  • 로컬 브라우저에서 보기 편하도록 웹 서버 내장
  • CDN 인증 절차를 우회하도록 로그인 기능 구현
  • 만화책 뷰어와 호환되는 포맷으로 내보내기

LC-3 Toolsets Rust, LC-3, CLI, WebAssembly, PEG 깃허브 레포지토리 링크

Little Computer-3 ISA의 Rust 구현 및 도구들.

  • lc3-rs: LC-3 ISA 구현(시뮬레이터).
  • lc3dbg: 메모리/레지스터 확인 및 되감기 기능이 있는 디버거.
  • lc3asm: Full-featured LC-3 어셈블러.
  • lc3p2atest: 컴퓨터의 개념 및 실습 과목 실습 프로젝트 #2에 대한 Fuzzer.
  • lc3web: WASM으로 빌드된, 브라우저 상에서 구동되는 LC-3 연습장. 직접 써보기

Kaimak ES2015 Proxy, Web3(Metamask), Chrome Extension 깃허브 레포지토리 링크

Kaikas-Metamask 간의 API 브릿지. Ledger 하드웨어 월렛을 지원하지 않는 Kaikas를 사용하는 Klaytn DApp에 Metamask 연동 기능을 추가함.

pc.cro.sh Cloudflare Workers, Rust, WebAssembly, React, Material UI 깃허브 레포지토리 링크

메이플스토리 설정 동기화 서비스. 기술적으로는 다음의 기능들이 포함된 간단한 키-값 스토어임:

  • 데이터 검증(MS Registry export format 하의 유효한 설정 파일이어야 함)
  • 클라이언트단 AES-256 암호화/복호화(설정 파일 내에 민감한 정보가 저장되어 있는 것으로 추측)
  • reCAPTCHA V2 적용을 통한 봇 방어
  • Cloudflare Workers와 Workers KV를 기반으로 함: 경제적 효율성 증대
  • Material 스타일의 웹 UI

find.cro.sh TypeScript, React, Fuse.js, Web Scraping, Chrome Extension

메이플스토리 인벤토리/창고 검색 서비스.

다음의 요소들로 구성됨:

  • Script injection을 통해 사용자 계정에 접근하여 인벤토리/창고의 색인을 생성하고 JSON으로 내보내는 Chrome 확장 프로그램
  • find.cro.sh: 전술한 색인을 fuzzy search하는 React 애플리케이션

zandam Rust, WebAssembly 깃허브 레포지토리 링크

WebAssembly blob을 이용한 self-extracting 단일 파일 HTML 문서 생성기. pc.cro.sh의 프로토타입이기도 함.

Writeup: https://blog.cro.sh/posts/embedding-wasm-in-html

발표 자료

Introduction to NIZK Proofs

https://blog.cro.sh/slides/introduction-to-nizk-proofs-20220307.pdf

Rust 비동기 프로그래밍 (Asynchronous Rust Programming)

https://blog.cro.sh/slides/async-rust-programming-20220801-redistributable.pdf

언어

Acknowledgement

The favicon of this page was generated using following graphics from Twitter Twemoji: