Serialization 2

[삽잡이] 직렬화 (Serialization ) & 역직렬화 (UnSerialization)

직렬화란, 말 그대로 직렬로 만들겠다는 뜻이다.그렇다면 역직렬화란? 이또한 역직렬로 만들겠다는 뜻이다. 사실 직렬화라는 단어는 '객체'에 대한 내용이 나오지 않는다면 의미가 없습니다.객체를 어떤 장치에 쓰고, 다시 객체로 복원하는지에 대한 작업이 직렬화와 역직렬화에 관련된 작업이 됩니다. 우리가 만든 객체가 하나 있다고 해봅시다.이때에 이 객체를 똑같이 복원하고 싶을 때 어떻게 할까요?객체는 어플리케이션에 만들어지는데, 프로그램이 죽는 순간 다 날라가버리지 않습니까? 마치 피x온라인에서 전설의 카드로 '베르캄프'선수를 뽑았는데,피x온라인을 종료하자마자 베르캄프가 날라간다고 해봅시다... 하... 이처럼, 어플리케이션을 다시 켰을 때 지금까지 만들어놓은 객체를 복원되게 하고싶다면?이러한 요구로부터 나온 단..

#005_Window_Network_구조체 멤버 정렬

안녕하세요 삽잡이입니다. 이번 시간에는 구조체 멤버 정렬에 관해 배워보도록 하겠습니다. MSG라는 구조체의 크기는 몇일까요?char 1바이트 int 4바이트 double 8바이트... 총 13바이트가 나오지 않을까요? 하지만, 16바이트가 출력이 됩니다. 제가 계산을 잘못한 것일까요?아닙니다. 16이 나오는 것이 맞다는 것입니다. 그 이유에 대해서 알아보도록 하겠습니다. 자... 그런데 감히 잡히시지 않습니까?저기 저 주석 처리된 메크로가 의심스럽니다. 아무튼...이 문제는 구조체 바이트 정렬에 의해서 생겨난 일입니다. 우선 말씀드리고 싶은 말이 있습니다. '구조체를 함부로 날리지 않는다. 구조체를 함부로 받지 않는다.'만약, 통신하는 다른 PC와 서로 구조체 정렬 방식이 다르다면,연산이 잘못되는 문제가..