윈도우(Windows) API 개발자가 말하는 '아무것도 하지 않음'을 올바르게 처리하는 방법
API가 지원되지 않는 환경에서 예외(Exception)를 발생시키는 대신, 일관된 동작(Consistent Behavior)을 유지하는 'Inert' API 설계가 중요함
Postel의 법칙(Postel's Law)에 대한 다양한 해석과, API 호환성(API Compatibility) 유지를 위한 윈도우(Windows) API 개발 철학을 소개함
오류 처리(Error Handling)와 사용자 경험(User Experience) 개선을 위해, API 개발자와 앱 개발자 간의 책임 분담(Responsibility Sharing)에 대한 논의가 진행됨
UI 디자인(UI Design) 측면에서, 사용자가 기능을 인지하고 사용할 수 있도록 버튼 활성화(Button Activation) 및 피드백 제공(Feedback Provision)의 중요성을 강조함
Inert API 설계의 핵심 원리
핵심은 API가 특정 환경에서 기능을 지원하지 않더라도, 예외(Exception) 발생 대신 일관된 상태(Consistent State)를 유지하는 것이다. 윈도우(Windows) API 개발자는 프린팅 기능(Printing Function)이 없는 Xbox 환경에서, 프린터가 없는 것처럼 동작하도록 설계하여 기존 데스크톱 앱과의 호환성을 유지했다. 이러한 접근 방식은 API의 계약(API Contract)을 준수하면서도, 예상치 못한 오류로 인한 앱의 충돌을 방지한다.
Postel의 법칙(Postel's Law) 재해석
논의에서는 Postel의 법칙(Postel's Law)에 대한 다양한 해석이 제시되었으며, 특히 '관대하게 받아들이고, 엄격하게 처리하라'는 원칙에 대한 논쟁이 있었다. 일부 개발자는 과도한 오류 허용(Excessive Error Tolerance)이 시스템의 안정성을 저해할 수 있다고 주장하며, 명확한 오류 보고(Clear Error Reporting)의 중요성을 강조했다. 반면, 윈도우(Windows) API 개발자는 하위 호환성(Backward Compatibility) 유지를 위해, 다소 관대한 접근 방식을 취할 수밖에 없음을 설명했다.
API 개발자와 앱 개발자의 역할 분담
커뮤니티에서는 API 개발자와 앱 개발자 간의 책임 분담(Responsibility Sharing)에 대한 논의가 이루어졌다. API 개발자는 명확한 오류 메시지(Clear Error Messages)와 적절한 문서(Proper Documentation)를 제공하여, 앱 개발자가 오류를 효과적으로 처리할 수 있도록 지원해야 한다. 앱 개발자는 API의 동작을 이해하고, 오류 처리 로직(Error Handling Logic)을 구현하여 사용자에게 친절한 사용자 경험(User-Friendly Experience)을 제공해야 한다.
UI/UX 설계 관점에서의 고려 사항
UI/UX 설계 측면에서, 사용자가 기능을 인지하고 사용할 수 있도록 버튼 활성화(Button Activation) 및 피드백 제공(Feedback Provision)의 중요성이 강조되었다. 특히, 기능이 지원되지 않는 경우, 버튼을 숨기는 대신 비활성화하고, 명확한 안내 메시지(Clear Guidance Message)를 제공하여 사용자가 상황을 이해하도록 돕는 것이 중요하다. 이러한 접근 방식은 사용자의 혼란(Confusion)을 줄이고, 사용자 경험(User Experience)을 향상시킨다.