Rust

Serde와 직렬화

serde 트레이트, derive 매크로, JSON/YAML/TOML, 커스텀 (역)직렬화, Cow를 활용한 라이프타임, 성능

20 면접 질문·
Mid-Level
1

Rust에서 serde 크레이트의 주요 역할은 무엇입니까?

답변

Serde는 Rust를 위한 범용 직렬화 및 역직렬화 프레임워크입니다. 이름은 "SERialize DEserialize"에서 유래했습니다. Rust 데이터 구조를 다양한 데이터 형식(JSON, YAML, TOML 등)으로, 그리고 그로부터 효율적이고 타입 안전하게 변환할 수 있게 해줍니다. Serde는 Rust의 트레이트 시스템을 활용하여 런타임 비용이 없는 추상화를 제공합니다.

2

serde로 struct에 자동 직렬화를 활성화하는 올바른 구문은 무엇입니까?

답변

#[derive(Serialize, Deserialize)] 속성은 struct에 대해 Serialize 및 Deserialize 트레이트의 구현을 자동으로 생성합니다. 이 절차적 매크로는 필드 구조를 분석하고 컴파일 타임에 필요한 코드를 생성합니다. use serde::{Serialize, Deserialize}로 serde에서 트레이트를 임포트해야 합니다.

3

serde_json으로 Rust struct를 JSON 문자열로 변환하려면 어떤 함수를 사용해야 합니까?

답변

serde_json::to_string() 함수는 Serialize를 구현하는 값을 JSON 문자열로 변환합니다. 직렬화는 특정 경우에 실패할 수 있으므로 Result<String, Error>를 반환합니다. 들여쓰기가 적용된 형식화된 출력에는 serde_json::to_string_pretty()를 사용합니다. Writer에 직접 쓰려면 serde_json::to_writer()를 사용합니다.

4

serde_json으로 JSON 문자열을 Rust struct로 역직렬화하려면 어떻게 합니까?

5

직렬화 중에 필드 이름을 변경하려면 어떤 serde 속성을 사용해야 합니까?

+17 면접 질문

다음 면접을 위해 Rust을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기