Unity/Unity 개발

Unity 클라이언트와 서버 연동 전략

leedh1211 2025. 6. 12. 02:53

🔍 학습 배경

Unity에서 Node.js 서버와 통신하며 로그인, 인벤토리 조회, 아이템 사용 등 서버 데이터를 주고받는 흐름을 체계적으로 정리하고자 했다.

🧩 주요 학습 내용

1. UnityWebRequest를 통한 통신

  • 서버 요청 시 UnityWebRequest.Post() 혹은 Get() 사용
  • 결과는 request.downloadHandler.text로 JSON 문자열을 받아 파싱
  • JsonConvert.DeserializeObject<PlayerData>()를 통해 C# 객체화

2. JSON 구조 매칭

  • JSON 키와 C# 클래스 필드명이 정확히 매칭되어야 역직렬화 성공
  • Unity 내 PlayerData 클래스를 서버 응답 구조와 동일하게 정의해야 함

3. 로그인 후 흐름

  • 로그인 성공 시 서버로부터 seq, userId, level, gold, exp 등의 정보를 받아 UI 및 내부 시스템에 반영
  • 이후 Photon 등의 네트워크 시스템 접속이나 씬 전환 등 다음 흐름으로 연결할 예정

💡 느낀 점

서버-클라이언트 연동에서 가장 중요한 것은 데이터 일치성예외 처리이다. 예를 들어 필드명이 틀리거나 null 데이터가 들어오면 파싱이 실패하고 이후 로직이 중단된다. 또한 로그인 응답이 성공했는지 아닌지를 먼저 확인하고 처리 분기를 나누는 것도 필수적인 안정성 장치다.