Byte 데이터로 직렬화를 하는 이유??
글쓴이: yann8166 / 작성시간: 토, 2016/07/30 - 2:38오후
C#프로그래밍을 공부중에 의문이 생겼습니다.
바로, 직렬화인데요.
아마 C# 뿐 아니라 다른 언어에서도 공통되는 부분일 겁니다.
String -> byte[]
int -> byte[]
이와 같이 직렬화를 수행하는 이유가 궁금합니다.
예를들어
String txt = "hello" 라는 문자열이 있다면
실제 메모리상에는 "hello"가 들어간게 아니라 각 문자가 문자코드로 변환된 숫자값
(아스키코드표현이라면) h = 68 e = 65 l = 6c o = 6f로 저장이되어서
0x68656c6c6f 로 저장되어 있을 텐데
이걸 굳이 byte형으로 변환해도(직렬화) 결국은
0x68656c6c6f 로 똑같은 값이 저장 되는것 아닌가요?
Forums:
직렬화를 하는 이유는 보통 통신을 하기
직렬화를 하는 이유는 보통 통신을 하기 위함입니다.
(로컬->로컬 or 로컬->리모트)
1. ByteOrder라고 우선 검색해보시고,
2. String의 경우 직렬화를 하는 이유는 내부적으로 포인터로 구현되어 있는 경우,
메모리가 연속적으로 배치되어 있지 않습니다. 이를 온전히 건내주기 위해서는 객체가 가지고 있는 정보를 모두 연속적으로 배치-직렬화
해줄 필요가 있습니다.
고급언어에서 각 변수나 클래스 내부구조가 어떤지는
고급언어의 각 변수나 클래스는 내부구조가 제각각이고, 거기다 컴파일 완료되고 돌고 있는 실제 구현물에서 어떻게 저장하는지는 하나도 정해져 있지 않습니다. 여기에 더해서 한 프로그램 내에 있는 같은 형의 변수라 해도 프로그램이 작동하는 동안에는 내부구조가 달라도 아무 문제 없습니다. 언어에서 요구하는 spec만 맞춰주기만 하면요.
근데 이걸 다른 프로그램으로 전달하기 위해서는 이래서는 안되기 때문에 일정한 형식의 raw byte 형태로 변환이 필요하고 이 작업이 직렬화입니다.
** 같은 언어라도 컴파일/인터프리팅에 사용된 프로그램이 다르면 직렬화 방식도 다를 수 있고 이경우는 직렬화해도 통신 안됩니다.
Written By the Black Knight of Destruction
참고해보세요.
저는 사용하지 않아서 잘 모르겠네요. ㅇ_ㅇ;;
좀 더 데이터를 편하게 사용하려고 만든거 같습니다.
Visual Studio 에서라면. 정확한 값을 F9 F5 F10 으로 하나씩 확인해보실 수 있습니다.
C#에서 String과 Byte는 클래스'인데. 마우스 우측키를 누르고. 메뉴에서 정의로 이동을 선택하면. 클래스의 헤더파일로 이동할 수 있습니다.
좀 더 정확한 내용은 C# 책을 보시거나. 학원 선생님이나. 직업학교. C# 전문 프로그래머. 데브피아등에 문의해보셔야 할거 같습니다.
Serialization (C# ) - MSDN에 문서가 하나 보이네요.
https://msdn.microsoft.com/en-us/library/mt656716.aspx
Serialize와 Deserialize를 학습하기에 좋은 예제 입니다. | Other
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=18&MAEULNo=8&no=678&ref=319
-----------------------------------------------------------------
String msdn C# - 구글에서 검색
https://www.google.co.kr/?gfe_rd=cr&ei=hF6cV7K6EoLM8geTspOADQ#q=String+msdn+C%23
byte[] msdn C# - 구글에서 검색
https://www.google.co.kr/?gfe_rd=cr&ei=hF6cV7K6EoLM8geTspOADQ#q=byte%5B%5D+msdn+C%23
직렬화 - 네이버책
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EC%A7%81%EB%A0%AC%ED%99%94
-----------------------------------------------------------------
직렬화 msdn C# - 구글 검색
https://www.google.co.kr/?gfe_rd=cr&ei=hF6cV7K6EoLM8geTspOADQ#q=%EC%A7%81%EB%A0%AC%ED%99%94+msdn+C%23
c# string byte 네이버 검색
C-string을-byte-배열로-변환
http://cybersecurity.tistory.com/entry/C-string%EC%9D%84-byte-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%B3%80%ED%99%98
C# -- String, char, byte 변환하기
http://freeprog.tistory.com/220
[C#] String을 자를 때 한글 깨짐 방지(Byte 형태로 자르기(EUC-KR) ) C Sharp
http://blog.naver.com/myheredity/130146446519
-----------------------------------------------------------------
직렬화'를 검색
자바 직렬화 (Java serialization)
http://www.slideshare.net/sunnykwak90/java-serialization-46382579
[Serialization] Serializa.. - 네이버블로그
http://blog.naver.com/zoomen1004/220683928722
MFC 사용자 정의 데이터 직렬화
http://petra.tistory.com/933
[C#] 12. 직렬화와 리플렉션 - 선별적 직렬화
http://ehclub.tistory.com/2532
체 직렬화 파일 읽고 쓰기
http://blog.daum.net/modong518/691
직렬화 [ serialization음성듣기 , 直列化 ]
http://terms.naver.com/entry.nhn?docId=1594666&cid=50372&categoryId=50372
자바 직렬화 알려주세요..ㅜㅜ
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=240594431&qb=7KeB66Cs7ZmU&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0
MFC 직렬화, CArchive
http://petra.tistory.com/932
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기