글 작성자: 택시 운전사
반응형

자동완성 모듈의 법칙

글자를 알 수 있는 값으로 자동완성하는 모듈은 겉으로 보기에는 쉬워보인다. 그러나 많은 UI들이 이를 제대로 수행하지 못하고 있다. 이에 대해 개별적으로 불만을 제기하기 보다는, 주로 지켜지지 않는 몇 가지 법칙들을 적어보려한다.

 

 이러한 법칙들이 최선이 아닌 경우가 있을 수도 있다. 그러나 이러한 법칙을 지키지 않는 경우에는 합당한 이유가 있어야한다. (예를 들어, 미국의 주의 리스트처럼 어떠한 법칙은 입력 영역이 고정된 집합 안에 있는 값으로 채워지지 않으면 적용하지 않는다.) 이러한 법칙들을 따른다면, 적어도 정상 수준의 경험을 줄 수 있을 것이다.

  • 정확하게 일치하는 것들은 항상 먼저 배치한다. 만약 사용자가 찾으려는 대상을 정확하게 입력했다면, 다른 대상들은 항상 사용자가 입력한 정확한 대상의 아래에 위치해야 한다.
  • 정확하게 일치하는 것 이외에도, 접두사가 일치하는 대상을 먼저 배치한다. 만약 내가 "Fr"을 쳤다면 나는 "San Francisco"가 아닌, "Fresno"를 원한 것이다.
  • 접두사 일치여부 이후에는, substring의 일치여부를 확인한다. 사용자는 단어의 앞부분부터 입력하지, 중간부터 입력하기 않기 때문에 부분문자열의 일치부터 확인하게되면, 항상 잘못된 결과를 초래할 것이다.
  • 만약 일치하는 것이 없다면, 다음 입력값의 subsequence와의 일치를 확인한다. 이는 특정 상황에서만 유용하다.
  • 만약 subsequencesubstring과의 일치가 없다면, 근사적 일치를 확인한다. 이것이 필요한 경우는 드믈다.
  • 일치는 알파벳순으로 정렬되어야한다.
  • 어떤 대상이 다른 것의 접두사일 때, 가장 짧은 것을 먼저 배치한다.
  • 대소문자 구분 기능을 넣지 않는다면, 일치는 아마 대소문자 구분이 없어야할 것이다.

📚 Reference

반응형