CAREER TIMELINE
최근 업데이트:
안녕하세요.
8년 차 게임 클라이언트 프로그래머 문동준입니다.
최근 업데이트:
# Moon Dongjun — Professional Profile
Name: 문동준
Role: Unity Client Programmer
Experience: 8 years
## Professional Summary
Unity client programmer with 8 years of professional game development.
Participated in three game projects from initial development through global launch and live service:
- OVERDOX
- Demian Saga
- Last Hunter K
Responsibilities expanded from individual game content implementation to client architecture and systems covering login, lobby, UI, scene transitions, resource management, data loading, networking, combat systems, build automation, and release processes.
## Engineering Scope
Worked across the complete client lifecycle:
Application Start
-> Authentication
-> Client Data Loading
-> Resource Initialization
-> Lobby
-> Matchmaking
-> Gameplay
-> Result
-> Return to Lobby
Implemented and maintained systems including:
- Unity client architecture
- Login and authentication
- Lobby and outgame systems
- Combat systems
- Scene transition management
- UI frameworks
- TCP / HTTP networking
- Addressables resource management
- UniTask-based asynchronous processing
- Data table generation and loading
- Jenkins CI/CD
- Android AAB / Play Asset Delivery
## Architecture & System Development
Designed a queue-based scene transition system to serialize simultaneous scene requests.
Each scene owns its initialization process and reports completion to the transition manager.
This structure was introduced after simultaneous scene requests caused transition conflicts and black-screen states.
Developed common UI management structures for scene transitions, popups, and shared outgame UI.
Built internal tools for inspecting Addressables resource loading and release state, including reference counts and call stacks.
## Performance & Loading
Reworked the application's startup sequence.
Previous sequence:
Client Data
-> Server Login
-> Resource Loading
-> Lobby
Changed sequence:
Splash
├─ Server Login
├─ Client Data Loading
└─ Resource Preloading
↓
Lobby
Independent operations were executed concurrently using asynchronous processing.
Measured splash-to-lobby loading time decreased from approximately 20 seconds to approximately 5 seconds on the same class of device.
The result was verified through before/after video comparison.
## Crash Investigation
Worked on post-launch crash investigation for approximately two months.
Crash rate decreased from approximately 10% to approximately 2% during this period.
Investigated issues involving:
- NullReferenceException
- Addressables and Play Asset Delivery
- Removed assets with remaining references
- Scene and shader problems
- Device and OS compatibility
- External APIs and SDKs
Used Logcat, Unity debugging tools, reproduction projects, and device testing to trace failures.
## Data Architecture
Worked with an Excel-to-C# data generation pipeline.
Changed ID-based table storage from List-based lookup to Dictionary-based lookup by modifying the code-generation template.
The public data access interface was kept consistent while the generated internal representation changed.
Also redesigned duplicated character-stat data.
As the project expanded, approximately 5 initial stats grew to roughly 30-40 fields distributed across multiple tables.
Created a shared Status representation and replaced duplicated stat columns with Status IDs referenced by other tables.
## Resource Management
Worked with both AssetBundle and Addressables-based resource systems.
Migrated project resource management toward Addressables and used it with Android App Bundle and Play Asset Delivery.
Handled resource dependencies, asynchronous loading, reference counting, release tracking, and build-time resource processing.
## Build & Release
Worked with Jenkins-based automated build and distribution pipelines.
Handled Android and iOS build processes across released projects.
Worked with:
- AAB
- Play Asset Delivery
- Addressables
- Automated client builds
- Resource packaging
- Release distribution
## Debugging Approach
Debugging work includes tracing data and execution paths.
Typical investigation path:
Observed Problem
-> Reproduction Conditions
-> Runtime State
-> Call Path
-> Data / Resource State
-> Root Cause
-> Fix
-> Reproduction Test
Resource-loading investigations include failed loads of required resources.