Go 언어로 웹 서버를 생성하고 JSON을 다루다 보면 json.Marshal과 json.Unmarshal을 하게 됩니다. 정확히 어떤 작업을 하는지 용어 정리 겸 개념을 잡기 위하여 marshaling과 unmarshalin의 의미에 대하여 기록하겠습니다.
목차
데이터 직렬화란?
marshal과 unmarshal
데이터 직렬화란?
데이터 직렬화는 데이터를 바이트 스트림 또는 다른 형식으로 변환하는 프로세스를 의미합니다. 이 과정에서 데이터를 저장, 전송 또는 공유하기 위해 데이터를 특정 형식으로 표현하는 방법입니다.
특히 웹 API에서는 주로 JSON 또는 XML과 같은 데이터 직렬화 형식을 사용하여 클라이언트와 서버 간의 데이터 통신을 수행합니다.
marshaling과 unmarshaling
데이터를 직렬화하고 다시 역직렬화하는 프로세스인 marshaling과 unmarshaling에 대하여 알아보겠습니다.
marshaling
marshaling은 데이터를 직렬화하는 과정을 의미합니다. 객체 또는 구조체 형식의 바이트스트림을 JSON형식 또는 XML 등과 같은 형식으로 변환하는 작업을 의미합니다.
서로 다른 언어를 사용하는 서버 간에 데이터를 주고받을 때 바이트 스트림 구조의 자료는 해석되지 않을 수 있습니다. 두 서버가 JSON형식을 읽을 수 있다면 바이트 스트림 데이터를 JSON형식으로 marshaling 하여 전송한다면 데이터를 주고받을 수 있습니다.
unmarshaling
unmarshaling은 marshaling 된 데이터를 원래 데이터 형식으로 복원하는 과정입니다. 다른 서버로부터 JSON형식으로 데이터를 받았지만 서버 내에서 사용하기 위하여 데이터를 서버의 언어와 구조체에 맞는 형식으로 변환하여야 합니다. 이 과정을 unmarshaling이라고 합니다.
'Computer Science' 카테고리의 다른 글
[CS] 최소 스패닝 트리 (크루스칼 알고리즘) (0) | 2023.11.30 |
---|---|
[CS] 다익스트라 알고리즘 (Dijkstra) (0) | 2023.10.25 |
[CS] Blocking과 NonBlocking, Sync와 Async 공부 기록 (0) | 2023.07.22 |
[CS] 그래프 알고리즘 (깊이 우선 탐색, 너비 우선 탐색) (0) | 2023.06.22 |
[CS] 검색 알고리즘 (선형 검색, 이진 검색, 트리 검색, 해시 검색, 보간 검색) (0) | 2023.06.21 |