GN⁺: 남성이 00:30에 "gimme gimme gimme"를 출력한 이유 (2017)
(unix.stackexchange.com)질문
- 특정 시간에 자동 테스트가 실패하는 이유에 대한 질문이 제기됨. 테스트는 00:30에 실패하며, 예상치 못한 "gimme gimme gimme"라는 메시지를 stderr에 출력함.
답변 1
- 이 문제는
man
명령어의 이스터 에그 때문임. -
man
명령어를 00:30에 실행하면 "gimme gimme gimme"라는 메시지가 출력됨. - 이 이스터 에그는 ABBA의 노래 "Gimme! Gimme! Gimme! (A Man After Midnight)"에서 유래함.
- 이 문제는 커밋 84bde8을 통해 해결됨. 이제
man -w
를 실행해도 이 이스터 에그가 발생하지 않음.
답변 2
- 이 이스터 에그는
man
명령어의 소스 코드에 포함된 것으로, 특정 시간에만 출력됨. - RHEL, OpenSUSE, Fedora, Debian 등 여러 배포판에서 발견됨.
- 이스터 에그는
man-db
의 개발자인 Colin Watson에 의해 제거됨.
답변 3
- 이 이스터 에그는
man-db
2.8.0 버전에서 제거될 예정임. - 이스터 에그는 많은 사람들에게 웃음을 주었지만, 일부에게는 불편함을 주었음.
- Colin Watson은 향후 다른 형태의 이스터 에그를 추가할 가능성을 열어둠.
GN⁺의 정리
- 이 기사는
man
명령어의 이스터 에그로 인해 발생한 문제를 다루고 있음. 이스터 에그는 ABBA의 노래에서 영감을 받아 추가된 것으로, 특정 시간에만 작동함. - 이 문제는
man-db
의 개발자가 이스터 에그를 제거하면서 해결됨. 이로 인해 자동화된 테스트 환경에서의 예기치 않은 오류가 방지됨. - 이 기사는 소프트웨어 개발 및 테스트 환경에서 이스터 에그가 어떻게 문제를 일으킬 수 있는지를 보여주는 좋은 사례임. 비슷한 기능을 가진 다른 프로젝트로는
info
명령어가 있음.
이런 류의 이스터에그를 넣을거라면 표준입출력이 TTY인지 한 번 검사하는 것도 좋은 방법이죠. 셸스크립트라면 [[ -t 1]]
로 검증 가능합니다.
Hacker News 의견
-
과거에 텔레메디신 웹 앱을 개발할 때, 환자들이 온라인 설문지를 작성하여 의사에게 답변을 보여주는 기능을 구현했음. 각 의료 시스템의 부서마다 다른 논리로 질문을 표시해야 했음. 디버그 과정에서 실수로 남긴 "I SEE YOU!!!"라는 메시지가 정신과 환자에게 발견되었음. 이후 디버그 마커로 aaa와 111을 사용하게 되었음
-
소프트웨어가 무료이고 유지보수자가 급여를 받지 않는다면, 몇 가지 이스터에그는 작은 대가임. 한 회사에서 개발자가 T&C에 사용자가 영혼을 회사에 양도한다는 내용을 추가했음. 이는 경영진이 T&C를 검토하는지 확인하기 위한 것이었음
-
코딩은 재미있어야 하며, 오픈소스가 너무 진지해지는 것은 기업 때문임. 개인적으로 프로그램을 작성할 때 이스터에그를 추가하여 사용자에게 인간적인 면을 상기시킴
-
man-db의 개발자인 Colin Watson이 이스터에그를 완전히 제거했음. 이는 사용자에게 해를 끼칠 수 있기 때문임
-
FreePBX를 설정할 때 666 확장 번호에 Michael Jackson의 Thriller에서 Vincent Price의 웃음소리를 추가했음. 그러나 시스템 오류로 모든 전화가 666으로 연결되어 동료들이 불쾌함을 느꼈음
-
QNAP Celeron NAS에 Ubuntu를 설치했으나 특정 시간에 커널 패닉이 발생했음. 이는 J1900 장치의 실리콘 열화 버그 때문이었음
-
man 명령어를 인수 없이 호출하는 테스트가 있는 이유에 대한 가설이 필요함. 이는 man이 설치되었는지 확인하기 위한 것일 수 있음