자동으로 기능이 생기는데 매번 로고 파일부터 찾아야 한다면 확장할 때마다 사람이 막히게 된다. 같은 플랫폼의 기능을 모두 같은 그림으로 두면 이번에는 버튼을 구별하기 어렵다. 북극성에서는 플랫폼 계열과 실제 기능, 개별 프로그램을 구분하는 작은 무늬를 조합해 로컬에서 로고를 만들었다.

하나의 그림에 세 가지 질문을 나눠 담는다

pluginLogo는 platform·symbol·identity를 따로 만든다. platform은 색 계열을 정하고 symbol은 글쓰기·예약·다운로드 같은 기능의 도형을 고른다. identity는 실제 프로그램 ID에서 온 구별 무늬다. 같은 플랫폼에 같은 기능이 여러 개 있어도 동일한 한 장으로만 합쳐지지 않게 했다.

이 구조에서는 새 프로그램이 기존 규칙에 맞으면 따로 이미지 파일을 지정하지 않아도 된다. 중앙 도형은 같을 수 있다. 같은 기능이라는 신호까지 일부러 다르게 그리면 배워야 할 그림만 늘어난다. 계열의 일관성과 개별 항목의 구별을 다른 수준에서 다루는 쪽을 택했다.

도메인은 글자 포함이 아닌 호스트 경계로 읽는다

사이트 주소를 URL로 읽고 hostname이 실제 도메인이거나 그 하위인지 확인한다. 알려진 플랫폼 이름이 경로나 다른 호스트 뒤에 들어 있다는 이유만으로 그 색을 붙이지 않는다. 사이트 정보가 아예 없는 범용 현재 페이지 도구에는 이름을 참고하는 별도 보조 규칙이 있다.

이 판단은 표시용 분류다. 로고의 호스트 분류 함수가 로그인·권한 검사까지 수행하는 것은 아니다. 플랫폼 모음 함수와도 세부 조건이 다르므로 같은 보안 검증기로 취급하지 않았다. 내가 보존하려는 것은 익숙한 색이 가짜 사이트 문자열 때문에 잘못 붙는 일을 줄이는 표시 규칙의 정확한 범위다.

작은 방향 차이도 업무 의미가 다르다

기능 도형은 순서가 있는 규칙으로 고른다. 영상 다운로드는 재생 표시와 아래 방향 화살표를 함께 쓰고 업로드는 위 방향을 쓴다. 수집은 지구와 자료 묶음으로 표현한다. 단순히 화살표 한 개로 통일하면 내려받기와 수집, 올리기가 너무 비슷하게 보일 수 있었다.

이름의 단어로 분류하는 만큼 모든 사람의 표현을 완벽하게 이해하지는 못한다. 모르는 경우에도 기본 automation 도형을 돌려주고 새 분류가 필요하면 공통 함수에서 보완한다. 로고에 업로드 도형을 추가했다는 과거 기록을 실제 업로드 실행 기능을 그때 새로 만들었다는 증거로 쓰지도 않는다.

짧은 해시 대신 실제 UUID 전체를 작은 무늬에 쓴다

실제 프로그램 ID는 UUID다. 하이픈을 뺀32개16진수 문자를 하단 작은 사각형의 불투명도로 표현해128비트를 반영한다. 다른 ID가 같은 짧은 hash로 줄어들어 같은 SVG가 되는 일을 피하려는 방식이다. 마지막 비트만 다른 두 ID도 생성 문자열이 달라야 한다.

그렇다고 사람이32px 버튼에서 모든 ID를 육안으로 구별한다는 뜻은 아니다. 미세한 불투명도 차이는 작게 보일 수 있다. 이 보장은 생성된 자료의 구별이며 접근성 이름과 기능 설명을 대체하지 않는다. 기계적으로 다르다는 결과와 사용자가 바로 알아본다는 결과를 나누어 설명했다.

캐시가 없어져도 같은 입력이면 같은 로고다

pluginLogoSVG는 고정 도형과 제한된 색을 조합한다. 이름·사이트 원문이나 임의 SVG를 결과에 직접 끼워 넣지 않는다. pluginLogoURL은 생성 결과를 data 이미지로 바꾸고 작은 캐시에 보관한다. 캐시가 밀려나도 같은 분류와 ID에서는 같은 결과를 다시 만들 수 있다.

고정·활성·배열 순서가 달라져도 로고 입력이 같으면 결과는 같다. 반면 이름이나 사이트가 바뀌어 기능 분류가 달라지면 중앙 도형이나 계열도 달라질 수 있다. 같은 ID이기만 하면 어떤 메타데이터 변경에도 그림이 영원히 같다고 말하지 않는다. 이 생성은 모델·파비콘 다운로드·외부 이미지 요청을 하지 않는다.

생성 규칙과 실제 화면 검수의 근거를 나눈다

기존 시험은 유사 도메인 거절, 기능별 도형, 기본값,2048개 UUID의 생성 결과 구별, 캐시가 밀린 뒤 동일성, 위험 문자열이 도형에 들어가지 않는지를 본다. 이번 글에서는 해당 시험과 함수를 읽었다. 그 숫자를 이번에 새로 실행한 시험 수로 적지 않는다.

당시 문서에는 상단·퍼즐·관리·실행 화면에서 같은 공통 생성기를 사용한 검수도 남아 있다. 이번 콘텐츠 작업에서 원래 브라우저를 열어 다시 본 결과는 아니다. 새 기능이 늘어도 같은 규칙을 적용할 수 있다는 구현을 설명하되 표시의 일관성, 접근성, 실제 실행 성공을 각각 다른 확인 대상으로 남긴다.