Unity/Unity 개발

Node.js 기반 게임 API 서버 설계

leedh1211 2025. 6. 12. 02:51

🔍 학습 배경

게임 서버를 구성함에 있어 실시간 동기화와는 별도로 계정 정보, 인벤토리, 게임 결과 저장 등의 API 기반 서버 역할을 어떻게 구성할지 고민하면서 Node.js를 기반으로 학습을 시작했다.

🧩 주요 학습 내용

1. Express 기반 RESTful 구조 설계

  • /login, /inventory, /monster/drop, /game/result 등의 엔드포인트를 만들어 API 서버를 구성.
  • JSON 데이터 구조를 클라이언트와 공유함으로써 Unity에서 쉽게 파싱 가능.
  • 모든 API는 비동기(async/await) 구조로 작성해 비즈니스 로직과 DB 연결을 깔끔하게 분리.

2. 서비스 계층 설계

  • Controller → Service → Model(DB) 구조를 사용하여 역할을 명확히 구분.
  • 예: /drop 요청이 들어오면 controller에서 dropService를 호출하고, dropService가 내부 로직과 DB 처리를 담당.

3. 정보 세팅 예시

  • 몬스터 처치시 drop호출,
  • 로그인 시 해시화된 비밀번호 비교 후 로그인 성립
  • 인벤토리 리스트 호출, ADD
  • 스탯 리스트 호출, 장착된 아이템 스탯 합쳐서 가져오는 로직 수행

💡 느낀 점

Node.js는 비동기 처리에 특화되어 있어, 실시간 게임과 병행하는 API 서버로 적합하다. 특히 게임 클라이언트와의 구조적 일관성을 위해 명확한 JSON 스키마 설계가 중요하며, controller-service-model 분리는 코드 유지보수에 많은 도움이 되었다.