ComboBox만으로는 부족한 이유

당신은 비즈니스 애플리케이션을 구축합니다. 그리고 반복적으로 동일한 문제들을 해결합니다.

고객 검색 기능을 만듭니다. 상품 자동 완성 필드를 만듭니다. 선택 팝업을 만듭니다.

대부분의 UI 라이브러리는 이것들을 별개의 위젯으로 취급합니다. 룩업(lookup)이나 자동 완성 박스라고 부르죠. 이것은 실수입니다.

이것들은 서로 다른 문제가 아닙니다. 동일한 문제입니다. 저는 이 개념을 Locator라고 부릅니다.

비즈니스 애플리케이션은 참조(reference)에 의존합니다.

  • 판매 주문은 고객을 참조합니다.
  • 송장은 공급업체를 참조합니다.
  • 트랜잭션은 상품을 참조합니다.

데이터베이스는 이것들을 ID로 저장합니다. 하지만 사용자는 ID로 생각하지 않습니다. 사용자는 이름, 코드 또는 바코드로 생각합니다.

진짜 문제는 ID를 어떻게 저장하느냐가 아닙니다. 문제는 사용자가 자신이 알고 있는 정보를 사용하여 어떻게 올바른 엔티티를 찾아내느냐 하는 것입니다.

ComboBox는 작은 리스트에는 적합합니다. 국가나 통화 목록에 사용하세요. 이런 리스트는 행이 수십 개 정도에 불과합니다.

ComboBox는 대규모 데이터셋에서는 실패합니다. 10만 명의 고객을 스크롤하며 찾을 수는 없습니다. 이 규모에서는 더 이상 리스트에서 선택하는 것이 아니라, 레코드를 찾아내는(locating) 것입니다.

Locator는 UI 컨트롤이 아닙니다. 하나의 동작입니다.

Locator는 단순히 값을 반환하는 것 이상의 일을 합니다. 비즈니스 참조를 해결합니다.

사용자가 상품을 선택할 때, 앱에는 단순히 ProductId만 필요한 것이 아닙니다. 단가, 부가세(VAT)율, 측정 단위 등이 필요합니다.

Locator는 특정 컨텍스트 내에서 참조를 해결함으로써 이 모든 것을 제공합니다.

UI는 변할 수 있습니다:

  • 데스크톱에서는 검색 가능한 두 개의 필드처럼 보일 수 있습니다.
  • 그리드에서는 커스텀 에디터처럼 보일 수 있습니다.
  • 모바일에서는 검색 화면처럼 보일 수 있습니다.

외형은 변할 수 있지만, 동작은 동일하게 유지됩니다.

좋은 Locator는 사용자를 존중합니다. 숙련된 사용자는 키보드를 사용합니다. Locator는 고유한 일치 항목을 찾으면 즉시 선택을 완료해야 합니다. 여러 개의 일치 항목이 있는 경우에만 선택을 요청해야 합니다.

검색, 자동 완성, 팝업을 서로 무관한 위젯으로 취급하는 것을 멈추십시오. Locator를 비즈니스 소프트웨어의 근본적인 개념으로 인식하십시오.

출처: https://dev.to/tbebekis/-fundamental-concepts-of-business-applications-i-why-a-combobox-is-not-enough-pb4