나만의 작은 도서관
[TIL] 240628 캠프 75일차: 빅 엔디안, 리틀 엔디안, protoBuf와 직렬화/역직렬화 본문
오늘 배운 내용
빅 엔디안, 리틀 엔디안
빅 엔디안은 이름에서 알 수 있듯 큰 놈을 기준으로 저장하는 방식인데, 여기서 큰 놈은 상위 바이트를 의미한다. 따라서, 전달받은 패킷에서 최상위 바이트 -> 최하위 바이트 순으로 메모리(buffer)에 저장하게 된다. 빅엔디안은 패킷에 담긴 데이터 순서와 메모리에 저장되는 순서가 일치하기 때문에, 그리고 평소 사람이 읽기 편하기 때문에 이해가 용이하다는 장점이 있다.
리틀 엔디안은 빅 엔디안과 반대로, 전달받은 패킷에서 최하위 바이트 -> 최상위 바이트 순으로 메모리(buffer)에 저장하게 된다. 리틀 엔디안은 패킷에 담긴 데이터 순서와 메모리에 저장되는 순서가 달라, 읽기가 불편하지만 자리 올림 수 여부를 판단하는데 용이하여 수학적 연산에 유리하다.
자세한 내용을 아래 글에 정리해 두었다.
https://pledge24.tistory.com/288
protoBuf와 직렬화/역직렬화
protoBuf는 Protocol Buffer의 약자이며, Google에서 개발한 직렬화 데이터 구조이다. 효율적인 데이터 교환을 위해 설계되었으며, 특히 네트워크 통신과 저장 시스템에서 널리 사용됩니다. 이런 protoBuf는 여러 가지 데이터 구조 중 하나이기 때문에 자주 접해본 XML, JSON과 방식과 유사하다고 볼 수 있습니다.
protoBuf가 직렬화 데이터 구조인만큼 우선 직렬화와 반대되는 개념인 역직렬화가 무엇이지 알아야합니다.
직렬화는 객체 또는 데이터 구조를 연속적인 바이트 스트림(byte Stream)으로 변환하는 과정입니다. 이 바이트 스트림은 파일, 메모리 또는 네트워크를 통해 다른 프로그램이나 시스템으로 전달될 수 있습니다.
반대로, 역직렬화는 직렬화된 바이트 스트림을 다시 원래의 객체나 데이터 구조로 변환하는 과정입니다. 이를 통해 데이터를 저장하거나 전송한 후에 원래의 상태로 복원할 수 있습니다.
자세한 내용을 아래 글에 정리해 두었다.
https://pledge24.tistory.com/289
오늘의 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회독째)
'Today I Learn' 카테고리의 다른 글
[TIL] 240702 캠프 79일차: protoBuf의 verify함수, 자바스크립트 계산된 프로퍼티 (0) | 2024.07.02 |
---|---|
[TIL] 240701 캠프 78일차: read ECONNRESET 오류, slice(), 백틱과 바이트배열 console.log (0) | 2024.07.01 |
[TIL] 240627 캠프 74일차: TCP Handshake, TCP와 UDP (0) | 2024.06.27 |
[TIL] 240626 캠프 73일차: 로드 밸런싱, 대칭/공개 키 암호화 방식 (0) | 2024.06.27 |
[TIL] 240625 캠프 72일차: 커링 (Currying) , 프로토콜 버퍼 (0) | 2024.06.25 |