오늘 팀프로젝트 RPG를 하면서
데이터 불러오기, 저장하기, 삭제하기
부분을 팀원분께서 맡았는데 직렬화와 역직렬화 말씀하시길레
무슨 뜻인지 몰라서 검색하면서 찾아가봤다.
데이터 직렬화 (Serialization)
데이터 직렬화는 객체나 데이터를 특정 포맷(예: JSON, XML, 바이너리 등)으로 변환하여 저장하거나 네트워크를 통해 전송할 수 있도록 하는 과정입니다. 주로 시스템 간 데이터 전송, 파일 저장, 또는 데이터베이스에 데이터를 저장할 때 사용됩니다. 직렬화된 데이터는 사람이 읽기 어려운 형태일 수 있으며, 이를 통해 데이터의 크기를 줄이거나 전송 효율을 높일 수 있습니다.
주요 용도:
- 데이터 전송: 네트워크를 통해 다른 시스템으로 데이터를 전송할 때 사용.
- 파일 저장: 데이터를 파일 시스템에 저장하여, 필요할 때 다시 읽을 수 있도록 할 때 사용.
- 세션 관리: 웹 애플리케이션에서 사용자 세션을 관리할 때 직렬화가 필요.
데이터 역직렬화 (Deserialization)
역직렬화는 직렬화된 데이터를 원래의 객체나 데이터 형식으로 되돌리는 과정입니다. 이는 주로 네트워크에서 받은 데이터나 저장된 파일에서 데이터를 읽을 때 발생합니다. 역직렬화된 데이터는 프로그래밍 언어에서 사용할 수 있는 객체 형태로 복원됩니다.
역직렬화의 주된 목적은 직렬화된 데이터를 다시 원래의 형식으로 복원하여 프로그램 내에서 사용할 수 있게 하는 것입니다.
참고사항
- 직렬화와 역직렬화는 데이터를 저장하거나 전송하는 데 중요한 역할을 하지만, 데이터의 보안에도 신경을 써야 합니다. 악의적인 사용자가 잘못된 데이터를 역직렬화하는 경우 보안 취약점이 발생할 수 있기 때문에 이를 방지하기 위한 추가적인 안전장치가 필요합니다.
- 직렬화된 데이터는 플랫폼에 종속적일 수 있기 때문에, 이를 표준화된 형식으로 처리할 때는 각 플랫폼 간 호환성에 유의해야 합니다.
직렬화는 내가 작성하고있는 코드를 json이나 xml로 바꿔서 변환해주는 작업이다.
역직렬화는 json이나 xml에서 바이트형태로 바꿔주는 작업이다.
VisualStudio에서는 객체를 직렬화시켜주는 간편한 메서드가 있어서 저장 및 불러오기 작업이 수월했다.
데이터 삭제는 플레이어 이름을 null 값을 줘서 데이터를 저장하고 데이터배열을 다시 불러와 데이터를 없는 취급으로 만들어줬다. ( 플레이어의 이름에 따라서 데이터가 있는지 없는지 판단해주는 메서드를 만들었다. )
'부트캠프 > Unity [ 스파르타 ]' 카테고리의 다른 글
[TIL] 유니티 스파르타 7기 15일차 - 콘솔 키보드 버퍼 지우는 법 (0) | 2025.02.11 |
---|---|
[TIL] 유니티 스파르타 7기 14일차 - 콘솔 키보드 버퍼 지우는 법 (0) | 2025.02.10 |
[TIL] 유니티 스파르타 7기 12일차 - 팀프로젝트 마을클래스 및 이동 (3) | 2025.02.06 |
[TIL] 유니티 스파르타 7기 11일차 - Json Write && Read (1) | 2025.02.05 |
[TIL] 유니티 스파르타 7기 10일차 - TextRPG 개인과제 03번째 (2) | 2025.02.04 |