-
사진 파일을 알파벳순으로 정렬하려 했으나 운영체제와 파일 관리자의 정렬 결과가 다름
- 리눅스 ls에서는 정상적으로 정렬되지만, Windows, Google Drive, KDE Dolphin 등 대부분의 GUI 파일 매니저는 숫자를 포함한 파일명을 수치적으로 해석하는 “자연 정렬(natural sort)” 을 적용함
- 이로 인해 file-10.txt가 file-9.txt보다 앞에 오는 등, 전통적인 문자열 정렬과 다른 결과가 발생함
- 실제 문제의 원인은 두 휴대폰이 다른 파일명 규칙을 사용해, 하나는 초 뒤에 밀리초를 바로 붙이고 다른 하나는 언더스코어로 구분한 탓에 정렬 기준이 달라진 것
- 결국 해결책은 파일명 규칙을 통일하거나 각 파일 관리자의 숨겨진 설정을 수정하는 것뿐이며, 글쓴이는 “컴퓨터가 사용자의 지시보다 추측을 우선하는 시대”를 아쉬워함
배경 및 문제 상황
- 글쓴이는 아버지와 하이킹을 하면서 각자의 Android폰으로 사진을 찍은 뒤, 모든 사진을 하나의 폴더에 저장함
- 사진 파일명의 규칙은 IMG_YYYYMMDD_HHmmss 혹은 그 뒤에 추가 숫자와 .jpg가 옴
- 이런 파일명은 연월일과 시간 순서로 되어 있으니, 파일을 알파벳순(사전순)으로 정렬하면 촬영 시간순으로 정렬될 것으로 생각함
- Windows PC, Google Drive, KDE Dolphin 등을 사용할 때, 동일한 규칙의 파일들이 순서대로 정렬되지 않음
- 예: 아버지 폰으로 찍힌 5:54 사진이 9:20 사진보다 먼저 나오고, 12:11 사진 이후에 위치함 등 제대로 정렬되지 않는 문제 발생
- Gnome, 스마트폰의 다른 파일 관리자 등도 결과가 동일함
- 리눅스 ls 명령에서는 올바른 순서를 유지해 혼란 가중
원인 분석
- 처음에는 두 폰 중 하나가 언더바(_) 대신 특이 문자를 썼을 것이라 생각했으나, Linux 명령어 ls로 확인하니 정상 정렬됨
- 다양한 Linux 배포판, OpenBSD 서버에서도 ls는 올바르게 알파벳순 정렬함
- 이에 반해 다수의 GUI 파일 관리자(Windows, Google Drive, KDE Dolphin 등)은 파일명에 숫자가 있을 경우 진짜 숫자 크기로 비교함
-
알파벳 순서 대신 자연 정렬(natural sorting) 을 기본 적용
- 자연 정렬은 문자열 속 숫자를 단순한 문자값이 아닌 숫자값으로 비교
- 예: file-9.txt < file-10.txt → 사람이 기대하는 순서
- 그러나 전통적 정렬은 1 < 9라서 file-10.txt가 앞섬
- 하지만 요즘 파일 관리자는 "숫자부"가 있으면 그 부분을 숫자의 실제 값으로 해석해 9가 10보다 앞서 오도록 강제로 정렬함
- 파일명을 만든 사용자가 의도한 순서와 달라질 수 있음
실제 문제의 원인 및 해결법
- 아버지의 폰은 밀리초 숫자를 초 뒤에 바로 붙이고, 본인 폰은 언더바로 구분해서 표기함
- 아버지 폰: 초 뒤에 바로 밀리초를 붙임 → 숫자가 커져 뒤로 밀림
- 본인 폰: 언더스코어로 구분 → 별도 문자열로 처리됨
- 해결법: 둘 중 한 쪽의 파일명을 일관된 패턴으로 재정렬하면 문제 해결됨
- KDE Dolphin의 경우 옵션에서 순수 알파벳순 정렬을 선택할 수 있으나, 설정이 숨겨져 있어서 번거로움
- 여러 프로그램마다 기능이 다르므로 매번 별도 설정 필요할 수 있음
글쓴이의 결론
- “알파벳 순서”를 지정했음에도, 소프트웨어가 사용자의 의도를 추측해 다른 정렬을 적용하는 것을 비판
- 과거처럼 컴퓨터가 지시된 대로만 동작하던 단순한 방식이 그리움