오래된 운영체제(OS)인 윈도우 XP(Windows XP)가 사용자 계정 생성 시 초기 프로필 사진을 어떤 방식으로 선택했는지에 대한 기술적 비밀이 공개되어 개발자 커뮤니티에서 흥미를 끌고 있습니다. 마이크로소프트(Microsoft)의 개발 블로그를 통해 알려진 이 내용은, 단순히 무작위로 고르는 것을 넘어 당시의 시스템 환경과 효율성을 고려한 정교한 알고리듬이 숨어 있었음을 보여줍니다.
윈도우 XP는 `%ALLUSERSPROFILE%\Application Data\Microsoft\User Account Pictures\Default Pictures` 디렉터리에 있는 사진들 중에서 하나를 선택했습니다. 이때 사용된 핵심 기술은 '저수지 샘플링(reservoir sampling)'의 k=1 특수 사례입니다. 이 방식은 파일 수를 미리 세지 않고 디렉터리를 한 번만 순회하면서 사진을 고르는 것이 특징입니다. n번째 사진을 만날 때마다 1/n의 확률로 현재 선택된 사진을 교체하는 방식으로, 마지막 항목의 선택 확률이 1/n이 되도록 보장합니다. 난수 생성에는 `RtlRandomEx` 함수를 사용했으며, `GetTickCount()`의 현재 값을 초기 시드(seed)로 설정했습니다. 또한, 최대 100개의 사진만 샘플링한 후 중단하는 안전장치를 두어, 디렉터리에 수많은 파일이 있더라도 과도한 시스템 부하를 방지했습니다.
이러한 단일 순회(single pass) 방식은 전체 파일 수를 세고 다시 해당 위치를 찾아가는 두 번의 순회 방식보다 파일 시스템 호출(file system call)을 줄여 효율적입니다. 특히 코드 실행 중 디렉터리의 파일 수가 변경되어도 불일치를 처리할 필요가 없다는 장점이 있습니다. 이는 CPU 연산과 디스크 접근이 지금보다 훨씬 비쌌던 시절, 제한된 하드웨어 자원 속에서 최적의 성능을 끌어내기 위한 개발자들의 고민과 노력이 담긴 결과로 해석됩니다. 이처럼 사소해 보이는 기능 하나에도 깊이 있는 기술적 고려가 있었음을 보여주며, 과거 소프트웨어 개발의 장인정신을 엿볼 수 있는 사례입니다.