나만의 작은 도서관

[TIL] 240628 캠프 75일차: 빅 엔디안, 리틀 엔디안, protoBuf와 직렬화/역직렬화 본문

Today I Learn

[TIL] 240628 캠프 75일차: 빅 엔디안, 리틀 엔디안, protoBuf와 직렬화/역직렬화

pledge24 2024. 6. 28. 20:52

오늘 배운 내용                                     

빅 엔디안, 리틀 엔디안

빅 엔디안은 이름에서 알 수 있듯 큰 놈을 기준으로 저장하는 방식인데, 여기서 큰 놈은 상위 바이트를 의미한다. 따라서, 전달받은 패킷에서 최상위 바이트 -> 최하위 바이트 순으로 메모리(buffer)에 저장하게 된다. 빅엔디안은 패킷에 담긴 데이터 순서와 메모리에 저장되는 순서가 일치하기 때문에, 그리고 평소 사람이 읽기 편하기 때문에 이해가 용이하다는 장점이 있다.

 

리틀 엔디안은 빅 엔디안과 반대로, 전달받은 패킷에서 최하위 바이트 -> 최상위 바이트 순으로 메모리(buffer)에 저장하게 된다. 리틀 엔디안은 패킷에 담긴 데이터 순서와 메모리에 저장되는 순서가 달라, 읽기가 불편하지만 자리 올림 수 여부를 판단하는데 용이하여 수학적 연산에 유리하다.

 

자세한 내용을 아래 글에 정리해 두었다.

https://pledge24.tistory.com/288

 

[Network]빅 엔디안(Big Endian)과 리틀 엔디안(Little Endian)

유의사항: 해당 글은 공부한 내용을 정리하는 용도이므로, 수정이 필요할 경우 내용의 수정이 있을 수 있습니다. 개요이번에 바이트 배열을 이용한 TCP 통신을 배우던 중 빅 엔디안 방식과 리틀

pledge24.tistory.com

 

protoBuf와 직렬화/역직렬화

 

protoBuf는 Protocol Buffer의 약자이며, Google에서 개발한 직렬화 데이터 구조이다. 효율적인 데이터 교환을 위해 설계되었으며, 특히 네트워크 통신과 저장 시스템에서 널리 사용됩니다. 이런 protoBuf는 여러 가지 데이터 구조 중 하나이기 때문에 자주 접해본 XML, JSON과 방식과 유사하다고 볼 수 있습니다. 

 

protoBuf가 직렬화 데이터 구조인만큼 우선 직렬화와 반대되는 개념인 역직렬화가 무엇이지 알아야합니다.

직렬화는 객체 또는 데이터 구조를 연속적인 바이트 스트림(byte Stream)으로 변환하는 과정입니다. 이 바이트 스트림은 파일, 메모리 또는 네트워크를 통해 다른 프로그램이나 시스템으로 전달될 수 있습니다.

반대로, 역직렬화는 직렬화된 바이트 스트림을 다시 원래의 객체나 데이터 구조로 변환하는 과정입니다. 이를 통해 데이터를 저장하거나 전송한 후에 원래의 상태로 복원할 수 있습니다.

 

자세한 내용을 아래 글에 정리해 두었다.

https://pledge24.tistory.com/289

 

[Network] protoBuf와 직렬화/역직렬화

유의사항: 해당 글은 공부한 내용을 정리하는 용도이므로, 수정이 필요할 경우 내용의 수정이 있을 수 있습니다.protoBufprotoBuf는 Protocol Buffer의 약자이며, Google에서 개발한 직렬화 데이터 구조이

pledge24.tistory.com

 

오늘의 Trouble Shooting                  

Problem 1. UnityPlayer.dll이 없어 코드를 실행을 진행할 수 없습니다.

이번에 유니티로 제작된 게임 파일을 다운받아 실행해보려고 했지만 위와 같은 오류가 뜨며 실행이 되지 않았다. 

 

Try. UnityPlayer.dll 수동 추가

구글링을 하다보니 해당 오류는 UnityPlayer.dll이 없었을 때 발생하는 문제라고 한다. 그래서 UnityPlayer.dll을 따로 다운받아 C:\Windows\SysWOW64위치에 넣어보았다.

하지만 이전과 다르지 않게 같은 오류가 발생하였고, 컴퓨터를 껐다 켜보았지만 오류가 해결되지는 않았다.

 

Try. UnityPlayer.dll 위치 변경

 UnityPlayer.dll이 같은 디렉토리에 존재하면 실행될 수도 있을 것 같았다. 그래서 같은 디렉토리로 변경했더니 다음과 같은 새로운 오류가 발생했다.

이건 뭐지...?

Solve. 수정된 파일 다운

해결이라 해도 될 지 모르겠지만... 해당 문제가 나의 문제가 아니라는 사실을 알게되었다. 단순한 파일 누락이었고, UnityPlayer.dll이 포함된 수정된 파일을 받자 정상작동하였다. 


 

오늘 한 일                                       

더보기
  • 빅 엔디안/ 리틀 엔디안 글 포스팅
  • protoBuf와 직렬화/역직렬화 글 포스팅
  • 강의 자료 1회독 (현재 2회독째)