개발세계의 흥미로운 12가지 비하인드 스토리

작성 : 2024-10-26수정 : 2024-10-26

목차 펼치기

 Created By GPT4-o

Created By GPT4-o

머리말

딱딱할 것 같은 개발 세계에는 코드와 알고리즘만큼이나 흥미진진한 이야기가 숨어 있어요. 그 중에서 12가지의 재미있는 비하인드 스토리를 소개합니다. GitHub의 맥주 마케팅부터 '버그'라는 용어의 유래까지, 기술의 발전 과정에서 일어난 우연한 사건들과 개발자들의 유머, 그리고 때로는 후회스러운 결정들을 만나볼 수 있어요. 이 이야기들을 통해 개발 세계의 의외로 인간적이고 재미있는 면모를 발견하실 수 있을 거예요.



일단 맥주 한 잔 하실래요? Github의 맥주 마케팅

GitHub의 초기 성장 전략은 독특하면서도 매우 효과적이었어요. 기술 및 개발자 컨퍼런스가 끝난 후, 드링크업 파티를 개최하여 개발자들에게 맥주를 제공하며 서비스를 소개하는 마케팅을 펼쳤어요. 이러한 접근 방식은 개발자들 사이에서 GitHub에 대한 자연스러운 대화를 유도하고, 많은 개발자들의 관심을 끌어 플랫폼으로의 유입을 촉진했어요. 결과적으로 GitHub는 급속도로 성장하여, 마이크로소프트가 약 75억 달러에 인수할 만큼의 가치를 인정받았고, 현재는 세계 최대의 소스 코드 호스팅 플랫폼이 되었어요.




시간은 또 틱톡 - 2038년 문제

이미 지나간 Y2K 문제와 다르게 우리를 기다리고 있는 시간 관련 문제가 있어요. 유닉스 시간은 1970년 1월 1일부터 경과한 초 단위로 저장하는데, 32비트 시스템에서는 2038년 1월 19일 03:14:07 UTC에 시간 표현이 오버플로우돼요. 그렇게 되면 초깃값인 1970년 1월 1일 자정으로 시간이 돌아가버리는 문제가 발생할 수 있어요. 많은 시스템에 영향을 미칠 수 있는 이 문제는 '2038년 문제'라고 불려요. 다행히 64비트 시스템으로의 전환이 꾸준히 이루어지고 있어 점진적으로 해결되고 있지만, 여전히 주의가 필요한 이슈예요. 참고로 64비트를 사용하면 UTC 기준 서기 2,922억 7,702만 6,596년 12월 4일 15시 30분 8초에 오버플로우 될 수 있어요.




표준으로 박제되어버린 오타, Referer 헤더

HTTP 명세의 Referer 헤더는 영어 단어 'Referrer'의 스펠링에서 'r'이 하나 빠진 오타로 기재되었어요. 초기 HTTP 스펙을 추가로 제안할 때 발생한 오타였는데, RFC-1945 문서에 그대로 반영되었고 지금까지도 Referer로 널리 사용되고 있어요.



나야, 찻주전자. 418 I'm a Teapot

HTTP 418 상태 코드는 "I'm a Teapot"은 서버가 커피를 찻주전자에 끓이는 것을 거절한다는 의미예요. 1998년 4월 1일에 만우절을 담아 작성한 RFC2324에서 만들어진 HTCPCP(Hyper Text Coffee Pot Control Protocol) 통신에서 사용하는 코드예요. HTCPCP의 메소드는 `BREW`, `GET`, `PROPFIND`, `WHEN`이 있고 헤더에는 `milk-type`, `syrup-type`, `alcohol-type`이 있어요.

참고로 커피를 내릴 떄 유럽은 에스프레소 머신이 일반적이고, 미국은 커피메이커가 일반적이라고 해요.



Vanilla JS는 0바이트

