Resume

유채원

게임 서버 프로그래머

Introduce.


C++ 실시간 Stateful 서버와 C# 라이브 API 서버 양쪽을 경험한 5년 차 게임 서버 프로그래머입니다.

실시간 시뮬레이션 서버(액터 모델/존 기반 멀티스레드)에서는 상태 소유권과 동시성 설계를, 라이브 글로벌 서비스에서는 장애 전파 메커니즘 분석과 회복성 설계를 다뤄 왔습니다. 문제를 증상 수준에서 덮지 않고 메커니즘 레벨까지 파악한 뒤 구조로 해결하는 개발을 지향합니다.

장르를 가리지 않고 게임을 즐기는 유저로서, 기획자·클라이언트 프로그래머와 적극적으로 논의하며 유저 경험을 함께 완성하는 방식을 선호합니다.

Tool & Skill.


Language
C++ / C# (.NET 10)
Server
ASP.NET Core 라이브 API 서버 · 액터 기반/존 기반 멀티스레드 Stateful 서버 · Polly(Circuit Breaker) 기반 회복성 설계
Engine
Unreal Engine 4 · Unreal Engine 5
DB / Infra
MySQL(샤딩·복제) · MSSQL · Redis(Cluster·Sentinel) · AWS 환경 장애 진단(보안그룹/LB/라우팅)
Tools / CI
Perforce · Git/GitLab · CI/CD(Jenkins · TeamCity) · Grafana

진행한 프로젝트와 개인 학습에서 사용한 기술입니다.

Experience.


넷마블네오

나 혼자만 레벨업:ARISE 서버팀

2026.02 — 현재

  • C# / .NET 10
  • ASP.NET Core
  • MySQL / Redis
  • C++ / Boost.Asio
  • 라이브 글로벌 서비스

[라이브 API 서버 프로그래밍]

라이브 2년차 글로벌 액션 RPG의 API 서버 개발 및 운영 담당

DB 장애 회복성 설계 : 포스트모템부터 검증까지

  • 라이브 DB 1분 장애로 게임 서버 전체가 다운된 사고의 전파 경로(커넥션풀 고갈 → ThreadPool starvation → 헬스체크 실패)를 파악하고 포스트모템 작성 : 자연 회복이 구조적으로 불가능함을 정량 계산으로 입증
  • Polly 기반 DB 서킷브레이커 제안·설계·구현 : DB별 회로 분리, fail-fast, 복구 시 동시 재연결(thundering herd) 방지 지터
  • Toxiproxy 장애 재현·DB 페일오버 테스트로 검증, shadow 모드부터 시작하는 단계적 적용 설계 — 넷마블 본사 아키텍처최적화팀과 최종 부하 검증 진행 중

멀티리전(KR/US) 전환 대비 성능테스트 환경 구축

  • 실장비(AWS) 테스트 환경 세팅 및 기능·인프라 결함을 출발지/목적지/포트 단위로 진단·격리해 조치
  • 서킷브레이커 회로 키 격리 결함(한 DB 장애가 무관한 다른 종류의 DB까지 차단) 발견·수정
  • 본사 아키텍처최적화팀·인프라팀과의 협업 창구 전담 — 검증 항목 정의, 부하봇 측정 품질 개선, 그대로 실행 가능한 failover 테스트 절차서 인계

레이드 매칭 TCP 서버(C++/Boost.Asio) 크래시 분석

  • 공유 자원인 룸 상태가 두 strand에서 동시 접근되어 발생한 라이브 크래시의 원인 분석
  • 상태 소유권을 룸 strand로 단일화하는 수정안 작성, 런타임 strand 위반 감지 매크로 설계

라이브 코드 개선 & 사내 LLM 도구 개발 (AX 겸직)

  • 열 개 이상으로 흩어져 있던 우편 전송 인터페이스를 2개로 통합, 도메인 규칙을 내부로 캡슐화해 오사용 원천 차단
  • 사내 기획서 RAG 챗봇(하이브리드 검색, MCP 연동) 설계부터 구축
  • 멀티에이전트 vs 단일세션 코드생성 벤치마크 설계·실행 — 공정성 원칙 기반 실측으로 도입 보류, 유행 기법을 실측 데이터로 검증

NCSOFT

TACTAN 서버 1팀

2024.04 — 2025.09

  • C++ / Unreal Engine 4
  • MSSQL
  • Git
  • Actor 기반 Multithread

[게임 서버 프로그래밍]

