[Rust 공식문서 한국어 정리] 102. Rust Display/Formatter 가이드
[Rust 공식문서 한국어 정리] 102. Rust Display/Formatter 가이드
원문 제목: Trait std::fmt::Display
작성자: The Rust Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 1. 서론 — 이 문서가 다루는 내용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Display 트레이트가 제공하는 사용자 친화적 문자열 변환 메커니즘을 설명합니다.
Formatter 구조체가 지원하는 다양한 포맷 옵션의 활용법을 학습합니다.
format! 매크로와 println!에서 Display가 어떻게 사용되는지 정리합니다.
커스텀 타입에 Display를 구현하여 출력 형식을 제어하는 방법을 다룹니다.
Debug와 Display의 역할 분리와 사용 목적의 차이를 설명합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔑 2. 핵심 개념 4가지
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
① fmt 메서드 — Formatter에 문자열을 기록
② Formatter — 너비, 정렬, 채움 문자 등 포맷 옵션 제공
③ format! — Display를 구현한 타입을 문자열로 포맷팅
④ to_string — Display 구현을 통해 String 변환
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 3. 주요 내용 상세
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Display 트레이트는 타입을 사용자가 읽기 적합한 문자열로 포맷팅합니다.
fmt 메서드는 &self와 &mut Formatter를 받아 write! 매크로로 출력합니다.
Formatter는 포맷 사양의 너비, 정렬, 채움 문자 등의 정보를 제공합니다.
write!(f, "value: {}", self.value) 형태로 Formatter에 텍스트를 씁니다.
format!("{}", value)는 Display::fmt를 호출하여 String을 생성합니다.
println!("{}", value)도 Display::fmt를 호출하여 콘솔에 출력합니다.
포맷 문자열의 {:<10}은 왼쪽 정렬, {:>10}은 오른쪽 정렬, {:^10}은 가운데 정렬을 의미합니다.
{:0>5}는 0으로 채운 5자리 오른쪽 정렬을 의미합니다.
Formatter의 width, precision, fill, align 필드를 직접 읽어 커스텀 포맷을 구현할 수 있습니다.
to_string() 메서드는 Display가 구현된 모든 타입에서 사용 가능합니다.
String::from은 From 트레이트를 사용하고 to_string은 Display를 사용합니다.
Display는 사용자용 출력이므로 민감한 내부 정보를 노출하지 않도록 주의합니다.
Debug는 개발자용 디버깅 출력이고 Display는 최종 사용자용 출력입니다.
Display를 구현할 때는 포맷 사양을 존중하여 호출자의 요구를 만족해야 합니다.
복잡한 포맷팅은 write! 매크로의 중첩 사용보다 문자열 버퍼를 먼저 구성하는 것이 깔끔합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛠 4. 실전 활용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
커스텀 에러 타입에 Display를 구현하여 사용자 친화적인 메시지를 제공합니다.
도메인 모델에 Display를 구현하여 로그와 UI에서 일관된 표현을 사용합니다.
format!("{:08}", num)으로 고정 너비 숫자 포맷을 생성합니다.
Debug 대신 Display를 노출하여 민감한 내부 상태를 숨깁니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 5. 정리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Display는 사용자용 문자열 포맷팅의 표준 트레이트입니다.
Formatter의 옵션을 활용하면 유연한 출력 형식을 제공할 수 있습니다.
Debug와 역할을 명확히 분리하여 적절한 목적에 사용해야 합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 출처 링크
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
원문: https://doc.rust-lang.org/std/fmt/trait.Display.html
Formatter: https://doc.rust-lang.org/std/fmt/struct.Formatter.html
#Rust #Display #Formatter #문자열포맷 #번역

오뉴노노 님의 최근 댓글
ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30