WhatCable: macOS에서의 USB-C 케이블 미스터리 해결하기

USB-C 케이블의 세계는 악명 높을 정도로 복잡합니다. 단순하고 동일해 보이는 커넥터가 매우 다른 성능을 숨기고 있을 수 있습니다. 어떤 케이블은 5W로만 충전될 수 있는 반면, 다른 케이블은 100W 전력 공급(Power Delivery), 고속 데이터 전송, 그리고 Thunderbolt 4를 지원할 수 있습니다. 이러한 차이는 사용자가 시각적으로 구별할 수 없는 수많은 옵션이 가득한 서랍 속에서 자신의 필요에 맞는 올바른 케이블을 식별하는 데 어려움을 겪게 만들어 종종 좌절감을 안겨줍니다.

USB-C 케이블의 정체를 밝히기 위해 설계된 새로운 오픈 소스 macOS 메뉴 바 애플리케이션인 WhatCable을 소개합니다. sleepingNomad가 Swift/SwiftUI로 개발한 WhatCable은 기존 macOS 시스템 데이터를 활용하여 연결된 USB-C 케이블을 검사하고 충전 와트수, 데이터 속도, 디스플레이 지원 여부 등을 쉬운 영어로 보여줍니다.

초기 반응 및 핵심 기능

출시 직후 WhatCable은 Hacker News에서 상당한 관심을 끌었으며, 사용자들은 그 유용성을 높이 평가했습니다. 이 앱의 핵심 약속은 혼란스러웠던 부분에 명확성을 제공하는 것입니다. 규격에 맞는 USB-C 케이블 내부에 내장된 e-marker 데이터를 읽음으로써, WhatCable은 다른 방법으로는 숨겨져 있는 중요한 사양을 보고할 수 있습니다.

"이것은 제가 꽤 오랫동안 원했던 것입니다. 정체를 알 수 없는 USB-C 케이블이 아주 많은데, 그 성능을 사양으로 표시해두면 참 좋을 것 같습니다. 이제 그렇게 할 수 있게 되었습니다." - dhosek

많은 이들에게 이 앱은 외부 하드웨어 테스터나 추측에 의존할 필요 없이 만연한 문제를 해결하는 실용적인 솔루션을 제공합니다.

신속한 개발 및 커뮤니티 참여

WhatCable 출시에서 가장 주목할 만한 점 중 하나는 개발자가 커뮤니티 피드백에 즉각적으로 대응한다는 것이었습니다. Show HN 포스트가 올라온 지 몇 시간 만에, sleepingNomad는 초기 버그를 수정하고 기능 요청을 반영하여 여러 차례 업데이트를 출시했습니다.

"여기서 @sleepingNomad에게 찬사를 보냅니다. 지난 7시간 동안 16번의 릴리스를 진행하며 HN의 피드백을 실시간으로 반영하고 있습니다! * 메뉴 바 앱을 선호하지 않으시나요? 일반 앱으로 실행할 수 있습니다 * GUI를 선호하지 않으시나요? 이제 명령줄 인터페이스(CLI)로도 실행할 수 있습니다" - billyhoffman

이러한 신속한 반복 개발을 통해 표준 애플리케이션 모드(메뉴 바 아이콘을 원하지 않는 사용자를 위해)와 명령줄 인터페이스(CLI) 옵션이 모두 도입되었으며, 이는 앱의 활용도와 사용성을 크게 넓혔습니다. CLI 옵션은 사용자 요청에 대한 직접적인 응답이었으며, 이는 사용자 중심의 개선을 향한 개발자의 의지를 보여줍니다.

기술적 통찰 및 플랫폼 제한 사항

WhatCable의 상세한 케이블 정보 읽기 능력은 macOS 내의 특정 IOKit 프레임워크, 특히 IOPortTransportComponentCCUSBPDSOP에 의존합니다. 하드웨어 데이터에 대한 이러한 저수준 접근은 케이블의 성능을 담고 있는 e-marker 정보를 추출하는 데 필수적입니다.

"이것을 수행하기 위한 SPI(예: IOPortTransportComponentCCUSBPDSOP)를 어떻게 발견했는지 궁금합니다. 출시 전에는 어디에서도 언급된 적이 없었습니다." - archagon

이러한 macOS 전용 API에 대한 의존성은 왜 이 앱이 현재 Apple 생태계에만 국한되어 있고 App Store를 통해 배포포할 수 없는지를 설명해 줍니다. Apple의 App Sandbox 보안 모델은 필요한 IOKit 읽기 권한을 제한하기 때문에, 앱을 공식 스토어 외부에서 배포해야 합니다.

교차 플랫폼 가능성

WhatCable의 유용성은 다른 운영 체제에 대한 유사한 솔루션에 대한 논도로 이어졌습니다. 사용자들은 Linux 및 Windows용 대응 제품을에 대해 문의하였으며, 일부는 Linux용 lsucpd와 같은 기존 프로젝트를 언급했습니다. lsucpdlsusb 출력 결과에 Power Delivery(PD) 정보를 추가합니다. ChromeOS 또한 Mac과 동일하게 e-marker "Discover Identity" 메시지를 활용하는 내장 USB-C 케이블 식별 기능을 갖추고 있습니다.

"Apple 비 Apple 기기에서도 e-marker를 읽을 수 있나요? Linux나 Windows인가요? 이것이 가능하다면 정말 유용할 것 같습니다..." - andix

기본적인 e-marker 기술은 표준이지만, 이를 프로그래밍 방식으로 접근하는 방식은 플랫폼마다 크게 다르기 때문에 직접적인 포트팅은 어려운 작업입니다. rue,

Sources