← 소개 페이지

김강현Kanghyune Kim

소프트웨어 엔지니어

소리, 그래픽, 하드웨어가 맞물리는 실시간 소프트웨어를 만듭니다. 브라우저 오디오 엔진과 WebGL 렌더러부터 카메라, 프린터, 결제 단말이 붙는 키오스크까지, 밀리초 단위 타이밍과 실제 장비가 얽힌 문제를 주로 풉니다. 파서와 엔진을 라이브러리로 나누고, 그 위에 에디터와 데스크톱 앱을 쌓는 방식으로 일합니다.

Experience

VISD 팀장

2024.08 – 현재

포토 키오스크와 포토부스 브랜드들이 함께 쓰는 키오스크 플랫폼과 운영 도구 개발을 이끌고 있습니다.

  • 2024년 8월 조직의 첫 커밋부터 참여, 저장소 48개 중 38개에 직접 커밋
  • 공용 키오스크 코어와 브랜드별 키오스크 앱
  • 카메라 제어 라이브러리와 사진 프리셋 렌더러
  • 포토 프린터 SDK와 프린터 상태 모니터링, 출력 관리 프로세스
  • 다국가 결제 모듈과 공통 결제 인터페이스
  • FFmpeg 미디어 컨트롤러와 프로세스 워치독
  • 백오피스, ERP, 사내 문서와 릴리스 자동화(GitHub Actions)

TypeScript, React, Electron, Node.js, FFmpeg, GitHub Actions

Projects

BMS 툴체인

오픈소스, 개인 프로젝트

리듬 게임 채보 포맷 BMS를 읽고, 연주하고, 편집하는 도구 일체. 파서, 플레이어, 에디터를 독립 npm 패키지로 나누고 Electron 데스크톱 앱과 웹 스튜디오가 이를 조립합니다.

  • Shift_JIS, EUC-KR, GBK, Big5 등 8개 인코딩 자동 판별, 원본 인코딩 그대로 다시 저장하는 라운드트립 라이터
  • #RANDOM/#SWITCH 중첩 제어 흐름, #BASE 62, #LNTYPE 2 등 BMS 명세의 까다로운 확장까지 처리
  • Worker 게임 루프와 AudioWorklet 키음 믹서로 탭 전환이나 메인 스레드 지연에도 박자 유지
  • 960 tick/beat 노트 모델, 실행 취소, 4K–48K+4SC 레인, AI 자동 채보, 오디오 슬라이서
  • CI와 릴리스 워크플로로 데스크톱 앱 배포 자동화, 브라우저용 에디터 번들은 Docker 이미지로 배포

TypeScript, React, Electron, Web Audio, WebGL, Vite, GitHub Actions

Json-VR-Cache

오픈소스 라이브러리

WebGPU로 대용량 JSON을 GPU 메모리에 올리고 CPU에는 메타데이터만 남기는 캐시. Proxy 기반 자동 동기화, 배치 쓰기, GPU 정렬, 와일드카드 페이지 조회를 지원합니다.

TypeScript, WebGPU, IndexedDB

Quick-Sonic-Worklet

오픈소스 라이브러리

Worker 다운로드와 AudioWorklet 재생을 묶은 멀티트랙 오디오 라이브러리. EQ, 코러스, 리버브, 딜레이 등 이펙트를 재생 중 실시간으로 조절합니다.

TypeScript, AudioWorklet, Web Worker

dxf-json

오픈소스 라이브러리

CAD 도면 포맷 DXF를 JSON으로 변환하는 파서. DXF 웹 뷰어 작업에서 출발해 파싱 단계를 독립 라이브러리로 분리했습니다.

TypeScript, FxTS

DmNote BMS Plugin

오픈소스, 커뮤니티 도구

beatoraja, lr2oraja, Qwilight에서 연주 중인 곡 정보를 방송 오버레이에 실시간으로 띄우는 플러그인. SQLite 폴링과 Lua 훅 두 방식의 브리지 서버를 포함하고, Node.js 없이 실행되도록 번들링했습니다.

JavaScript, Node.js, SQLite, Lua

CPAS

설계 연구

정답이 아니라 사고 과정을 측정하는 평가 시스템 설계 명세. 시뮬레이션 환경에서 1 ms 단위로 행동을 기록하고 9개 인지 차원을 산출하는 구조를 정의했습니다.

시스템 설계, 측정 이론

rhythm-archive, k-oddress

백엔드

NestJS, Nestia, Prisma로 만든 타입 안전한 API 서버. 리듬 게임 아카이브 서비스와 한국 주소 검색 API를 구현했습니다.

NestJS, Nestia, Prisma, PostgreSQL, typia

Car Plate Recognition

초기 프로젝트

OpenCVSharp로 차량 번호판 영역을 찾는 프로그램. 평활화, 노이즈 제거, 적응형 이진화, 형태학 연산, 라벨링을 단계별로 조합했습니다.

C#, OpenCVSharp

Skills

언어
TypeScript, JavaScript, C#, Python, Java, C++
프론트엔드와 그래픽
React, Three.js, React Three Fiber, WebGL, WebGPU, Vite, Tailwind CSS
오디오와 실시간
Web Audio API, AudioWorklet, Web Worker, IndexedDB
데스크톱과 장비
Electron, .NET WinForms, WPF, OpenCV, FFmpeg, 프린터와 결제 연동
백엔드와 인프라
NestJS, Prisma, PostgreSQL, FastAPI, Docker, GitHub Actions

Writing

OpenCVSharp 영상 처리 연재와 C# 실무 팁 22편 (blog.dotoritos.net/blog)