tree 명령어의 JSON 출력: 가정의 위험성에 대한 경고

2025-07-25
tree 명령어의 JSON 출력: 가정의 위험성에 대한 경고

`tree` 명령어의 2.0 버전에서는 파일 디스크립터 3을 통해 들여쓰기되지 않은 JSON을 출력하는 기능이 추가되었습니다(Linux 전용). 하지만 이 초기 구현은 사용자 환경에 대한 위험한 가정을 했고, 광범위한 호환성 문제를 야기했습니다. 2.0.2 버전에서는 환경 변수 `STDDATA_FD`를 설정해야 하는 것으로 수정되었습니다. 이는 소프트웨어 개발에서 사용자 환경에 대한 가정을 피하는 것이 얼마나 중요한지를 강조합니다. 개선된 `tree` 명령어는 `STDDATA_FD`를 통해 유연한 구조화된 데이터 출력을 제공하며, nushell과 같은 도구로 쉽게 처리할 수 있습니다.

더 보기

Rust의 `#[derive]` 매크로 제한 및 해결 방법

2025-07-08
Rust의 `#[derive]` 매크로 제한 및 해결 방법

Rust의 `#[derive]` 매크로는 `Clone`과 같은 트레이트의 구현을 생성할 때 모든 제네릭 파라미터도 `Clone`을 구현해야 하는 제한이 있습니다. 이 글에서는 이 제한으로 인해 코드가 컴파일되지 않는 이유를 두 가지 예시를 통해 분석합니다. 저자는 두 가지 해결책을 제안합니다. 하나는 컴파일러 동작을 변경하는 RFC를 제출하는 것이고, 다른 하나는 제한을 우회하기 위해 사용자 지정 매크로를 만드는 것입니다. 저자는 후자를 선택하여 `derive_more` 크레이트 또는 직접 만든 크레이트에서 더 유연한 derive 매크로를 구현할 계획입니다.

더 보기
개발