기원을 알 수 없는 코드들이 있군요

hardboiled65의 이미지

요새 Wayland를 공부하고 있는데 마우스 커서에 관한 구현을 wayland-cursor 라는 라이브러리로 분리해둔 것을 알게 됐습니다. 좀 더 살펴보니 내부적으로 Xcursor 라이브러리를 사용하고 있길래(작성 후 다시 확인해보니 해당 라이브러리를 사용하는 것이 아니라 직접 API를 구현한 것으로 보입니다) 커서 테마와 관련해서 궁금증이 생겨 시스템에 설치된 테마들을 살펴봤습니다. /usr/share/icons/<테마명>/cursors 라는 디렉토리에 커서 데이터들을 저장하고 있는것을 알았습니다. 그런데 이 안에는 00008160000006810000408080010102 03b6e0fcb3499374a867c041f52298f0 같은 이름들로 링크된 파일이 몇개 있습니다. 길이로 봐선 MD5 해시 값으로 보여서 검색을 해보니 역시 맞았습니다. 제 추측으로는 아주 오래 전에 성능을 위해 하드코딩한 값으로 보이는데 문제는 아무리 검색을 해 봐도 원본 데이터를 알 수 없는 해시값이라는 겁니다. 원본 데이터를 모르니 해시값이 어떤 의미를 가질 수도 없고 따라서 더 이상 성능 향상에 도움이 되지 못하는 것으로 보입니다. 하지만 저 이름들은 아직까지 아마도 하위호환을 위해 커서 테마들 안에 포함되고 있습니다. 2021년 현재, 최신 버전의 우분투 같은 배포판에 말이죠.
또한 커서 이름에는 size_bdiag, size_fdiag 라는 각각 윈도우 우상단/좌하단, 좌상단/우하단 리사이징에 사용되는 커서가 있습니다만 이 이름이 뭘 의미하는지 도무지 알아낼 수 없었습니다. 다른 이름으로도 링크되어 있지만 여전히 호환성 때문인지 각종 테마들에 포함되어 있는걸 알 수 있습니다. 아무리 검색해도 주석 한 줄 나오지 않은 채 말이죠...
오픈소스 세계에서는 검색만 하면 뭐든 알아낼 수 있다고 생각했는데 꼭 그렇지만도 않다는걸 알게 된 케이스였습니다.