4X·전쟁 SRPG 장르 TACTAN의 실시간 Stateful 게임 서버 프로그래밍 담당

게임 서버 성능/안정성 개선

  • 패킷 호출 빈도/전송량 프로파일링 기반 구조 개선 : 내부 전투 테스트 기준 초당 트래픽 약 20% 감소
  • SharedPtr 참조 잔존·메모리 오염 케이스 전수 조사 : WeakPtr 전환 및 Stomp 기반 Allocator 래핑 도입으로 오염 지점 탐지
  • 잘못된 스레드 접근/경합 발생 구간 수정, 스레드 규칙 위반 로직 정리로 안정성 향상

Stateful 서버 기반 게임 시스템 설계

  • 우편 시스템 : 이벤트 기반 우편 생성/처리, 유저 액터 큐 단일 처리로 정합성 보장
  • 가챠 시스템 : 자정 일괄 갱신을 유저 행동 시점 지연 동기화로 재설계 — 부하 분산과 정합성 동시 확보
  • 시즌 특수 아이템 : 월드 단위 상태 전이/소유권 전환/소멸 등 생명주기 관리 구조 구현
  • 튜토리얼 : 튜토리얼 서버 ↔ 본 서버 간 데이터 이관 처리 — 중복 요청 차단 및 동기화 대상 관리

대량/고빈도 처리 최적화

  • 우편 대량 처리 : 분할 전송 + 리스트 프로시저 + 결과 리스트 실패 분리 처리 구조로 개선
  • 장착 아이템 대량 처리 : 리스트 기반 단일 프로시저 전환으로 처리 횟수/패킷 부하 절감
  • 길드 경작지/공헌도 : 틱 기반 계산을 이벤트 기반으로 교체, 주기 배칭으로 DB·패킷 부하 절감

운영 변경 대응/확장성 중심 구조 개발

  • 가챠·이벤트 스케줄 데이터 분리 — 운영 변경 시 코드 수정 없이 데이터만으로 반영 가능한 구조 설계
  • 업적&컬렉션/장착 아이템 구조 리팩토링으로 신규 타입 추가 시 코드 수정 최소화

NCSOFT

Project LLL Gameplay Server

2022.01 — 2024.03

  • C++ / Unreal Engine 5
  • MSSQL
  • Perforce
  • 존 기반 Multithread

[게임 플레이 서버 프로그래밍]

Unreal Engine 5 기반 MMOTPS Project LLL의 심리스 오픈월드 게임플레이 서버 로직 구현

심리스 오픈월드 존 경계 처리

  • 존별 스레드가 분리된 구조에서 존 겹침 판정·Ownership 전이 인터페이스 구현 — 경계에 걸친 오브젝트의 레플리카 생성과 이탈 시 권위 이전 흐름을 서버 측에서 처리
  • 엔진팀 협업 창구를 전담하며 존/경계 추출 기능을 서버 관점에서 검증·피드백

인터랙터블 오브젝트 시스템 신규 개발

  • 조건에 따라 동작을 수행하는 State Machine 기반 상호작용 오브젝트 서버 로직 구현 — 상태 전이 조건·동작을 데이터 기반으로 정의해 확장성 확보
  • 설치형 부활 포인트, 폭발물, 설치형 쉴드, 워프 포털, 보상 상자, 플레이어 개인화 오브젝트 등 다양한 타입 추가
  • 엔진·기획 팀과 협업해 언리얼 에디터 오브젝트 제작·설정 편의성 개선

게임 서버 테스트 자동화

  • 맵/더미 수/시나리오를 외부 스크립트로 정의하는 Data-Driven 테스트 자동화 시스템 관리 — 지정 시각 자동 실행 배치 구성
  • Grafana 기반으로 시나리오별 서버 메모리 사용량·스폰 오브젝트 수 시각화, 성능 저하·메모리 릭 탐지에 활용

스크립트 시스템 개발 및 관리

  • 게임 로직·인게임 오브젝트 동작을 제어하는 XML 스크립트 시스템 유지·확장 — 미션·월드 이벤트·AI 제어용 조건 검사/동작 기능 지속 개발
  • Graphviz 기반 스크립트 그래프 시각화 디버그 툴 개발로 디자이너 작업 생산성 향상
  • 스크립트 검증 Commandlet을 TeamCity CI/CD 파이프라인에 자동화해 안정적 배포 환경 구축
유채원 — 이력서 NCSOFT 2022.01–2025.09 · NETMARBLE NEO 2026.02–

CAREER DESCRIPTION →