728x90

직렬화 기법
- 이진 직렬화
- XML 직렬화

대용량의 파일을 읽어 올 경우 직렬화/역직렬화 하는 경우가 있다. 직렬화와 역직렬화는 무엇이고 사용하는 이유는 무엇인가?
- 직렬화
메모리를 디스크 저장이나 네트워크 통신에 사용하기 위한 형식으로 변환하는 것을 말합니다.
한국인은 한국어로 미국인은 영어로 대화한다면, 두쪽다 무슨 말인지 모를 것입니다. 그래서 만국 공통어 영어를 통하여, 서로 대화를 진행하면 서로에 대한 의사표현을 할 수 있습니다.
이처럼 한국어 내용을 영어로 변화시켜 미국인에게 내용을 전달 하는 것 입니다.
즉. object을 저장하거나, 메모리, 데이터베이스, 파일로 전송하기 위해 개체를 Byte 스트림으로 변환하는 Process 입니다.

- 역직렬화
직렬화의 반대입니다. 
디스크에 저장 한 데이터를 읽거나, 네트워크 통신으로 받은 데이터를 메모리에 쓸 수 있도록 다시 변환한다.


직렬화가 필요한 이유를 알기 위해서는 데이터들의 메모리 구조에 대해 알아야 합니다.
데이터들의 메모리 구조는 크게 2가지로 분류 됩니다.

1. 값 형식 데이터 즉. Value Type
int, float, char 등 값 형식 데이터들은 Stack에 메모리가 쌓이고 직접 접근이 가능합니다.

2. 참조 형식 데이터 즉. Reference Type
C#에서 Object 타입 또는 C++에서 포인터 변수들이 여기에 해당
해당 형식의 변수를 선언되면, Heap에 메모리가 할당 되고, Stack에서 Heap 메모리를 참조하는 구조

728x90

'C#' 카테고리의 다른 글

c# 따옴표 나오게 출력하는 방법  (0) 2021.07.02
WebClient VS FtpWebRequest  (0) 2021.04.22
파일 정보 불러오기  (0) 2021.03.17
Adorner ?  (0) 2021.03.08
Main 변수를 Class에서 사용 방법  (0) 2021.03.05

+ Recent posts