오정록 (Jeongrok Oh)
Technical Director / MMO Server Architect
요약
매니징보다 기술을 직접 주도하는 역할을 지향한다. 디렉터 직책이 아닌 실무 트랙에서 설계 방향을 정하고 팀 표준을 세우는 방식으로 팀의 기술을 이끈다.
핵심 역량
- MMO 서버 0→1: 네트워크·동시성(락프리)·네비게이션·서버 물리·가상 액터 기반 분산 서버를 반복 설계·구축
- 폭넓은 장르·아키텍처: PC MMORPG, 모바일 RPG, 유저 창작 메타버스, 분산 서버 RPG
- 난제 해결·성능 최적화: 프로파일링으로 CPU/메모리/네트워크/DB 병목 제거, 동접·처리량 수 배 향상 (한 필드 2,000 vs 2,000 전투, 클라이언트 위임 분산 시뮬레이션·오너십 마이그레이션, 채널 없는 대규모 서비스, 동접 4배)
- 풀스택 커버: 서버 / 클라이언트 / DB / 웹 / 툴 / 개발 인프라·CI
- AI 개발 생산성: MCP 자체 구현, AI 테스트/코드리뷰 에이전트, 로컬 LLM 코딩 스택 도입 주도
경력
Technical Director · Panthera (블레이드&소울 IP 키우기류 RPG, 분산 서버 백엔드) · NCSOFT · 2024 – 현재
기술: C#, C++, Orleans, gRPC/TCP, MSSQL, Redis/Garnet, Unreal Engine 5
- 분산 서버 아키텍처 방향 결정·팀 표준 정착: Orleans Grain 모델 채택을 주도하고 gRPC→TCP 전송 계층 전환, 샤딩 기반 데이터 분산 구조 확립
- 데이터·스탯 파이프라인을 단일 소스로 표준화: proto 단일 소스에서 서버·클라 코드·CSV·유효성 검증을 자동 생성하고 스탯 계산 코드도 생성해 팀 전체 작업 방식으로 채택
- 대형 컨텐츠 서버 설계·구현: 영역전, 슬라임대난투(3:3 팀 PvP), 용던, 오픈필드 실시간 동기화, 소셜, 성장, 버프 시스템
- 부하 테스트 인프라·서버/DB 최적화 주도: gRPC 초당 24만 요청급 처리, EntityFramework 5만 TPS, 저장프로시저 전환·dacpac 형상 관리·자동 배포(CI/CD)
- AI 개발 생산성 향상 주도: MCP 서버 자체 구현, AI 테스트/코드리뷰 에이전트 팀, 사내 유출 없는 로컬 LLM 코딩 스택 구축
Technical Director · Miniverse (언리얼엔진, 유저 창작 샌드박스 MMO) · NCSOFT · 2023 – 2024
기술: C#, C++, MSSQL, Unreal Engine 5
- 대규모 UGC 처리: 단일 공간 5,000만 프랍 풀 틱 실시간 처리 + 동시 2,000명 밀집 건축. 액터 모델 락프리 동시성·zero-copy 브로드캐스트로 동기화 락 경합 제거
- 대량 공간 데이터·영속화 설계(집터 단위 계층 저장, 3단 공간 분할, 시야 기반 전송)
- 렌더링·물리 최적화: ISM 인스턴싱·물리 청킹으로 드로우콜 20,967→503, FPS 16.5→47.4
- 서버사이드 다이나믹 네비메시(복셀 기반, 영향 타일만 재계산) + Godot 기반 서버 시각화 뷰어 자체 개발(지형·길찾기·충돌 시각화)
- 클라이언트 위임 분산 시뮬레이션: 로블록스 분산 물리(네트워크 오너십) 개념을 NPC AI에 자체 구현, 최근접 클라이언트 위임·오너십 무중단 마이그레이션, 서버는 권위 검증·중계만 담당
- 유저 창작 하우징 컨텐츠: 전기 회로 로직 키트(14종), 결정론적 동기화 이동체, 프로시저럴 사운드
Technical Director · Miniverse (웹·고도엔진, 유저 창작 메타버스) · NCSOFT · 2021 – 2023
기술: C#, C++, Node.js, WebSocket, MSSQL, MongoDB, Godot Engine
- 유저 창작 스크립트 런타임 R&D: 무패치 로직 다운로드 실행, 서버 권위 판정(치팅 방지)
- 서버 구조 전환(Node.js→C# 데디)·소켓/프로토콜 성능 리서치, 루아 런타임 부하 한계를 규명해 다인스턴스 스케일아웃 구조 결정
- 웹 실시간 협업 에디터: 1,000명 이상 동시 커서 동기화, 충돌·병합 없는 동시 편집
- 클라이언트 엔진·플랫폼 선정 리서치(Unity/Godot/웹/모바일 연동 매트릭스 실증)
- 프랍 조합 미니게임 구현(서바이벌, 페인트맨): 유저 스크립트·프랍 메시지 교환만으로 제작, 사내 취업 설명회 공개 (영상)
Technical Director · AION2 · 아이온 모바일 (MMORPG) · NCSOFT · 2016 – 2021
기술: C++, C#, MSSQL, Unreal Engine 4
- MMO 서버 프레임워크 전체를 백지에서 설계·구축(네트워크·스레딩·메시지 처리·네비게이션·서버 물리·필드 오브젝트). NCSOFT AION실 입사 후 초기 '아이온 모바일'(조직명 Tempest)로 시작해 AION2로 발전, 언어(C++→C#)·DB·장르 전환에 대응하며 처음부터 재설계
- 채널 없는 대규모 밀집 전투 최적화 (NCDP 2019 최우수상 발표작): 한 시야 1,000명 전투에서 발생하는 초당 1,300만 패킷을 ① 네트워크 부하 기준 Session/Field 서버 분산(처리량 3배↑) ② 셀 기반 가상 관심영역 브로드캐스팅(밀집도와 무관하게 전송량 고정) ③ Packet Shrink 비트 패킹(트래픽 ~36%↓)으로 해결하고 이후 2,000 vs 2,000 전투로 확장
- 3D 공간 비행 네비게이션 처리(복셀 기반 3D 네비게이션)
- 서버 충돌·물리 아키텍처, 대규모 Agent(NPC) 처리, 심리스 필드 R&D, 서버 비주얼 디버깅 툴 개발
- 2017 NCSOFT 디렉터스컷에서 최초 공개 (영상1 · 영상2)
이전 경력(2007–2015): 국내·일본·중국·태국 등에서 다수 타이틀을 정식 상용 서비스·라이브 운영하며 서버 안정화·장애 대응·라이브 패치를 직접 경험.
프로그램팀장 · ONE for kakao (모바일 액션RPG) · 코어크리에이티브 · 2014 – 2015 · Unreal Engine 3
- 서버 구조·네트워크 프레임워크 전체 구현(C++ boost asio·C#·언리얼 클라), 서버 컨텐츠·클라 UI·툴 다수·사내 개발환경 구축, 서버 팀 리드, 국내 정식 서비스
서버파트리더 · 트리니티사가·드리프트러시 (모바일 RPG·레이싱) · 위메이드엔터테인먼트(오르카) · 2013 – 2014 · Unity3D
- 웹(HTTP)+소켓(TCP) 통합 C# 서버 프레임워크 전체 구현, 서버 컨텐츠·결제 검증·운영툴·부하 테스트, 서버 파트 리드
프로그램팀장 · 형!·오빠·드래곤 도와줘 (모바일 시뮬레이션RPG) · 자이언트드림 · 2011 – 2013 · Unity3D · KB온라인 개발팀이 투자 유치로 설립한 신설 법인, 연속 근무
- C++ 서버·Unity 클라 전반, 국내·일본·중국 서비스 및 직접 운영, 자동화 툴·DB 최적화, 프로그램 팀 리드
서버팀장 · 슈퍼 다다다 (PC 캐주얼 레이싱) · KB온라인(SEED) · 2010 – 2011 · Gamebryo · 팀과 함께 자이언트드림으로 이동, 연속 근무
- 서버 프레임워크 재검토·교체, 서버 컨텐츠·빌링/보안 연동·모니터링 툴, 국내·태국 서비스, 서버 팀 리드
서버팀원 · 와일드 플래닛 (PC MMO 슈팅 · 서버 사이드 물리 현 NVIDIA PhysX) · 액토즈소프트(프롬나인) · 2007 – 2010 · Gamebryo
- 파티·클랜전·점령전·전장 등 대규모 멀티플레이 시스템을 서버·클라 양쪽 구현, DB 튜닝, 자동 패치·리소스 관리·서버 컨트롤 시스템, GM 툴
개인 프로젝트 (GitHub)
기술: HTML, JavaScript, Python
- 원인마다 증상·그래프 모양·확인 방법·주 담당 팀과 팀별 할 일·공신력 있는 출처(출처 주소 630개, 발행처 83곳)를 달아 장애 기록과 대조할 수 있게 정리
- 조건을 바꿔 증상을 재현하는 실험 28개, 누가·언제·어떤 모양으로 원인 순위를 매기는 진단 도우미, 공개 장애 사후 분석 12건과 상황별 절차
- 한국어 원문과 11개 언어판, 원인·증상별 정적 페이지와 llms.txt·구조화 데이터로 검색엔진·AI 인용 대응
기술: HTML Canvas, three.js(WebGL), Playwright, ffmpeg
- 영상 파일이 아니라 코드로 그리는 웹 페이지: 모든 프레임이 시간의 순수 함수라 브라우저에서 바로 재생·탐색되고, 같은 페이지를 헤드리스 렌더링으로 MP4로 굽는다
- MMO 서버·네트워크 12개 주제(서버 틱, 보스 렉, TCP 재전송, Nagle, 러버밴딩 등)를 주제마다 영상·설명·용어집 세트와 모바일 세로 영상으로 제작, 전문가 관점 검수 단계 포함
- 설명 방식 7가지(분해해 들어가기, 흐름을 빛으로, 실물 늘어놓기, 게임 화면 재현, 직접 조작, 바닥부터 쌓기, 그려 가며 설명)를 3D(WebGL)로 실험하고 주제마다 맞는 방식을 골라 적용
- 제작 과정을 Claude Code 스킬(motion-skills 레포의 tech-motion-explainer)로 만들어 같은 형식·품질로 반복 제작. 이 이력서의 모션 그래픽 페이지도 같은 방식으로 제작
기술: GitHub Actions, Claude Code 플러그인(훅·스킬·서브에이전트), Make
- Claude Code·Copilot·Cursor·Codex·Gemini 어떤 도구로 작업해도 AGENTS.md 하나(약 60줄)의 규칙을 읽고 같은 검사를 통과해야 main에 반영되는 구조
- 로컬 가드레일: Claude Code 플러그인(보호 경로 수정·main 커밋·강제 푸시 차단 훅, 스킬 11개, 서브에이전트 5개), pre-commit·make check로 사람의 커밋에도 같은 검사
- GitHub 거버넌스·자동화: 룰셋(PR·사람 승인·squash), CODEOWNERS, AI 사용 공개 PR 템플릿, 워크플로 22개(이슈 분류, ai:ready 이슈 구현, AI 리뷰, CI 실패 수정, 설계 겹침 알림, 릴리스)
- AI 작업은 각자 자리의 로그인으로 실행(API 키 불필요), 서버 자동화는 사내 로컬 LLM 또는 Anthropic 선택, 여러 레포는 템플릿 복사와 플러그인 마켓플레이스로 갱신
Hellfarm 🔒: 디아블로식 파밍 + 뱀서라이크 한 손 조작 핵앤슬래시 액션 게임 (Windows·Android) · 1인 개발 · 🔒 비공개
기술: Godot, C#
- 노드/GC 없는 데이터지향 엔진: 모든 엔티티를 SoA 플랫 배열로, 시스템당 드로우콜 1개(MultiMesh)·물리엔진 대신 배열 기반 공간해시로 동시 1억 2,800만 마리 시뮬레이션 + 만렙 스킬 전투 실측 (스폰·렌더까지는 1억 9,200만 확인)
- 호드 뭉침의 O(n²) 폭주를 38배 최적화: 이웃 검사 하드바운드·화면 밖 LOD 시간분할·격프레임 그리드 재구축·무락 병렬화로 프레임당 2,500ms → 38ms (4코어·소프트웨어 GL 최악 조건). SIMD는 효과 0으로 측정·기각, 병목은 메모리 대역폭임을 규명
- 셰이더 인스턴싱: 아틀라스 프레임·피격 플래시를 INSTANCE_CUSTOM 인스턴스 데이터로 셰이더에서 처리
- 이동·분리 병렬화: 마리당 상태는 자기 인덱스에만 쓰는 구조라 Parallel.ForEach가 안전. 사격·자폭 부수효과는 Interlocked 큐에 모아 메인 스레드에서 드레인, 난수는 결정론적 해시로 대체해 코어 수에 비례해 확장
- 그리드 빌드 융합: 직렬 100만 삽입 루프 대신 병렬 이동 패스 안에서 무락(lock-free) 버킷 푸시로 재구축, 마지막 직렬 O(n) 단계를 제거해 다중코어 암달 병목 방지
ZeroLlama 🔒: 소비자용 GPU에서 로컬 모델로 코딩하려고 만든 에이전틱 코딩 클라이언트 (VS Code 확장) · pre-alpha · 🔒 비공개 · 35개 모듈 27,515 LOC
기술: TypeScript, llama.cpp
- 자동 튜닝: 복잡한 옵션을 몰라도 GPU·VRAM에 맞춰 적합한 모델·양자화를 제안하고 KV 캐시 크기·레이어 수(ngl)·컨텍스트 크기를 최적으로 설정, 근거도 함께 노출. MoE 전문가를 CPU RAM으로 오프로드해 8GB VRAM으로도 35B급(활성 ~3B) 구동
- 양자화 모델용 도구 재설계: 시스템 프롬프트를 통상의 1/8로 축소, 편집 블록을 9가지 방식으로 대조해 공백·들여쓰기가 어긋나도 적용, <think> 다음 턴 전 제거, 수정 후 린터로 에러 되돌림
- 도구 호출에 의존하지 않는 메모리: 저장·회수를 모델 밖에서 처리(작은 모델의 도구 미호출 회피), 노이즈를 걸러 불필요한 회수는 줄이면서 필요한 기억은 유지
- 작은 컨텍스트에 모든 입력을 담는 설계: 로그 핵심 줄만 요약(수천 줄→수십 줄), 저장소 중요도 추림, 창이 차면 마무리 유도·대화 압축
- 소비자용 GPU에서 로컬 모델 코딩이 어느 수준까지 되는지 리서치
기술: Kotlin, ONNX Runtime, Python
- Stable Diffusion 추론 파이프라인을 안드로이드 네이티브로 구현
- 모바일 기기에서 로컬 모델을 이용한 이미지 생성이 어느 수준까지 되는지 리서치
기술: Vanilla JS, Node, Vercel
- 단일 HTML 앱 + 언어별 정적 페이지 프리렌더 빌드 파이프라인, SEO(JSON-LD·hreflang·sitemap)
- 현세대 LLM 모델의 다국어 언어 자원의 한계를 리서치
기술 스택
- Languages: C++ (11-20), C#, TypeScript/JavaScript, Python, Lua, GDScript
- Server / Distributed: Orleans, gRPC/TCP, ASP.NET, Node.js, IOCP, WebSocket
- Data: MSSQL(저장프로시저), Redis/Garnet, MongoDB, EntityFramework, Sharding
- Client Engine / Nav / Physics: Unreal Engine 3/4/5, Unity3D, Godot Engine, Gamebryo, Recast/Detour, Voxel Navmesh
- AI Development: Claude/Agent SDK, MCP(자체 구현), Local LLM(llama.cpp)
- Infrastructure: Perforce, Git, Jenkins, .NET Aspire
수상 · 활동
- NCDP 개발자 컨퍼런스 최우수상 (2019), 주제: "1000 vs 1000 대규모 유저를 채널 없이 서비스 하기 위한 고민들"
- 서버 최적화 · 기술 자문 (타 프로젝트·타 회사): 트릭스터M 서버 최적화 파견, 안정 동접 2천→8천(4배)
- NCSOFT 시니어 전문면접관 · Job Title 운영위원 (Programming, 2019–2021)
- ETRI 공동 기술 개발 (2010): 시나리오 기반 온라인 게임 서버 부하 테스트 기술 개발 협력
학력
- 홍익대학교 컴퓨터정보통신소프트웨어전공 (2000 – 2007)