마지막 절은 무엇을 보여주지 않을지에 관한 것입니다. 자동완성은 검색량을 그대로 비추는 거울이 아닙니다.
제안이 검색을 만든다
제안에 오른 검색어는 눌러서 검색됩니다. 그 검색이 다시 그 검색어의 점수를 올립니다. 한 번 오른 것은 잘 내려가지 않습니다.
이 되먹임 때문에 제안 목록은 사실을 보여주는 것이 아니라 사실을 만드는 쪽에 가깝습니다. 그래서 무엇을 올릴지에 판단이 필요합니다.
되먹임을 약하게 하는 방법이 하나 있습니다. 제안을 눌러 검색한 것과 직접 입력해 검색한 것을 다르게 세는 것입니다. 직접 입력한 것에 더 큰 무게를 주면 순환이 느슨해집니다.
검색량이 많아도 보여주지 않는 것
| 종류 | 왜 |
|---|
| 사람 이름에 붙는 나쁜 말 | 사실이어도 그 사람에게 해가 된다 |
| 개인정보와 연락처 | 검색량이 많을수록 더 위험하다 |
| 특정 집단을 향한 혐오 표현 | 제안이 그것을 정상으로 보이게 한다 |
| 위험한 행동을 돕는 것 | 제안이 접근을 쉽게 만든다 |
목적을 다시 확인하면 판단이 쉬워집니다. 자동완성의 목적은 많이 검색된 것을 알려주는 것이 아니라 사용자가 찾으려는 것을 빨리 찾게 하는 것입니다. 그 목적에 필요하지 않은 제안은 뺄 수 있습니다.
걸러내기를 어디에 두나
만들 때 걸러내는 것과 읽을 때 걸러내는 것이 다릅니다.
| 위치 | 성질 |
|---|
| 만들 때 | 값싸다. 하루 한 번이다 |
| 읽을 때 | 비싸다. 초당 2만 번이다 |
기본은 만들 때입니다. 읽을 때 거르면 그 비용이 20배로 곱해집니다.
예외는 급하게 내려야 하는 것입니다. 다음 갱신까지 기다릴 수 없으면 읽을 때 빼는 짧은 목록을 둡니다. 이 목록은 작게 유지하고, 다음 갱신에서 만들 때 걸러내기로 옮깁니다.
하지 않기로 한 것
| 뺀 것 | 이유 |
|---|
| 오타 교정 제안 | 별도 문제다. 정확한 접두사를 먼저 다룬다 |
| 개인 검색 기록 기반 제안 | 답이 사용자마다 달라지면 캐시가 무의미해진다 |
| 검색 결과 미리 보여주기 | 자동완성은 검색어를 제안할 뿐이다 |
| 실시간 정확한 순위 | 하루 1회 갱신이 요구사항이다 |
두 번째가 이 아키타입에서 가장 큰 절제입니다. 개인화는 품질을 올리지만 답이 모두에게 같다는 자산을 버립니다. 그 자산이 초당 2만을 감당하게 해 주고 있습니다. 넣으려면 그 비용을 계산한 뒤에 넣습니다.
Q.제안 목록에 되먹임이 있다는 것이 무슨 뜻입니까
제안에 오른 검색어가 눌려서 검색되고, 그 검색이 다시 점수를 올린다는 뜻입니다.
한 번 오른 것은 잘 내려가지 않습니다. 그래서 제안 목록은 사실을 보여주는 것이 아니라 사실을 만드는 쪽에 가깝습니다.
되먹임을 약하게 하려면 제안을 눌러 검색한 것과 직접 입력해 검색한 것을 다르게 셉니다. 직접 입력한 것에 더 큰 무게를 주면 순환이 느슨해집니다.
흔한 실수: 집계를 단순히 검색 횟수로 두는 것. 어디서 온 검색인지 기록하지 않으면 나중에 무게를 다르게 줄 수도 없습니다. 수집 단계에서 출처를 남겨야 합니다.
Q.검색량이 많은데도 제안에서 빼야 하는 것이 있습니까
있습니다. 목적을 확인하면 판단이 쉬워집니다.
| 종류 | 왜 |
|---|
| 사람 이름에 붙는 나쁜 말 | 사실이어도 그 사람에게 해가 된다 |
| 개인정보와 연락처 | 검색량이 많을수록 더 위험하다 |
| 혐오 표현 | 제안이 그것을 정상으로 보이게 한다 |
자동완성의 목적은 많이 검색된 것을 알려주는 것이 아니라 찾으려는 것을 빨리 찾게 하는 것입니다.
흔한 실수: 검색량이 사실이므로 보여주는 것이 중립이라고 보는 것. 제안은 되먹임으로 그 검색을 더 만듭니다. 보여주는 것 자체가 개입이므로 중립인 선택은 없습니다.
Q.걸러내기를 만들 때 하시겠습니까 읽을 때 하시겠습니까
기본은 만들 때입니다.
| 위치 | 성질 |
|---|
| 만들 때 | 값싸다. 하루 한 번이다 |
| 읽을 때 | 비싸다. 초당 2만 번이다 |
읽을 때 거르면 그 비용이 20배로 곱해집니다.
예외는 급하게 내려야 하는 것입니다. 다음 갱신까지 기다릴 수 없으면 읽을 때 빼는 짧은 목록을 둡니다.
흔한 실수: 그 짧은 목록을 계속 키우는 것. 편하다는 이유로 쌓으면 읽기 경로에 점점 큰 검사가 들어옵니다. 다음 갱신에서 만들 때 걸러내기로 옮기는 것을 규칙으로 둬야 목록이 작게 유지됩니다.
Q.개인 검색 기록으로 제안을 개인화하자는 제안을 어떻게 판단하시겠습니까
비용을 계산한 뒤에 판단합니다. 답이 모두에게 같다는 자산을 버리는 결정입니다.
그 자산이 초당 2만을 감당하게 해 주고 있습니다. 개인화하면 캐시를 사용자 앞까지 밀 수 없고, 요청이 그대로 우리에게 옵니다.
| 함께 뺀 것 | 이유 |
|---|
| 오타 교정 제안 | 정확한 접두사를 먼저 다룬다 |
| 검색 결과 미리 보여주기 | 자동완성은 검색어를 제안할 뿐이다 |
흔한 실수: 개인화를 품질 개선으로만 보는 것. 여기서는 비용 구조를 바꾸는 결정입니다. 넣으려면 개인 신호를 집단 단위로 묶거나 공통 답을 클라이언트에서 재정렬해 재사용을 지켜야 합니다.
먼저 스스로 답해보고 아래 답변과 견줘보세요. 막히는 부분은 문제로 확인할 수 있어요.
읽었으면 문제로 확인해보세요
검색어 자동완성 설계 문제를 풀면 틀린 문제가 자동으로 노트에 쌓입니다. 가입 없이 5문제를 먼저 풀어볼 수도 있어요.