Vanilla JS는 순수 자바스크립트를 지칭해요. [vanilla-js.com](https://vanilla-js.com)에서 vanilla.js 파일을 다운로드하면 0바이트의 빈 파일이 다운로드돼요. 필요한 모든 기능을 체크해도 0바이트인 것을 보면 다른 프레임워크들의 무게감이 새삼 다르게 느껴져요.



우린 여기까지야. left-pad 의존성 사태

2016년, 단 11줄의 코드로 이루어진 left-pad라는 NPM 패키지가 갑자기 삭제되면서 수많은 웹사이트가 작동을 멈추는 사태가 발생했어요. 이 작은 패키지는 문자열의 왼쪽에 공백을 채우는 매우 단순한 기능을 수행했지만, 수많은 다른 패키지들이 이에 의존하고 있었어요. 오픈 소스를 활용하여 빠르게 기술이 발전할 수 있었지만, 그 이면에는 과도한 의존성 문제가 있다는 것을 상기시켜요.



게릴라패치에서 몽키패치로

'몽키패치'라는 용어는 런타임에 프로그램의 코드를 수정하는 기법을 지칭해요. 사실 처음에는 '게릴라패치'로 불렸는데, 이는 정규 배포 과정을 거치지 않은 패치를 의미했어요. 이후 발음이 비슷한 '고릴라패치'로 변경되었다가, 최종적으로 '몽키패치'가 되었어요.



무한스크롤의 후회

무한 스크롤은 2006년 Aza Raskin(에이자 래스킨)이 개발한 기능이에요. 무한스크롤에는 정지 신호가 존재하지 않기 때문에 사용자들이 많은 시간을 낭비하도록 유도하고, 정보의 깊이를 가늠하기 어렵게 만들어요. 이러한 특성 때문에 사용자들을 붙잡아두고 싶어하는 많은 서비스들에서 사용되고 있어요. 특히 숏폼 콘텐츠 상태계에 도입되면서 그 중독성을 배가시키고 있어요. 후에 에이자 래스킨은 이 기능을 만든 것을 반성하며 정지신호를 복원하자는 주장을 하고 있어요. 윤리적 관점에서 기술과 디자인을 고민해야할 필요성이 있음을 보여주고 있어요.


넷플릭스 오리지널 다큐멘터리 시리즈 <앱스트랙트:디자인의 미학>의 이안 스폴터편에서 에이자 래스킨의 인터뷰를 볼 수 있어요.




"Hello, World!"의 기원

프로그래밍 입문자들의 첫 프로그램으로 유명한 "Hello, World!"는 브라이언 커니핸에 의해 처음 소개되었어요. 1972년 B 언어 튜토리얼에서 처음 등장했지만, C 언어 버전으로 널리 알려진 건 1978년 커니핸과 데니스 리치가 함께 쓴 "The C Programming Language" 책에서였어요. 초기에는 "hello, world"로 소문자였다가, 이 책에서 "Hello, World!"로 대문자화되었죠. 이후 이 간단한 프로그램은 거의 모든 프로그래밍 언어의 입문 예제로 사용되며, 프로그래밍 세계의 상징적인 첫 걸음이 되었어요.



비상! 실제 버그 상황

'버그(Bug)'라는 용어는 기술적 문제를 지칭하는 데 사용되고있어요. 이는 1947년 실제로 '버그'가 발견된 사례가 있어요. 그레이스 호퍼의 팀이 컴퓨터의 오작동 원인을 찾던 중 릴레이에 끼어 회로를 방해하고 있던 나방을 발견했어요. 그들은 이 나방을 로그북에 테이프로 붙이고 "First actual case of bug being found(실제 버그가 발견된 첫 사례)"라고 기록했어요. 사실 1878년 토마스 에디슨이 이미 이 용어를 사용한 기록이 있는 것을 보면, 이 용어의 역사는 생각보다 더욱 오래되었네요.



Java와 JavaScript의 관계

Java와 JavaScript라는 유사한 두 이름은 두 언어 사이의 관계에 혼란과 오해를 야기하고 있지만, 실제로는 전혀 다른 언어예요. 이름만 비슷할 뿐 완전히 다른 언어예요. JavaScript는 1995년 Netscape의 Brendan Eich(브랜든 아이크)에 의해 개발되었는데, 처음에는 'Mocha'라는 이름으로 시작했어요. 이후 'LiveScript'로 변경되었다가, Netscape와 Sun Microsystems(Java의 개발사)의 라이선스 계약 결과로 최종적으로 'JavaScript'가 되었는데, 이는 당시 인기 있던 Java의 명성을 활용하기 위한 마케팅 전략이었어요.



640KB면 충분하다구요?

빌 게이츠가 "640KB면 누구에게나 충분할 것이다"라고 말했다는 일화가 있어요. 하지만 빌 게이츠 본인은 자신이 절대 그런 말을 한 적이 없다고 부인하고 있어요. 기술의 발전 속도를 과소평가한 대표적인 사례로 인용되지만, 실제로는 도시 전설일 가능성이 높아요. 그래도 이 일화는 기술 발전의 예측 불가능성을 보여주는 재미있는 사례로 남아있어요.

Wanna get in touch?

All Icons byiconiFy