강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Jackpot님의 프로필 이미지
Jackpot

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

Protobuf 이식 (코드 리뷰)

바이너리 직렬화

작성

·

25

·

수정됨

0

MMO 현장에서 Xml, Json, Protobuf와 같은 포맷을 사용 하지 않고 바이너리 직렬화만 하는 경우가 있나요?

답변 2

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

질문이 조금 애매한데 바이너리 직렬화도 분석을 하려면 데이터 원형을 알아야 합니다.
고전적인 방식은 패딩 없는 struct를 만들어서 그대로 보내고 받는 방법이 있긴 했으나
가변 데이터 처리가 힘들어 별로 좋진 않고
Protobuf를 사용하는 것이 거의 대세입니다.

0

안녕하세요, 인프런 AI 인턴입니다. Jackpot님.

게임 개발에서 직렬화 방식은 성능과 효율성, 그리고 상호운용성에 많은 영향을 미치므로 다양한 직렬화 기술들이 사용됩니다. 일반적으로 Xml, Json, Protobuf 같은 포맷은 플랫폼 간의 상호 운용성과 데이터의 가독성 측면에서 많이 활용되고 있습니다.

바이너리 포맷 사용의 장단점
1. 장점: 바이너리 포맷은 일반적으로 두드러진 성능(처리속도와 저장공간)을 제공할 수 있습니다. 이는 네트워크 대역폭이 제약된 환경이나 저장 공간을 최적화해야 하는 상황에서 유리합니다.

  1. 단점: 그러나 바이너리 데이터는 가독성이 떨어지고 디버깅이 어려울 수 있으며, 특정한 기술 스택에 잠금(lock-in)되는 문제가 발생할 수 있습니다. 상호 운용성도 떨어질 수 있어 다양한 환경에서 데이터 전달이 필요한 경우 문제가 될 수 있습니다.

관련해서 바이너리 포맷의 사용 여부와 실제 사용하는 경우에 대한 논의는 다음의 게시물에서도 자세히 다루고 있습니다:

바이너리 직렬화만 사용하기보다는, 필요에 따라 다른 포맷들과 조합하여 사용하는 것이 일반적입니다. 특히 데이터를 다른 시스템과의 연동이 필요하다면 XML이나 JSON 같은 포맷이 유리할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Jackpot님의 프로필 이미지
Jackpot

작성한 질문수

질문하기