# 오정록 (Jeongrok Oh) 상세 이력서 전문 > AI 검색·답변 엔진을 위한 전문(full text) 버전입니다. 요약본은 https://jungrok5.github.io/resume/llms.txt 에 있습니다. > 원본 웹 이력서: https://jungrok5.github.io/resume/ · 최종 갱신: 2026-10-07 > 이 문서의 모든 수치는 실제 프로젝트에서 측정한 값입니다. 연락처: jungrok5@gmail.com · GitHub: https://github.com/jungrok5 · LinkedIn: https://www.linkedin.com/in/jungrok5 # 오정록 (Jeongrok Oh) · Technical Director / MMO Server Architect 매니징보다 기술을 직접 주도하는 역할을 지향합니다. 디렉터 직책이 아닌 실무 트랙에서 설계 방향을 정하고 팀 표준을 세우는 방식으로 팀의 기술을 이끕니다. ## 0. 인적 사항 항목 | 내용 이름 | 오정록 (Jeongrok Oh / 吳貞祿) E-mail | jungrok5@gmail.com GitHub | github.com/jungrok5 LinkedIn | linkedin.com/in/jungrok5 학력 | 홍익대학교 컴퓨터정보통신소프트웨어전공 졸업 (2000-03 ~ 2007-02) 병역 | 육군 병장 만기전역 (전산, 2001-11 ~ 2004-01) 직무 | 게임 서버 프로그래머 / TD (Technical Director) ## 1. 핵심 역량 - MMO 서버를 백지에서 반복 설계·구축: 네트워크·동시성(락프리)·네비게이션·서버 물리·가상 액터 기반 분산 서버를 여러 프로젝트에서 0→1 (리드 서버 프로그래머 / TD) - PC MMORPG, 모바일 캐주얼·액션RPG·시뮬레이션RPG, 유저 창작 메타버스, 분산 서버 기반 RPG 등 다양한 장르·플랫폼·아키텍처 경험 - 난제 해결과 성능 최적화: MMO 특유의 서버 난제를 풀고 프로파일링으로 CPU·메모리·네트워크·DB 병목을 제거해 동접·처리량을 수 배로 (한 필드 2,000 vs 2,000 대규모 전투, 거대 NPC 전투, 파괴되는 지형, 캐릭터 충돌 처리, 3D 비행 네비게이션, 클라이언트 위임 분산 시뮬레이션·오너십 마이그레이션, 채널 없는 대규모 동시 서비스, 트릭스터M 동접 2천→8천, DB 부하 개선 등) - 서버부터 클라이언트·툴·웹·운영툴·개발 인프라·CI까지 커버하는 폭넓은 실무 - 새로운 기술에 거부감 없이 빠른 습득·적응, 여러 언어 사용 / 최근 AI(MCP·에이전트·로컬 LLM)로 팀 개발 생산성 향상과 보안·비용·효율 측면의 로컬 LLM 활용에 관심을 두고 진행 ## 2. 경력 요약 기간 | 회사 / 조직 | 직무 | 직책 | 주요 프로젝트 (플랫폼·장르) 2024-11 ~ 현재 | ㈜NCSOFT / Panthera개발실 | TD | 팀원 | Panthera (블소 IP 키우기류 RPG · 분산 서버) 2023-02 ~ 2024-11 | ㈜NCSOFT / 소셜컨버전스실 | TD | TD | Miniverse PC버전 (언리얼엔진, 하우징 MMO) 2021-06 ~ 2023-02 | ㈜NCSOFT / Miniverse (NR Seed) | TD | 팀원 | Miniverse Web버전 (고도엔진, 유저창작 메타버스) 2020-11 ~ 2021-06 | ㈜NCSOFT / AION2 (서버 교체 이후) | TD | 팀원 | AION2 서버 교체·재구축 · 트릭스터M 최적화 파견(2020-12~2021-02) 2017-02 ~ 2020-11 | ㈜NCSOFT / AION2 | TD | TD | AION2 (MMORPG) 2016-01 ~ 2017-02 | ㈜NCSOFT / Tempest | 서버 프로그래머 | 팀원 (팀장 대행) | AION Tempest (아이온 모바일 MMORPG) 2014-10 ~ 2015-11 | ㈜코어크리에이티브 / 개발 | 서버 프로그래머 | 프로그램팀장 | ONE for kakao (모바일 액션RPG) 2013-08 ~ 2014-10 | ㈜위메이드엔터테인먼트 / 오르카 | 서버 프로그래머 | 서버파트리더 | 트리니티사가, 드리프트러시 (모바일) 2011-06 ~ 2013-07 | ㈜자이언트드림 (KB온라인 개발팀이 설립) / RedRocket KB온라인에서 연속 근무 | 프로그래머 | 프로그램팀장 | 형!도와줘!, 오빠 도와줘!, 드래곤 도와줘 (모바일) 2010-05 ~ 2011-06 | ㈜KB온라인 / SEED 팀과 함께 자이언트드림으로 이동 | 서버 프로그래머 | 서버팀장 | 슈퍼 다다다 (PC 캐주얼 레이싱) 2007-03 ~ 2010-05 | ㈜액토즈소프트 / 프롬나인 | 서버 프로그래머 | 팀원 | 와일드 플래닛 (PC MMO 슈팅) ## 3. 경력 상세 ### 3-1. Panthera (블레이드&소울 IP 키우기류 RPG · 분산 서버 백엔드) 〔현재 프로젝트〕 - 기간: 2024-11 ~ 현재 - 회사 / 부서: ㈜NCSOFT / Panthera개발실 (→ 서버팀) - 직무 / 직책: TD / 팀원 (기반 설계·아키텍처·컨텐츠·최적화·개발 인프라 전반) - 개발환경: C#, ASP.NET Core, Orleans(Grain 분산 서버), gRPC → TCP, EntityFramework, C++(StatFormula/C++20), UnrealEngine5, MSSQL(저장프로시저·dacpac), Redis / Garnet, Protobuf, .NET Aspire, Perforce, Jenkins, Claude Code · MCP, 로컬 LLM(llama.cpp) 핵심 성과 - gRPC RPS: 순수 gRPC 서버 1만 유저/50만 요청 → 초당 약 24만 req (동일 조건 WebAPI는 약 12만으로 gRPC 우위) - EntityFramework TPS: 100만 호출 단순 SELECT 초당 4.5만 → (Compiled Query·AsNoTracking) 5만 건 - TokenTests: Debug 로그 제거로 10초 → 0.5초 (5천 명 접속 실패 해결), 이후 1만·5만 명 안정 - 전 서버 캐릭터명 검색: 더미 1억 건 벤치로 MSSQL Full Text Search 채택 - 로컬 LLM 코딩 스택: 체계적 검증으로 3모델 배포, 구형 RTX 2080 Ti(11GB)에서 재현성 검증 주요 역할 및 담당 - Orleans 분산 서버 기반 구축: 클러스터/Grain 모델 연구·환경 구축, Grain 배치·역할별 서버 분리, 랭킹·커뮤니티 서비스 Grain 전환, graceful shutdown·종료 순서 처리 - 데이터 파이프라인 proto 단일 소스화: C++ protoc 플러그인 자체 구현으로 서버·클라 코드 + CSV·유효성 검증 자동 생성, StaticData 검증 도구화(ExitCode로 CI 연동), 저장프로시저·에러코드 자동 생성 - StatFormula(전투 스탯) & 전투 검증: C++ DLL 서버 연동, Roslyn Source Generator + 클라 CRTP 검증으로 신규 스탯 추가 비용 최소화(서버 약 15줄), zero-copy 마샬링, 클라-서버 랜덤 시드·결정론 교차 검증 - 샤딩 & DB 형상 관리: ShardDbContext·DispatchProxy 기반 샤드키 자동 주입, SQL Server DB 프로젝트 + dacpac 증분 배포 CI/CD - 대형 컨텐츠 설계·구현: PVP·랭킹(ELO·퀵매치), 영역전(대규모 진영전), 슬라임대난투(3:3 팀 PvP), 용던·챕터·방치보상, 소셜(친구·럭키백·알림·닉네임 검색), 버프·칭호, 오픈필드 실시간 이동 동기화 - DB 성능 개선: 저장프로시저 전면 교체, WRITELOG 감소·배치 처리·데드락 구조 개선 등 대규모 데이터베이스 부하 개선 - 부하·통합 테스트 인프라: 스크립트 FSM 부하 테스터, 분산 실행, 통합 테스트 핫리로드·젠킨스 daily, 몽키 테스트 - 네트워크·버전 정합성: gRPC→TCP 전송 교체(토글 어댑터·분산 트레이스·압축), proto 체크섬·버전 미스매치 알림, 클라-서버 결정론성 비교 체계 - AI · Claude 기반 개발 도구: 부하 테스트 MCP 서버(자연어→gRPC 시퀀스, 리플렉션 API 자동 탐색), AI 테스트 에이전트 팀(테스터/분석가/DB/서버 매니저 4종, 자연어로 테스트→로그 분석→DB 검증→보고서 자동화), 멀티에이전트 코드리뷰, 로컬 LLM 코딩 스택(llama.cpp, 3모델 배포, 사내 코드 외부 유출 없음) - 운영툴·개발 인프라: 웹콘솔·서버 클러스터 시각화, 개발 통합 런처 + 온디바이스 LLM 어시스턴트(자연어→치트 명령·로그/크래시 분석·CL 리뷰), 빌드/CI(.NET 10 전환·리눅스 빌드) 주요 성과 요약 - 기반 설계·개선: 동시성 제어 기반(Lock 없는 컨텐츠·Orleans), 데이터 파이프라인·유효성 검증, 월드 통합 캐릭터 관리, 브로드캐스팅 구조, 저장 프로시저·DB 데드락 개선 - 컨텐츠: PVP·랭킹·영역전·스탯·버프·방치보상·챕터·소셜·전투·칭호·용던 - 최적화: API·gRPC/Orleans 레이어·DB 계층·브로드캐스팅·스탯포뮬러 - 개발 환경 개선: 문서/코드 생성 자동화, 통합 테스트 환경, AI 개발 도구·다수 툴 개발 ### 3-2. Miniverse PC버전 / 언리얼엔진 (유저 창작 MMO → 하우징 MMO) - 기간: 2023-02 ~ 2024-11 (약 21개월) - 회사 / 부서: ㈜NCSOFT / 소셜컨버전스실 - 직무 / 직책: TD / TD - 개발환경: C#(SpaceServer), C++·UnrealEngine5, TypeScript(데디), MSSQL, Godot(서버 뷰어), Perforce - 배경: 프로젝트 리셋 후 언리얼엔진 교체·조직 재구축. 방향이 하우징 MMO로 바뀌며 MMO 서버로 교체. "수천만 개의 프랍을 단일 공간에 배치해도 견디는" 대규모 UGC 처리를 서버·클라 양쪽에서 "총량 대신 활성량만 처리" 철학으로 설계·구현. 핵심 성과 - 단일 공간 5,000만 개 이산 메시 프랍을 풀 틱(타임딜레이션 없음) 처리 (서버 스테이지 Network/Space/Broadcast 0ms대, Job 7~31ms) - 한 시야(viewport) 내 128만 개 프랍(콜리전 ON) 렌더링 유지 (밀집 11fps / 원경 26.6fps) - 동시 1,000~2,000명대 빌더(1,100·2,100 봇, 실 클라 패킷 캡처 재생)가 한 공간에서 동시 밀집 건축, 나선/원형 1.5만~1.8만 프랍 즉시 생성 중에도 서버 0ms대(Job 18~19ms) - ISM 인스턴싱 최적화 실측(10만 개 스폰): 드로우콜 20,967 → 503회, FPS 16.5 → 47.4, 스폰 49.8s → 2.6s - 서버 메모리 28GB(피크 40GB, 프랍당 약 560B), 클라 17GB(피크 19GB) 주요 역할 및 담당 - 리비저닝·기반 설계: 언리얼 개발 환경 구축, 프로그램 목표·스크립트 로직 제작 방향 수립, 공간·채널·프랍·테이블 구조 설계 - 데디서버 컨텐츠·최적화: 빌드 모드(Grab·Undo·자석·미세조정·벽지·피아노 프랍 등), 스폰·RPC·복제·콜리전 최적화, 언리얼 메모리릭 추적·개선 - MMO 서버 전환: 패킷 제너레이터, 서버측 네비메시 Export·빌드, 서버 지형·충돌 처리 기반, Godot 기반 서버 시각화 뷰어 자체 개발 - MMO 서버 컨텐츠: 발사체·플랫포머·자동문·마인크래프트 레드스톤식 로직 프랍·하우징 리플레이, 프랍 조합 미니게임 프로토타이핑 - 성능·최적화: 프랍 ISM 교체, 바디인스턴스 직접 제어, 콜리전 청크 단위 ON/OFF, 네비메시·ISM 리빌드 배치 처리, 프랍 데이터 캐시·가상 파일 시스템 - 서버 사이드 다이나믹 네비메시: 복셀 기반 비동기 빌드, 영향 타일만 재계산, NPC 이동 처리 - 클라이언트 위임 분산 시뮬레이션(오너십 마이그레이션): 로블록스 분산 물리(네트워크 오너십) 개념을 NPC AI에 자체 구현. 최근접 클라이언트에 시뮬레이션을 동적 위임, 유저 이동에 따라 오너십 무중단 이전, 서버는 권위 검증·중계 전담 기술 심화 - 서버 동시성(C#): 공간당 단일 디스패처 스레드가 공유 상태를 독점 변경하는 액터 모델 락프리 구조. Network→Writable→Space→Broadcast 스테이지 분리(읽기 병렬·쓰기 직렬)로 락 경합 0, IOCP 직접 구현·코어 고정, HangDetector - 네트워크·대역폭: Chunk 공간분할 + AOI 차등 시야 복제, Baked Prop 페이징(부하 기반 동적 시야 스케일링), ReferenceBuffer zero-copy 브로드캐스트(직렬화 1회·할당 1회), 8KB 배칭 - 클라 렌더/물리(UE5): 논리/표현 이원화(정적=ISM 인스턴스), 인스턴스 색상=GPU 커스텀 데이터, Prop Chunk(플레이어 인접 27칸만 충돌 바디를 생성해 프랍이 1억 개라도 물리 씬 상주 바디는 상수), 오프라인 사전 가공, FPS 기반 자동 화질 강등 - 다이나믹 네비메시·서버 물리: 복셀(Recast HeightField) + DotRecast로 프랍 변경 시 영향 타일만 재계산(수~수십 ms), Jitter2 충돌 쿼리 전용, 투사체 CCD - 영속화·대량 데이터·프랍 컨텐츠: 집터 단위 계층 더티 플래그 + 1초 배치 저장, 최악 51억 프랍을 정량 분석해 3단 공간 분할·SightIn 재전송 제거, 전기 회로 시스템(14종, 순환 구조적 차단)·MovingPlatform(스플라인 공유 4B 동기화)·클라이언트-드리븐 NPC(시뮬 위임·오너십 마이그레이션·이동 클램프 검증으로 부하가 'NPC 총수'가 아닌 '유저 주변 활성 NPC 수'로 수렴) 업무 성과 - 2차 사내 FGT 진행 - 대규모 UGC 처리 기법·규모 실증 ### 3-3. Miniverse Web버전 / 고도엔진 (유저 창작 Web MMO 메타버스) - 기간: 2021-06-21 ~ 2023-02 (약 20개월), 조직 코드명 NR Seed / M1·M2 (2021-06-21 반이동) - 회사 / 부서: ㈜NCSOFT / Miniverse (NR Seed) - 직무 / 직책: TD / 팀원 (팀원이지만 비전 구체화·기술 R&D·서버 프레임워크 기술 리딩) - 개발환경: C++, C#, Javascript, GodotEngine, Linux, Windows, MSSQL, MongoDB, Node.js, React, ASP.NET, WebSocket, HTML5, WebGL / Git, Visual Studio, VSCode, Jira, Confluence - 배경: "유저가 세상을 만든다"는 비전으로 참여. 서비스 플랫폼·엔진 결정까지 여러 기술·엔진·영역을 넘나들며 리딩, 스크립트 기반으로 유저가 게임을 만드는 기반 전반을 직접 구축. 주요 역할 및 담당 - 허브스페이스 서버: recast 기반 지형 시스템 개발. UE4 네비게이션메시 정보를 서버에서 쓰도록 익스포트, recast를 C#으로 포팅하고 네비메시 빌더 구현, 길찾기·네비게이션 모듈화 - 클라이언트 기술 스택 리서치: Android/iOS 네이티브 ↔ Godot·Unity 연동, Android ↔ Three.js·WebView, Godot 일부 화면 렌더링, React ↔ Godot, HTML5 JS 한글 입력, Web Worker, Flutter ↔ Godot, UNO, ASP.NET ↔ React - NRChat 커뮤니티 서버 구축 (공간 기반 UCC 커뮤니티 플랫폼): ASP.NET 웹서비스 프레임워크, ASP.NET WebSocket 실시간 서비스 프레임워크, 로그인·계정생성·서버 생성/리스트·채널 생성/리스트, 채팅(룸 생성·입퇴장·채팅), 이미지·동영상 업로드/다운로드 서버·클라 모듈 - 실시간 협업 에디터 태핑: JS 2D canvas 드로잉, Node.js·WebSocket 드로잉 객체 실시간 동기화, 동시 편집 문서 충돌·병합 없는 버전관리, JS 고성능 네트워크 처리 리서치, 웹에서 1000명 이상 마우스 커서 이동 처리, 편집 문서 기반 게임 play, Raycasting NPC 이동, 로블록스식 분산 물리 리서치, BehaviorTree + JS 런타임 실행 기반 유저 로직 제작 - Miniverse EDIT & PLAY (Godot): Node.js 서버 → C# 교체, JSON 문자열 → binary 프로토콜 교체, Unity/Godot GDScript/Godot C# 비교, 실시간 객체 추가용 Godot 네비게이션 처리, ASSET 업로드·다운로드 서비스, 플레이 중 ASSET 배치·스트리밍 객체 생성, 서버사이드 루아 스크립트(CPU 제한·Sandbox), ASP.NET 웹소켓 실시간 서버 → 고도 데디서버 교체, 웹 기반·VSCode 플러그인 기반 루아 스크립트 개발 환경, 고도 기반 미니게임 엔진, 데디서버 개발 환경, 루아 → GDScript 교체, 고도 리소스·소스코드 암호화, 자동화 테스트 스크립트·키보드/마우스 녹화·재생, 다수 클라이언트 테스트용 원격제어(스트리밍) - (2022년 심화) 스크립트 기반 유저 창작 환경 구축: 로블록스·ZEP·제페토·메이플스토리월드 분석·직접 개발, GDScript·VisualScript 런타임 실행·교체, PICO-8 모방 "GICO-8" 엔진을 고도로 구현하고 슈팅 게임 제작, 웹/VSCode/인게임 스크립트 에디터, 스마트프랍스크립트 개념, 커서 기반 3D 객체 배치, 프랍(텔레포트·도어·스위치·무빙플랫폼·NPC), 하우징·서바이벌·페인트맨 샘플, 유저 스크립트 UI 제작, 미니게임 통합, 유저 단위 저장소 - 백엔드·프로파일링: 웹소켓 기반 대규모 유저 처리, 유저 창작 기반 동기화 정보 설계, 애셋 스트리밍·캐시, 공간/채널 설계, 루아 스크립트·스토리지 시스템, 공간 분산 처리, 서버 분산 구조, 데디 기반 서버 런처, TcpSocket/WebSocket/보안 웹소켓 성능 리서치, node.js·고도·C# 봇 클라이언트, 백엔드 최적화·부하분산 계획 - 개발 프로세스: C#·GDScript 패킷 제너레이터, 소스·리소스 암호화, 윈도우 앱 빌드, NC 알림 시스템 연동, 웹 기반 클라이언트 로그 시스템, 엔진 로그 파일 분리 핵심 성과 - 프로토타입(Node.js) → C# 데디 서버 전환, 1차 구조 개선 후 동접 2,000 / 3,000 / 5,000 시나리오 부하 검증 - C# vs Node.js 서버 수용력 벤치: 동일 조건에서 C#이 약 1.5배 (C# 2,500 안정 / Node.js 1,500 안정) - 웹 실시간 협업 에디터 프로토타입에서 1,000명 이상 동시 마우스 커서 이동 처리, 충돌·병합 없는 동시 편집 버전관리 - 소켓 성능 리서치: 순수 소켓 기준 WebSocket이 TCP 대비 약 3배 느리지만 상위 레이어를 최적화하면 격차가 사라짐(구현체보다 처리 레이어가 성능 좌우)을 규명 - 루아 서버사이드 스크립트 부하 한계 규명(단일 스레드 500개 60ms / 1,000개 130ms), 이를 근거로 다인스턴스 스케일아웃 전환 판단 기술 심화 - MMO식 send/recv 패킷 배칭을 WebSocket에 이식: send 큐에 모아 count 헤더로 병합 전송(최대 2,048개)·수신측 일괄 파싱, 전송 완료 콜백 기반 적응형 플러시(저부하 저지연·고부하 고효율 자동 조절). Node.js·C# 동시 구현, 이후 ENP 서버 프로덕션 구조로 발전. 실측: 브로드캐스트 처리량 3배·서버 CPU 1/7, 클라 배칭 단독으로 서버 CPU 45% 절감, uWebSockets.js·Bun에 이식해도 동일 재현(언어·런타임 불문 유효 검증). - 서버 아키텍처·부하 방법론: 방(room) 목적지 라우팅 특성상 L4 로드밸런싱이 불가해 커스텀 로드밸런서 설계, 정량 논거(동접 100만·서버당 7천 수렴 → SpaceService 142대)로 게이트웨이 직접 연결 채택. PING을 CLIENT/SERVER/NETWORK 계층으로 분해 계측(서버 네트워크 처리 3ms 미만). 봇 클라 자체 병목을 발견해 C#으로 재구현, 외형/데이터 캐릭터 분리로 순수 서버 부하 측정. - 유저 창작 스크립트 런타임(핵심 R&D): "런타임 로직 레이어" 개념 정립(Static/Dynamic Layer, 무패치 런타임 코드·애셋 다운로드, Goal 판정은 서버 전용으로 치팅 방지). Godot 런타임 스크립트 주입 3종 기법을 엔진 소스 레벨까지 분석, MiniScriptApp(스페이스 앱)·SmartPropScript(프랍 앱, 프랍 간 메시지 교환)·스키마리스 커스텀 RPC 구현. GDScript↔VisualScript 변환 실험으로 노드 기능 해상도의 범용성-난이도 트레이드오프 도출. - 클라 기술스택 검증: Unity vs Godot(GDScript/C#) 벤치, 멀티플랫폼 연동 매트릭스(Android/iOS Native+Godot 부분 렌더링, Three.js+WebView, Flutter·React+Godot) 실증, 웹 GDScript 에디터를 VSCode 플러그인(가상 파일시스템 확장)으로 포팅, EnpClient PCK 암호화(엔진 소스 수정, GDScript AES256 / PCK XOR, 로딩 영향 오차 내). - 프로토타입/컨셉 증명: PICO-8 벤치마킹 팬터지 콘솔 "gico-8"을 Godot로 자작(슈팅 게임 완주)해 "쉽고 빠른 제작"의 원천 사고실험, 프랍 조합만으로 Survival·페인트맨(4인) 게임 구현, 한 공간 다중 게임 동시 플레이 성공. - ZEPETO식 모딩 전략 검증(후반): 독립 Godot 빌드(game.pck)·웹 멀티게임을 Miniverse 위에 동적으로 주입하는 데 성공해 "어떤 고도 게임이든 Miniverse 위에서 서비스 가능" 실증, 고급 유저용 에디터 커스터마이징+PCK 업로드 병행 전략과 JS/TS 창작 기반 필요성 제시. 업무 성과 - 사내 FGT 진행 - 신입사원 공채 취업 설명회에서 Miniverse(웹버전) 공개 (영상) - 인큐베이팅 단계에서 정식 프로젝트로 승격 (+ 알파) ### 3-4. 트릭스터M (캐주얼 MMORPG) 서버 최적화 파견 〔AION2 재직 중〕 - 기간: 2020-12 ~ 2021-02 (약 3개월), AION2 소속을 유지한 채 파견 - 회사 / 부서: ㈜NCSOFT / 트릭스터M 사업부 (파견 지원) - 직무 / 직책: TD (서버 최적화 지원·자문) / 팀원 - 개발환경: C#, Unity, Linux, Windows, Mysql / Git, Visual Studio - 배경: 타 프로젝트(트릭스터M)의 요청으로 서버 최적화 지원 파견. 작업 시작 시 동접 약 2천 명 → 최적화 후 약 8천 명대까지 안정적 서비스 가능하도록 성능 개선 후 파견 종료. 주요 역할 및 담당 - 최적화 영역: CPU, 메모리(메모리릭 제거), 필드·월드 수용량, 네트워크 트래픽, 데이터베이스 처리 / 최적화·보안·안정성 검토·가이드 - 세부 최적화 내역 - 순환 참조·잔존 객체 제거, 특정 객체 집중 종료 처리 - 메모리릭 원인 객체 생성·소멸 트래킹 기능 추가 - 프로파일러에 안 드러나는 병목 확인용 윈도우 성능 모니터 연동 - 데이터량·read/write 빈도에 따른 dictionary/list 적합성 검토 - 브로드캐스팅 최적화(시야 통합), DB commit 캐시 정보(횟수·콜스택) 추적, 캐시 기록 지연 추적, Akka 메시지큐 사이즈 추적 - DB 처리를 메인 디스패처 스레드풀과 분리 - 동적할당 객체 사전 생성(pool)화, 패킷 수신부 동적할당 제거, Akka 메모리풀을 세션 단위 독립 풀로 사용 - 소켓 옵션(nagle·타임아웃·버퍼 크기) 성능 테스트 - 시야 진입 브로드캐스팅 패킷·이동 브로드캐스팅 패킷 동적할당 제거·재사용 - 로그 파일 기록 동기 → 비동기, 메시지당 파일 open/close를 모아서 일괄 기록 - 패킷 조합 버퍼 정적화·메모리풀, 소켓 send를 gathering 전송용 버퍼로 개선 - 불필요한 런타임 동적 리플렉션 제거, 윈도우 & 리눅스 성능 비교 테스트 - 가이드 전달: 암호화 위험·성능, 트랜잭션 일관성, C# 객체 생성·소멸 처리, 잦은 DB 접근 최소화, DB 처리 검토·평가, 브로드캐스팅 최적화·필드 수용량 증대 업무 성과 - 국내 정식 서비스 ### 3-5. AION2 서버 교체 이후 (MMORPG) - 기간: 2020-11 ~ 2021-06 (약 7개월, Miniverse 이동 직전까지) - 회사 / 부서: ㈜NCSOFT / AION2 - 직무 / 직책: TD / 팀원 (2020-11-16 직책을 TD → 팀원으로 반납, 실무 집중) - 개발환경: C++, UnrealEngine4, Windows, MSSQL / Perforce, Visual Studio, Redmine, StarUML - 배경: 프로젝트 방향 재설정에 따라 서버를 교체·재구축하는 단계로, 이 시기에는 서버 실무(지형·네비게이션·비주얼 툴)에 집중했습니다. - 비고: 이 기간 중 트릭스터M 서버 최적화 파견(2020-12 ~ 2021-02)을 다녀옴 (트릭스터M 파견 항목 참조, 별도 소속 이동 없는 파견 지원). 주요 역할 및 담당 - 교체 서버 코드베이스 분석: 네트워크·스레딩·메시지 처리 모델 분석 및 개선 리서치, 심리스용 필드 & 액터 메시지·업데이트 처리 분석 및 한계 개선, 지형 처리·길찾기 분석 - 서버 지형 처리 & 길찾기 개선: 지형 데이터 익스포트 툴, 10K × 10K 필드 처리용 지형·길찾기 정보 생성·로드 개선, 길찾기 문제 개선 - 복셀 네비게이션 & 복층 구현 + 서버사이드 3D 비주얼 툴 (2.5D 셀 기반 → 3D 복셀 기반 전환, 비행·3D 네비게이션 가능화) - 10K × 10K 복셀 지형 데이터 구조 설계 - 복층 가능하도록 길찾기·객체 이동 로직 구현·수정 - 서버상 OpenGL로 3D 맵뷰 구현 - 지형 충돌 처리(활강, line of sight) - 3D 기본 객체 표현·픽킹·카메라 구현·구조 설계 - 복셀 네비게이션 디버깅 기능 - 서버사이드 2D 비주얼 툴 추가·개선: UI 모듈 업데이트, 렌더러 OpenGL 교체, 대규모 NPC 스폰, 에디터 멀티 뷰포트·탭, 오브젝트 찾기 개선, 메시지큐 모니터, 창 레이아웃 수동 저장, DebugDraw 정책, 에디터 렌더링 로직 개선, 필드 이미지 기반 이미지맵(필드 크기 제한 없이 2D 뷰어) - 서버 기반 자동 전투 리서치: Offline 상태일 때 BehaviorTree 기반 유저 캐릭터 자동 전투 업무 성과 - 필드 크기를 10K × 10K(10km)로 확장 - 필드를 2.5D에서 3D로 전환 (복층·비행 네비게이션 가능화) - 서버사이드 3D 뷰어 도입 ### 3-6. AION2 (MMORPG) - 기간: 2017-02 ~ 2020-11 (약 45개월) - 회사 / 부서: ㈜NCSOFT / AION2, 아이온 모바일(Tempest)에서 이어져 처음부터 구축한 프로젝트 - 직무 / 직책: TD / TD (직책 TD는 ~2020-11-16까지 유지) - 개발환경: C++, C#, UnrealEngine4, Windows, MSSQL, ASP.NET, Javascript / Perforce, Visual Studio, Redmine, StarUML 주요 역할 및 담당 (TD 역할 수행 중 실무 위주 기록) - 서버 구조 & 프레임워크 전체 베이스 구현: 네트워크, 스레딩, 메시지 처리, 길찾기 & 네비게이션, 필드 오브젝트 구조 - 서버 컨텐츠 기본 구현: 캐릭터 이동 & 활강, 전투 & 스킬 & 버프, 파티 & 파티매칭, NPC FSM & 이동 & 그룹 이동, 대기열 - 대규모 트래픽 처리 기술 리서치 - 한 필드 2000 vs 2000 전투 구현 - 네트워크 트래픽 분산 서버 구조 - 셀 기반 분산 브로드캐스팅(기존 시야 주변 셀 브로드캐스팅 대비) - 사용되지 않는 비트를 제거해 네트워크 트래픽 감소 - NCDP2019 발표 (대규모 유저를 채널 없이 서비스 하기 위한 고민들) - 서버 충돌 처리 방향성 수립·아키텍처 설계 - 클라이언트 스태틱 메시를 서버에서 충돌 가능한 환경 구축 - PC vs PC, NPC vs NPC, PC vs NPC 충돌 기본 구현 - 사용 충돌체 종류·개념, 시야 Ray·이동 Ray 개념 정리 - 서버-클라 충돌 정보 사용 방향 정리 및 UE4 데이터 익스포트 리서치 - PhysicsWorld, PhysicsSystem, CollisionShapes 아키텍처 설계 - 충돌 성능 확보 리서치(grid, kd-tree, 시야 ray 높이 기반 전처리 데이터 생성 등) - 서버 사이드 대규모 Agent 처리 리서치: PC vs NPC 20000개 이동 충돌 테스트, 네비게이션·길찾기 Agent 재구현, 이동 범위 기반 충돌 분산·업데이트 tick 분할 - 거대 객체 전투 방안 리서치: 방향·위치·높이 기반 부위 판정, 리소스 부위 데이터로 서버 본 애니메이션 처리 판정, 애니메이션 HIT 정보 추출로 충돌 처리·이동 애니메이션 동기화, 이동 궤적으로 큰 객체 스킬 처리 - 멀티코어 대용량 메시지 처리 리서치: lock 없는 동기화를 넘어 모든 코어 효율 사용, 메시지큐 producer-consumer 효율 처리, 스레드풀 job 비동기 핸들링별 코어 활용성 - 심리스 필드 리서치: 넓은 지형 네비게이션·빌드 성능 개선, 필드 단위 구성, 경계면 데이터 전달, 심리스 필드용 서버 구조 - 개발 환경 편의·효율성: 운영툴(웹) 비주얼 기능(맵뷰어·draw·UI), 서버상 비주얼 디버깅, AI 실시간 디버깅, 기획 테이블 빌드 타임 검증·Report 시스템, 클라·서버 Crash Report 수집, 버그를 게임 정보·스크린샷과 함께 제보하는 시스템, 분산 환경 프로토콜 이동·데이터 비주얼 디버깅, 로그·수치 수집 확인 시스템 업무 성과 - 2017 NCSOFT 디렉터스컷에서 AION2(아이온 모바일) 최초 공개 (영상1 · 영상2) - AION IP 차기작으로 AION2 프로젝트 인정 - 조직 단위 SEED에서 CAMP로 승격 - NCDP 개발자 컨퍼런스 최우수상 수상, 주제: "1000 vs 1000 대규모 유저를 채널 없이 서비스 하기 위한 고민들" (구성원 다수 NCDP 수상) ### 3-7. 아이온 모바일 → AION2 시작 (Tempest) 〔NCSOFT AION실 입사〕 - 기간: 2016-01 ~ 2017-02 (약 13개월) - 회사 / 부서: ㈜NCSOFT / AION실 → Tempest (AION2의 시작) - 직무 / 직책: 서버 프로그래머 / 팀원 (프로그램팀장 대행) - 개발환경: C++, C#, UnrealEngine4, Windows, MSSQL, Mysql, ASP.NET, Javascript / Perforce, Visual Studio, Redmine, StarUML 주요 역할 및 담당 - NCSOFT AION실로 입사, 이 프로젝트를 처음부터 시작: AION실 내에서 프로토타이핑 → 정식 프로젝트로 인정 → 조직이 'Tempest'로 분리. 초기엔 '아이온 모바일'이었고 이후 'AION2'로 발전. 서버를 처음부터 전담 구축 (정식 팀 이전이라 팀장이 없어 팀장 업무 대행) - 언어·DB·장르 변화에 모두 대응하며 서버 구조 설계·프레임워크 구현 - (초기) 액션RPG · C++ · MSSQL 기반 설계·구현 - (변경 후) MMORPG · C# · Mysql 기반 재설계·구현 (비용을 줄이려고 Linux/Mysql/C#으로 전환, 구조·프레임워크 재구축, Seed 목표는 병행 가능한 형태로 유지) - MMORPG 대규모 전투 기반 시스템·컨텐츠 구현(C++, C#): 전송 속도·빈도 극대화 리서치, lock 없는 컨텐츠 설계·구현, 캐릭터 동기화(이동), 아이템 & 인벤토리, 전투 & 스킬, MMO 필드 & 오브젝트, NavMesh 길찾기 - 운영툴 구현: 서버와 실시간 통신 가능한 웹 기반 프레임워크, 캐릭터 조회·삭제·채팅, 서버 상태 조회·ON/OFF - 성능 테스트 시스템: 테스트 서버·클라이언트 명령·결과 조회 툴, 봇 & AI - 지속적 시스템 개선·성능 향상: 프로파일링으로 hot path 제거, 문제 추적(웹로그·slack 로그·REST API), 실시간 Visual 디버깅용 서버상 맵·오브젝트 3D Viewer, UE4 엔진 길찾기 코드 분석·서버 적용 - 개발 환경 구축: 위키·이슈관리 시스템 도입·연동, 자동화 빌드 딜리버리 시스템 - 팀장 대행: 업무 분담, 일정관리·목표 제시, 팀간 업무 조율 업무 성과 - AION IP를 이은 정식 모바일 프로젝트로 인정 - AION 모바일 프로젝트 조직으로 독립 ### 3-8. ONE for kakao / 프로젝트V (가칭) (모바일 액션 RPG) - 기간: 2014-10 ~ 2015-11 (13개월) - 회사 / 부서: ㈜코어크리에이티브 / 개발 - 직무 / 직책: 서버 프로그래머 / 프로그램팀장 (서버 구조 설계·프레임워크·컨텐츠·클라이언트·툴·사내 개발환경 구축) - 개발환경: Windows, MSSQL, IIS, ucloud(KT), Visual Studio, boost asio(TCP/IOCP), SVN, UnrealEngine3, Eclipse, Xcode, Redmine, StarUML 주요 역할 및 담당 - 서버 구조 설계 - 네트워크 프레임워크 전체 구현: C++(boost asio) 서버 프레임워크, C# 서버 프레임워크, 언리얼스크립트·C++ 클라이언트 네트워크 프레임워크 - 서버 컨텐츠 구현(C++): 로그인/계정/캐릭터, 전투 시작·종료·보상, 버프/스킬, 채팅, 비접속 자동성장, 퀘스트, 수련/습격 및 복수/현상수배 구조 설계·구현, 옵션, 실시간 1:1 PVP·팀 PVP·난투장, 광장, 문자열 필터링·공지 전송·다국어·운영자 명령어·부하테스트 - 서버 구현(C#): 안드로이드·iOS 푸시 전송, 푸시 예약 발송 시스템 - 클라이언트 구현(UnrealScript, C++): 언리얼 콘솔 기능 확장, 커맨드렛 확장, 비휘발성 데이터 기능, HTTP 호출 모듈화, DB 테이블에서 템플릿 클래스 자동 로드·저장, 실시간 동기화용 네트워크 PawnBase, QWORD 유틸·UI 컴포넌트 일부 - 클라이언트 UI(Hud) 구현: 로그인·팝업·상점·채팅·퀘스트·옵션·도감, 캐릭터/스킬/뽑기/아이템강화 UI 연출 - 툴 구현: (C#) 언리얼 AndroidPackager·프론트엔드 수정(빌드 자동화), (Java) 내부 테스트용 APK 다운로드 런처, (ASP.NET) 운영툴, (C++/MFC/Java) 클라이언트 패치 시스템, (JS) 포토샵 UI 이미지 익스포터(PNG·HTML·UnrealScript UI 코드 생성), (C#) UI 텍스처 아틀라스 생성 툴 - 사내 개발 환경 구축: 홈페이지·웹서버·FTP·SVN·레드마인·이메일·자동빌드 및 빌드머신 - 팀장 업무: 서버 신입 교육(C#·Unity3D·Web·Database), 팀원 관리·역량 강화 교육 업무 성과 - 국내 정식 서비스 - (당시) 인도네시아 퍼블리싱 계약 진행 ### 3-9. 드리프트러시 (모바일 레이싱) - 기간: 2013-08 ~ 2014-10 기간 내 (약 7개월) - 회사 / 부서: ㈜위메이드엔터테인먼트 / 오르카 - 직무 / 직책: 서버 프로그래머 / 서버파트리더 - 개발환경: Windows, MSSQL, IIS(WebServer), Visual Studio, SVN, Unity3D, Xcode, Eclipse, Redmine, StarUML 주요 역할 및 담당 - 서버 구현(Classic ASP Web): 구조 설계, 프레임워크, 모든 컨텐츠 개발 - 서버 구현(C# Web ASP.NET): GooglePlay·AppStore 결제 검증 통합 서버, Classic ASP 서버를 C#(ASP.NET)으로 재구현 - 클라이언트 구현(Unity3D, C#, Java): 타이틀→로비 입장 데이터 로드·로그인 프로세스, 위미SDK(카카오) 연동 전체(로그인·쿠폰·공지·결제·푸시·로그), 웹뷰 플러그인, 웹통신 네트워크 모듈, 기획 템플릿 데이터 로드·실시간 패치 - 툴 구현: 개발 웹툴(에러코드·패킷 내용·송수신 함수 자동생성 API Document), 운영툴(ASP.NET MVC, Bootstrap, JS), 빌드→핸드폰 설치 자동화 시스템, 자동 빌드 시스템 업무 성과 - FunQA/FQA 진행 후 프로젝트 드랍 ### 3-10. 트리니티사가 / 큐브프로젝트 (가칭) (모바일 RPG) - 기간: 2013-08 ~ 2014-10 기간 내 (약 5개월) - 회사 / 부서: ㈜위메이드엔터테인먼트 / 오르카 - 직무 / 직책: 서버 프로그래머 / 서버파트리더 - 개발환경: Windows, MSSQL, Redis, IIS(WebServer), TCP/IOCP, Visual Studio, SVN, Unity3D, Redmine, StarUML 주요 역할 및 담당 - 웹(HTTP) & 소켓(TCP) 모두 포함하는 서버 프레임워크 전체 구현(C#) - C#에서 고성능을 내는 네트워크 모델 연구 - 서버 네트워크 코어 모듈 / 클라이언트 웹·소켓 통신 모듈 - 로깅·덤프·서비스·윈도우서비스·타이머스레드·스트림 등 유틸 기능 - 서버 네트워크 모듈 확장 - 서버 구현(C# Web ASP.NET & Application): 구조 설계, 로그인·인증, 접속종료·재접속, 채팅(채널·월드·시스템)·필터링, Redis 랭킹, 운영자 명령어, 로그 모듈 - 클라이언트 구현(Unity3D, C#): 네트워크 모듈, 가상 서버, 데이터 구조 설계, 템플릿 로드·저장, DB 테이블 구조 소스코드 자동생성 툴 - 운영툴(ASP.NET, C#, JS): PC·모바일 범용 웹, 서버 실시간 채팅, 실시간 모니터링·제어·수치 확인, 메뉴·계정 권한 자동 설정, 클라와 동일한 운영자 명령어 - 부하 테스트 시스템: 다중 스트레스 테스트 서버, 운영툴 통합 테스트·결과 확인 기능 업무 성과 - 국내 클로즈베타 서비스 (FunQA 진행) ### 3-11. 드래곤 도와줘 (가칭) (모바일 카드배틀) - 기간: 2011-06 ~ 2013-07 기간 내 (약 5개월) - 회사 / 부서: ㈜자이언트드림 / RedRocket(날개달린고양이) - 직무 / 직책: 프로그래머 / 프로그램팀장 - 개발환경: Windows, MSSQL, ucloud(KT), TCP/IOCP, Visual Studio, SVN, Unity3D, Xcode, Eclipse, StarUML 주요 역할 및 담당 - 서버 구현(C++): 서버 구조 설계, 프레임워크, 서버간·클라이언트 세션관리, 게임 컨텐츠 설계·기본 구현, 시뮬레이션 전투 - 서버 구현(C#): GooglePlay·AppStore·TStore 결제 검증 통합 서버 - 서버 구현(ASP Web): HTTP/JSON 웹 게임 서버, 데이터 조작·암호화 보안 처리 - 클라이언트 구현(Unity3D, C#): Native·웹통신 네트워크 모듈, 컷씬(연출) 제작 프레임워크, 기획 템플릿 데이터 로드 모듈, AssetBundle 생성·패치·버전관리 통합 자동화, Python·C# 소스코드 생성 툴, 그래픽 리소스 아틀라스 변경 확인 툴(NGUI), NGUI 코드 자동생성·자동화 플러그인, 빌드→핸드폰 설치 자동화(안드로이드 앱) - 팀장 업무: 신입 교육, 전체 일정 스케줄링, 개인 역량 강화용 자체 연구 발표 프로그램 진행 업무 성과 - (별도 기재 없음, 개발 단계) ### 3-12. 오빠 도와줘! 온라인 (모바일 시뮬레이션 RPG) - 기간: ~2013 (약 12개월) - 회사 / 부서: ㈜자이언트드림 / RedRocket(날개달린고양이) - 직무 / 직책: 프로그래머 / 프로그램팀장 - 개발환경: Windows, MSSQL, ucloud(KT), TCP/IOCP, Visual Studio, SVN, Unity3D, Xcode, Eclipse, StarUML 주요 역할 및 담당 - 서버 구현(C++): "형도와줘" 서버 기반으로 "오빠 도와줘" 서버로 수정, 신규 시스템 전체 설계·구현, 형도와줘 계정 DB 연동 - 클라이언트 구현(Unity3D, C#): 클라 수정, 선물상자 UI(NGUI 도입 후 신규 UI), 동생 & 고양이 감정 AI, 결제 및 UI, 리소스 관리 모듈, AssetBundle 패치 - 안드로이드·iOS 런처 구현(Eclipse/Java, Xcode/obj-c): 런처 UI, 웹연동 공지, 결제 UI·결제, 안드로이드 푸시 C2DM → GCM 교체 - 효율화: 자동화 빌드 시스템(VB, WScript), 기획 데이터 DB 입력 툴(Excel, VB) - 직접 서비스 운영: 형도와줘 운영툴 웹(ASP·PHP) 기능 추가(이벤트·결제 통계·그래프), 월드 추가 작업(서버 셋팅·DB·운영툴·홈페이지), 서버 패치·DB 백업·인덱스 재설정·점검 - 중국 샨다 서비스: 샨다 모바일 플랫폼(GPlus) 모듈(안드로이드·iOS), 로그인·결제 서버 연동, 중국 출장 - 팀장 업무: 신입 교육(개인 역량에 따라 4~7주), 프로그램 전체 일정 스케줄링 업무 성과 - 국내 정식 서비스 (종료) - 중국(샨다) 퍼블리싱 계약 ### 3-13. 형! 도와줘! 온라인 (모바일 시뮬레이션 RPG) - 기간: 2011-06 ~ (약 10개월) - 회사 / 부서: ㈜자이언트드림(KB온라인 개발팀이 투자 유치로 설립한 신설 법인, 연속 근무) / RedRocket(날개달린고양이) - 직무 / 직책: 프로그래머 / 프로그램팀장 (서버 프레임워크·컨텐츠·툴 구현·서비스 운영) - 개발환경: Windows, MSSQL, ucloud(KT), TCP/IOCP, Visual Studio, SVN, Unity3D, Xcode, Eclipse, StarUML 주요 역할 및 담당 - 서버 구현(C++): 개인상점, 칭호/업적, 히든 코스, 서바이벌 모드, 길드 & 길드전, 비속어·금지어 필터링, GooglePlay·AppStore 푸시 메시지 서버 - 서버 성능 향상: DB(MSSQL) 악성 쿼리 진단·수정, 인덱스 재설계, 관련 소스코드 수정 - 클라이언트 컨텐츠 구현(Unity3D, C#): 개인상점, 칭호/업적 + 최적화·안정화 - iOS 버전 개발 (크로스플랫폼 엔진이나 일부 기능 수정·추가) - 서비스 플랫폼 대응: iOS(Xcode/obj-c) 런처 신규 제작, APNS 시스템, IAP(결제) 시스템, 안드로이드 런처 유지보수, C2DM(안드로이드 푸시) 시스템 - 효율화: 플레이 모드에서 UI 좌표 수정·저장 기능 구현 (NGUI 같은 플러그인이 없던 시절 개선) - 게임 서비스: 운영(GM) 툴 웹(ASP), 서버 모니터링용 안드로이드 위젯 앱(다운 알람·상태 조회) - 직접 서비스 운영: 결제시스템 운영, 홈페이지 게시판 유저 응대, KT 클라우드 서버 셋팅·점검·패치·안정화, 무통장 입금 확인 및 아이템 자동 지급용 SMS 전송 시스템(안드로이드폰) 개발 - 일본 MTI 서비스: 일본 모바일 플랫폼 모듈(안드로이드), 로그인·결제 서버 연동, 유니코드 버전으로 클라·서버·DB 컨버팅 업무 성과 - 국내 정식 서비스 (2011-06 ~, 현재 종료) - 일본(MTI사) 오픈 서비스 (2012-01, 현재 종료) ### 3-14. 슈퍼 다다다 (PC 캐주얼 레이싱) - 기간: 2010-05 ~ 2011-06 (13개월) - 회사 / 부서: ㈜KB온라인 / SEED - 직무 / 직책: 서버 프로그래머 / 서버팀장 (서버 프레임워크·컨텐츠·툴 구현) - 개발환경: Windows, MSSQL, TCP/UDP, IOCP, P2P, Visual Studio, SVN, SourceSafe, AlienBrain, Gamebryo, Redmine, StarUML 주요 역할 및 담당 - 서버 프레임워크 교체 - 기존 서버팀이 모두 나간 상태에서 투입 - 기존 서버 프레임워크 재검토 후 교체 판단 및 교체 진행 - 클라이언트 네트워크 라이브러리 수정 - 일부 로직 UDP → TCP로 변경 / NAT 판별 및 홀펀칭 로직 수정 - 서버 컨텐츠 개발(C++): 커플 시스템, 멀티트랙 모드, 프시켓 모드(좀비 모드), 광장 시스템, 낚시, 트레이닝, 가차폰 시스템, 퀘스트, 그림첩, 쿠폰번호 발급 기능 및 툴(MFC) - 게임 서비스 작업 - 퍼블리셔 웹 로그인 모듈 / 빌링 모듈 서버 연동 - 보안모듈 서버 연동 및 자동 패치 기능 - 각종 이벤트 진행 시 툴(웹)·서버·DB 작업 - 운영(GM) 툴, 서버 ON/OFF 모니터링 툴(MFC 유지보수), 서버 모니터링 툴 웹 재구현, 서버 상태(HDD·메모리·CPU) 모니터링 툴 웹 구현 - 태국 서비스 작업: 서버·DB 셋팅, 로컬라이징, 태국 GM 툴 교육, 태국 빌링(TrueMoney) 서버 연동, 태국 출장 업무 성과 - 국내 클로즈베타 (2010-08) / 국내 오픈베타 (2010-12 ~ 2011-12) - 태국 클로즈베타 (2011-03) / 태국 오픈베타 (2011-03 ~ 2011-05) - (재직 중 최우수 직원 선정) ### 3-15. 와일드 플래닛 (PC MMO 슈팅) - 기간: 2007-03 ~ 2010-05 (38개월) - 회사 / 부서: ㈜액토즈소프트 / 프롬나인 - 직무 / 직책: 서버 프로그래머 / 팀원 (서버·클라이언트 컨텐츠·툴 구현) - 개발환경: Windows, MSSQL, TCP/IOCP, IIS, Visual Studio, SVN, Gamebryo, 물리(현 NVIDIA PhysX), Mantis, StarUML 주요 역할 및 담당 - 서버·클라이언트(UI) 컨텐츠 구현 - 채팅 및 채널 / 비속어·금지어 필터링 - 파티(효과·보상·룰렛) & 파티매칭 시스템 - 클랜 & 클랜전 시스템 - 개인상점 & 오픈마켓 - 전장(대기열 기능, 인던 형태) 시스템 - 점령전(일반 맵에 인원 제한 없이 다수 대 다수) 시스템 - 명예 시스템 / NPC 대사 기능 / NPC AI 코드 리팩토링 - 데이터베이스 튜닝: DB 쿼리 최적화 및 인덱스 재설계 - 자동 패치 시스템 - 패치 업로더 툴(MFC, 웹): 버전관리 및 패치 데이터 생성 후 FTP 업로드 - 패치 다운로더 툴(MFC, ActiveX) - 팀 내부 툴 업데이트 및 CBT 서비스 클라이언트 업데이트 적용 - 리소스 관리 시스템 개발 - 리소스 관리 서버(C++) / 리소스 관리 툴(MFC) - 작업 단위 할당 → 팀원 업로드 → 책임자 검수 형태의 작업+파일 관리 시스템 구현 - 서버 컨트롤 시스템 - 서버 컨트롤 서버(C++) / 컨트롤 툴(MFC) - 서버 상태 모니터링, 서버 ON/OFF, 전체 서버 패치 기능 - 서비스 운영 툴 개발: GM 툴(웹) 개발, 서버·클라이언트 패치 담당 업무 성과 - 국내 클로즈베타 서비스 (2010-04) - 국내 정식 서비스 (오픈 서비스는 미참여) ## 4. 개인 프로젝트 (GitHub) AI·모델을 도구로, 각 도메인에서 어디까지 만들 수 있는지 실험해 본 프로젝트들. ### 4-1. 게임 렉 백서: 온라인 게임 렉 원인 백과 (공개 웹 · 12개 언어) - 무엇: 온라인 게임의 렉 원인 228가지를 내 게임 화면부터 서버 데이터베이스까지 13개 층과 3개 주제(동기화 설계, 일부에게만 생기는 문제, TCP 재전송)로 나눠 설명하는 공개 백과. 유저 제보나 장애 기록을 보고 원인과 담당 팀을 가려내는 데 쓴다. MMO 사례를 중심으로 썼다. - 기술: HTML · CSS · JavaScript(프레임워크 없음) · Python 빌드 · jungrok5.github.io/mmo-lag-anatomy · github.com/jungrok5/mmo-lag-anatomy (MIT) - 내용: 원인마다 왜 → 그러면 → 화면에서는의 세 단계, 관련 증상, 네 가지 요인(지연·지터·손실·정체), 누가·언제 겪는지, 수치 감각, 그래프 모양(13가지), 확인 방법(확인할 곳·이러면 맞음·아님·확인 수단), 주 담당 팀(게임개발팀·인프라팀·외부)과 팀별 할 일, 공신력 있는 출처(표준 문서·커널·OS·클라우드·엔진·DB 공식 문서·논문, 출처 주소 630개·발행처 83곳). - 실험: 조건을 바꿔 보는 실험 28개. 렉 실험실(증상 8종 재현), 동기화 방식 비교, TCP 재전송, 틱 예산, GC 멈춤, 커넥션 풀, 백분위 읽기 등. - 판정 도구: 누가·언제·어떤 모양으로 원인 순위를 매기는 진단 도우미, 범위 → 시점 → 계층 순의 판정 흐름과 신호표, 공개 장애 사후 분석 12건, “패치 이후 렉”·“해외 국가 추가” 단계별 절차. - 배포: 글꼴까지 넣은 HTML 파일 하나(오프라인에서도 열림). 한국어 원문과 11개 언어판, 언어별 원인·증상 정적 페이지, llms.txt·구조화 데이터·sitemap으로 검색엔진·AI 인용에 대응. ### 4-2. Hellfarm 🔒: 핵앤슬래시 액션 게임 (Windows·Android) 1억 마리 안에서 만렙 스킬 6종이 구멍을 뚫으며 5초에 208만 마리 처치. HUD의 obj 99,549,966이 실측값 (i5-9600K 6코어 · 봇 셀프플레이 인게임 녹화) - 무엇: 디아블로식 아이템 파밍과 뱀서라이크(대규모 몹 처치)를 합친 한 손 조작 액션 게임. - 기술: Godot · C# · 🔒 비공개 - 구현: 노드/GC 없는 데이터지향 엔진. 모든 적·탄환·이펙트·젬을 노드가 아닌 SoA 플랫 배열로 두고 시스템당 드로우콜 1개(MultiMesh, RenderingServer 버퍼 업로드 프레임당 1회, 화면 밖 컬링), 물리엔진 대신 배열 기반 공간해시 그리드로 충돌·범위 쿼리 전부 처리. - 성능: 동시 1억 2,800만 마리 시뮬레이션 + 만렙 스킬 전투 실측 (16초에 153만 킬), 스폰·시뮬·렌더까지는 1억 9,200만 마리 확인. 1억 마리 전투는 영상으로도 녹화(5초에 208만 킬). 측정 장비는 게이밍 상급기가 아닌 i5-9600K 6코어 · Radeon Pro 580X · RAM 32GB. 출하 캡은 PC 100만 / 모바일 5만. 천장보다 낮춰 실플레이 여유를 둔 값이고 그 위는 디버그 전용 --enemycap=N으로 열어 측정. - 최적화 스택 (합계 ~38배): 호드가 뭉치면 이웃 검사가 O(n²)로 폭주(100만 뭉침 = 프레임당 2.5초). ① 분리 검사 마리당 하드바운드 ② 캡 비례 해시 테이블(20만 초과 시 2^18 버킷) ③ 화면 밖 LOD 시간분할(4프레임에 1회, dt×4) ④ 격프레임 그리드 재구축 ⑤ 아래의 병렬화·그리드 빌드 융합으로 프레임당 2,500ms → 35~40ms (4코어·소프트웨어 GL 최악 조건, 8코어+ PC는 ~20ms). SIMD 프리패스는 효과 0으로 측정되어 기각. 병목이 연산이 아닌 메모리 대역폭임을 규명하고 기록. - 셰이더 인스턴싱: 아틀라스 프레임·피격 플래시를 INSTANCE_CUSTOM 인스턴스 데이터로 셰이더에서 처리. 개체별 애니메이션·피격 표현을 CPU 비용·추가 드로우콜 없이 GPU에서 병렬 처리. - 이동·분리 병렬화: 마리당 상태는 자기 인덱스에만 쓰는 구조라 Parallel.ForEach가 안전. 사격·자폭 같은 부수효과는 Interlocked 큐에 모아 메인 스레드에서 드레인, 난수는 결정론적 해시로 대체해 코어 수에 비례해 확장. - 그리드 빌드 융합: 직렬 100만 삽입 루프 대신 병렬 이동 패스 안에서 무락(lock-free) 버킷 푸시(CAS)로 재구축. 마지막 직렬 O(n) 단계를 제거해 다중코어 암달 병목 방지. 버킷 체인 순서의 비결정성은 모든 쿼리가 실좌표 거리검사를 하므로 무해. ### 4-3. ZeroLlama 🔒: 소비자용 GPU에서 로컬 모델로 코딩하려고 만든 에이전틱 코딩 클라이언트 (VS Code 확장) - 무엇: 소비자용 GPU(4~24GB)에서 양자화된 로컬 모델로 코딩할 수 있게 만든 에이전틱 코딩 클라이언트. 기존 에이전트/런타임은 클라우드 대형 모델을 전제로 설계돼 이 환경에서 제약이 큰데, 그 격차를 아래 레이어로 메웠다. - 기술: TypeScript · llama.cpp · 🔒 비공개 (pre-alpha) · src/zerollama/ 아래 35개 모듈 27,515 LOC(테스트 제외) 서브시스템 - 차별점 (소비자용 GPU·양자화 모델 시나리오 전용 레이어): - 자동 튜닝: 복잡한 옵션을 몰라도 GPU 사양·VRAM에 맞춰 적합한 모델·양자화를 제안하고 KV 캐시 크기·GPU에 올릴 레이어 수(ngl)·컨텍스트 크기·flash-attn 등을 최적으로 설정한다. 왜 그렇게 잡았는지 근거도 함께 보여주고(원하면 직접 조정 가능), MoE 모델이 OOM 나면 전문가(expert) 레이어를 CPU RAM으로 오프로드해 8GB VRAM으로도 35B급(활성 ~3B) 모델을 구동한다. 활성·공유 부분만 GPU에 두고 전문가는 CPU RAM에 둔다. - 양자화 모델용 도구 재설계: 작은 모델·작은 컨텍스트(8~32K)에서도 실제로 쓸 수 있도록 도구를 다시 만들었다. 시스템 프롬프트를 통상의 1/8로 줄여 사고할 공간을 확보한다. 편집 블록을 9가지 방식으로 대조해 공백·들여쓰기가 조금 어긋나도 적용되게 하고, 추론() 블록은 다음 턴 입력 전에 제거하며, 코드 수정 후 ESLint·TypeScript·ruff·cargo·go를 돌려 에러를 모델에 되돌려준다. - 도구 호출에 의존하지 않는 메모리: 작은 모델이 메모리 도구 호출을 자주 빠뜨리는 문제를 피하려 저장·회수 판단을 모델 밖에서 처리한다. 자동으로 저장하고 매 턴 관련 기억을 프롬프트에 붙여주되, 노이즈를 걸러 불필요한 회수를 크게 줄이면서(측정상 회수 토큰 −92%) 정작 필요한 기억은 유지한다. 임베딩 모델 다운로드 없이 SQLite FTS5로 구현. - 작은 컨텍스트에 모든 입력을 담는 설계: 8~32K 창에 프롬프트·기억·코드·로그가 다 들어가도록, 로그는 핵심 줄만 요약하고(5,000줄→100줄 수준), 저장소는 tree-sitter+PageRank로 중요도를 매겨 예산 안에 포함하고, 창이 차오르면 마무리를 유도하거나 대화를 압축한다. 입력이 차지하던 공간을 줄여 추론에 쓸 여유를 확보한다. - 폰 원격 (계정 불필요): PC와 폰을 6자리 PIN·QR로 한 번 연결하면 폰 브라우저에서 진행 상황 확인·도구 실행 승인·모델 전환. 별도 클라우드 계정을 만들지 않는다. - 엔지니어링: 하드웨어 감지 NVIDIA(nvidia-smi)/AMD·Vulkan/Apple Metal, JIT 프로비저너(모델 선택→llama.cpp 다운로드→인자 튜닝→채팅 배선 자동화), 실제 import를 grep해 미연결 모듈을 표시하는 자가 감사 리포트. 대부분 모듈이 자체 단위 테스트 포함. - 리서치: 소비자용 GPU에서 로컬 모델 코딩이 어느 수준까지 되는지 리서치. ### 4-4. ondevice-imagen: 온디바이스 이미지 생성 앱 - 무엇: 날씨·장소·시간 같은 메타정보를 토대로 그림엽서 이미지를 온디바이스에서 생성하는 앱. - 기술: Kotlin · ONNX Runtime · Python · github.com/jungrok5/ondevice-imagen (실기기 검증, 연구 R&D) - 구현: Stable Diffusion 추론 파이프라인을 안드로이드 네이티브로 구현. - 리서치: 모바일 기기에서 로컬 모델을 이용한 이미지 생성이 어느 수준까지 되는지 리서치. ### 4-5. one-scroll-bible: 다국어 성경 스크롤 웹 (200+개 언어) - 무엇: 성경 전체의 구속사를 한 화면 스크롤로 풀어낸 다국어 모바일 웹 (200+개 언어). - 기술: Vanilla JS · Node · Vercel · github.com/jungrok5/one-scroll-bible (라이브 · one-scroll-bible.com) - 구현: 단일 HTML 앱 + 언어별 정적 페이지 프리렌더 빌드 파이프라인, SEO(JSON-LD·hreflang·sitemap). - 리서치: 현세대 LLM 모델의 다국어 언어 자원의 한계를 리서치. ### 4-6. thesauros: 주식 분석·알림 서비스 (한국·미국) - 무엇: 한국·미국 주식의 매수 타이밍을 분석·알림하는 서비스. - 기술: Python · Next.js · Supabase · github.com/jungrok5/thesauros (라이브 운영 중) - 구현: 데이터 수집 → 분석 → 백테스트 → 알림까지 프로덕션으로 직접 운영 (Vercel·Supabase·크론 8개·CI). - 리서치: AI를 활용한 주식 매매의 효용성 리서치. ## 5. 기술 스택 - 언어: C++(11~20), C#, JavaScript/TypeScript, Java, Python, UnrealScript, GDScript, Lua, PHP/Perl, VB - 엔진: UnrealEngine 3/4/5, Unity3D, GodotEngine, Gamebryo - 서버·프레임워크: Orleans(Grain 분산), boost asio, ASP.NET Core, Node.js, Akka(분석/최적화), WebSocket, gRPC/TCP, IOCP, .NET Aspire - DB·데이터: MSSQL(저장프로시저·SQL Server DB 프로젝트/dacpac), MySQL, MongoDB, Redis(Stack)/Garnet, Dapper, EntityFramework, Protobuf, 샤딩 - 네비/물리: Recast/Detour·DotRecast, 복셀·다이나믹 네비메시, Jitter2, PhysX/UE 물리 - 인프라·툴: Perforce, Git, SVN, Jenkins(CI), .NET Aspire, Redmine/Jira/Confluence, StarUML, ucloud/Linux/Windows - AI 개발도구: Claude Code·Agent SDK, MCP(자체 서버 구현), 멀티에이전트 코드리뷰/테스트, 로컬 LLM(llama.cpp·Cline, Qwen/Gemma/Ministral/Nemotron), 온디바이스 자연어 명령 - 전문 분야: 네트워크·스레딩·메시지 처리, 액터 모델 락프리 동시성, 네비게이션·길찾기, 물리·충돌, 브로드캐스팅·zero-copy, 가상 액터 기반 분산 서버(Orleans)·샤딩, 성능 프로파일링·최적화, 유저 창작·스크립트 런타임, 대규모 부하 테스트, AI 기반 개발 생산성 ## 6. 수상 · 활동 기간 | 내용 | 기관 2020-12 ~ 2021-02 | 타 조직(트릭스터M) 서버 최적화 지원 및 자문 (AION2 재직 중 파견) | NCSOFT 2019-04 ~ 2021-04 | 시니어급 후보자 전문성 검증 전문면접관 활동 (Programming 직군) | NCSOFT 2019-04 ~ 2020-04 | Job Title 운영위원회 활동 (Programming 직군) | NCSOFT 2019-04 | NCDP 개발자 컨퍼런스 발표 및 최우수상 수상, 주제: "1000 vs 1000 대규모 유저를 채널 없이 서비스 하기 위한 고민들" | NCSOFT 2014-12 | 타 회사(NCSOFT) 프로젝트 자문 지원 | 코어크리에이티브 2014-10 | 타 회사(퍼플오션) 프로젝트 기술 지원 | 코어크리에이티브 2010-05 ~ 2011-06 | 최우수 직원 선정 | KB온라인 2010-06 ~ 2010-12 | 시나리오 기반 온라인 게임 서버 부하 테스트 기술 개발 협력 | ETRI 2006-11 | 3D 캐주얼 온라인 게임 Cudice, 지스타 2006 아카데미관 출품 (서버파트) | 지스타 2006-06 ~ 2006-12 | 제1회 GF게임원정대 최종 3팀 진출 (서버파트) | GF게임 / MBC게임 2005-12 ~ 2006-12 | 학과 홈페이지·교내 전산실 페이지 제작(PHP), 유닉스/리눅스 서버 관리 | 홍익대학교 2004-09 ~ 2005-12 | Hongik University Security Team 활동 / 교내 학술제 발표 (Stack Overflow 해킹 기법) | 홍익대학교 2002-01 ~ 2003-08 | 군 부대(80연대 본부·전차대대·헌병대) 홈페이지 제작 (Perl/PHP) | 28사단