와우! 이곳을 찾다니, 정말 축하해요!
이곳은 루비의 가장 비밀스러운 보물들이 가득한 곳이에요.



이스터 에그란 (Easter egg) ?
프로그래머들이 코드 속에 몰래 숨겨 놓는 메시지나 기능을 말해요.
<헬로 루비>에도 이스터 에그가 곳곳에 숨어 있지요.
과연, 여러분이 모두 찾아낼 수 있을까요?

루비의 비밀들!
‘루비와 루비의 친구들을 소개합니다!” 를 펼쳐 보세요.(《헬로 루비: 코딩이랑 놀자!》 8쪽)
이곳에는 프로그래머들이 쓰는 유머와 메시지가 숨어 있어요.
루비와 루비 친구들의 ‘생일’은 각각의 프로그램들을 실제로 만든 날이에요.
‘흥미로운 것’과 ‘싫어하는 것’에는 각 프로그램의 특징을, ‘좋아하는 말’에는 프로그램들이 지향하는 문구가 담겨 있지요.



루비
장난꾸러기(mischief maker) 루비는 농담을 잘 하고 놀기를 좋아해요.
하지만 나쁜 말을 하거나 친구들을 괴롭히진 않아요. 루비의 이런 성격은 단순하면서도 복합적이고 자연스러운 루비 프로그래밍 언어의 특징을 담은 거예요.
루비에 대해 더 알고 싶다면?
https://ko.wikipedia.org/wiki/루비_(프로그래밍_언어)
https://www.ruby-lang.org/ko/about/

로봇 친구들
안드로이드 운영체제(OS)에는 젤리빈, 롤리팝, 마시멜로 같은 디저트 이름이 많아요.
로봇 캐릭터가 상징인 안드로이드 OS는 처음에는 버전들이 너무 많은 데다가 엉성하다고 불만을 털어놓기도 했지만, 점차 빠르게 성장하고 있답니다. 리눅스 커널을 기반으로 만들어졌어요.
안드로이드에 대해서 더 알고 싶다면?
More on Android. https://ko.wikipedia.org/wiki/안드로이드_(운영_체제)
https://namu.wiki/w/안드로이드(운영체제)/버전

장고와 파이선
장고는 프로그래밍 언어인 파이선을 바탕으로 만들어진 웹 애플리케이션 프레임웍(Framework)이에요. 수 체계가 잘 이루어져 있지요. 매우 정밀한 규칙으로 움직이는 파이선은 몬티 파이선(Monty Phython)이라는 영국의 유명한 코미디 그룹의 이름에서 따왔어요. 장고가 좋아하는 것은 제곱수, 소수, 세제곱수처럼 실제로 셀 수 있는 수학적 개념이라는 것을 기억하세요. 장고는 유연한 편이 아니에요. 자신의 방법을 고집하고, 어설프게 넘어가거나 타협하지 않지요.
장고에 대해서 더 알고 싶다면?
https://ko.wikipedia.org/wiki/장고_(웹_프레임워크)
http://tutorial.djangogirls.org/ko/django/
파이선에 대해서 더 알고 싶다면?
https://ko.wikipedia.org/wiki/파이선 More on Django & Python

펭귄 친구들
리눅스(Linux)는 오픈 소스 운영체제이고 펭귄을 마스코트로 사용해요. 리눅스는 명령어들이 축약형으로 이루어진 것으로 유명해요. 스파게티 코드는 서로 얽힌 스파게티 면처럼 구조화되지 않은 코드를 말합니다.
펭귄들이 책에서 지식을 얻고 자유롭게 선택하는 모습은 리눅스의 특성을 반영한 거예요.
리눅스와 펭귄에 대해서 더 자세히 알고 싶다면?.
https://ko.wikipedia.org/wiki/리눅스

여우 친구들
정원을 가꾸는 여우들은 모질라(Mozilla) 재단이 웹 생태계를 만들고 가꾸어 나가는 모습을 나타낸 거예요. 웹상에도, 실제 정원에도 버그(벌레)들이 존재하지요. 여우들이 이상적인 모습으로 등장하는 것은 비영리 단체인 모질라 재단의 속성 때문이에요. 나이틀리(Nightly) 버전은 모질라 소프트웨어의 시험용 버전입니다. 정신 없이 돌아다니는 여우들의 모습은 파이어폭스 로고를 참고했고, 파이어폭스가 곧 잘 버벅거린다는 사실도 보여 줍니다.
파이어폭스에 대해 더 알고 싶다면?
https://ko.wikipedia.org/wiki/모질라_파이어폭스

눈표범
눈표범은 2008년 등장한 애플의 운영체제인 스노 레퍼드(snowleopard)를 의미해요. 로봇들과 종종 결투를 벌인다는 소개가 살짝 불편했나요? 이것은 애플과 구글 기업이 치열하게 벌이는 경쟁을 빗대어 말한 거예요. 애플 사는 마치 울타리가 쳐진 정원 같아요. 소프트웨어부터 하드웨어까지 모든 것을 다 갖췄지만 외부의 어떤 것과도 섞이려고 하지 않거든요. 그런 특성을 반영해 고독과 명상을 좋아하는 눈표범이 탄생했답니다.
스노 레퍼드에 대해서 더 알고 싶다면?
https://ko.wikipedia.org/wiki/OS_X



1. 헬로! 루비

숨은 뜻:

루비 개발자 조나단 질레트는 왜 ‘-WHY’ 라는 필명으로 활동할까요? 훌륭한 프로그래머들은 ‘왜’라는 질문을 많이 할까요? 루비의 방 안을 살펴보세요.(《헬로 루비: 코딩이랑 놀자!》 10쪽)
인스타그램(Instagram)의 카메라, 트위터(Twitter)의 새, 스크래치 프로그램의 고양이, PHP의 코끼리, 깃허브(Github)의 옥토캣(문어 옷을 입은 고양이 ) 그림을 찾아보세요. ‘에이다&그레이스&프란시스’라는 사람들은 컴퓨터 역사에서 중요한 여성 프로그래머들의 이름이에요.

에이다 러브레이스(Ada Lovelace) https://ko.wikipedia.org/wiki/에이다_러브레이스
그레이스 호퍼(Grace Hopper) https://ko.wikipedia.org/wiki/그레이스_호퍼
IT를 빛낸 여성 주역들 http://www.ciokorea.com/print/18692
유명한 루비 개발자 조나단 질레트 https://en.m.wikipedia.org/wiki/Why_the_lucky_stiff

루비(일본의 마쓰모토 유키히로가 개발한 객체 지향 스크립트 언어)를 만든 나라, 일본을 대표하는 후지 산도 찾아보세요. 바닥에 펼쳐진 픽셀 그림에서 마리오의 성(Mario castle), 마인크래프트(Minecraft)의 크리퍼(Creeper)와 인터넷에서 유행하는 밈(meme) 가운데 하나인 ‘토하는 고양이’도 볼 수 있어요.
밈이란? 이미지, 동영상, 이메일 등 인터넷을 통해서 다른 사람들에게 퍼지는 아이디어나 개념이다. 재미있는 자막이 붙은 사진이나 이미지가 대표적이다.
https://ko.wikipedia.org/wiki/밈



2. 소중한 쪽지들

숨은 뜻:

창가에 어떤 모자들이 놓여 있나요? (《헬로 루비: 코딩이랑 놀자!》 16쪽)

빨간 모자는 ‘레드햇(Red Hat)’이라는 리눅스 배포 업체입니다. https://ko.wikipedia.org/wiki/레드햇
하얀 모자는 선의를 가진 해커를 뜻하고, 검은 모자는 악의적인 해커를 뜻합니다. https://ko.wikipedia.org/wiki/화이트햇
가방에 붙인 외계인은 미국 소셜 뉴스 웹 사이트 ‘레딧(Reddit)’의 마스코트예요. https://ko.wikipedia.org/wiki/레딧

루비가 찾아다니는 보석들은 루비(Ruby)의 코드 덩어리를 빗대어 말하는 거예요.
개발자들이 코드를 지어낸 덕분에 여러분들의 삶이 한결 편해졌어요!

로봇의 주소가 적힌 쪽지를 보았나요? (《헬로 루비: 코딩이랑 놀자!》 21쪽)

‘원형 경기장 공원길 1600’(1600 Amphitheathre Parkway)은 미국 구글 본사의 실제 주소입니다.
(구글 지도로 주소 보기)
https://www.google.com/maps/place/1600+Amphitheatre+Pkwy,+Mountain+View,+CA+94043/@37.4224649,-122.0864642,17z/data=!3m1!4b1!4m5!3m4!1s0x808fba027820e5d9:0x60a90600ff6e7e6e!8m2!3d37.4224607!4d-122.0842702?hl=en



3. 계획 세우기

숨은 뜻:

벽에 걸려 있는 선 그림들은 알고리즘 중에서 버블 정렬과 삽입 정렬을 시각적으로 나타낸 거예요.(《헬로 루비: 코딩이랑 놀자!》 22~23쪽) 그밖에 벤 다이어그램(Venn diagrams), 닌텐도의 코나미 코드(Konami code), ‘_why’s의 동물들, 루비 창업자 유키히로 마츠모토(Yukihiro Matsumoto)와 레일즈(Rails)의 창업자 데이비드 하이네마이어 핸슨(David Heinemeier Hanssen)의 초상화도 걸려 있답니다.

알고리즘 시각화한 그래프 http://visualgo.net
벤 다이어그램 https://ko.wikipedia.org/wiki/벤_다이어그램
코나미 코드 https://namu.wiki/w/코나미%20커맨드
유키히로 마츠모토 https://ko.wikipedia.org/wiki/마츠모토_유키히로

《헬로 루비: 코딩이랑 놀자!》 27쪽을 보세요. 루비에게 손을 흔들어 주는 동물들이 보이나요? 오른쪽에 땅다람쥐 고퍼(Gopher)는 구글 고(Go) 언어의 마스코트입니다.
https://blog.golang.org/gopher



4. 펭귄들과 만든 뗏목

숨은 뜻:

펭귄들이 하는 말 “grep, chmod, awk, bash, pwd”(《헬로 루비: 코딩이랑 놀자!》 29쪽)는 우리말로 번역할 수 없어요. 운영체제 유닉스(Unix)에서 실제로 사용하는 명령어들이거든요. 유닉스(Unix)와 유닉스 기반의 리눅스(Linux)는 세세한 업무들을 잘 처리하고, 프로그램을 분산시켜서 책임을 나누고 효율적으로 관리하도록 만들어졌습니다.



5. 눈표범의 충고

숨은 뜻:

애플 기업은 사자(라이언, Lion), 표범(레퍼드, Leopard), 눈표범(스노 레퍼드, Snowleopard) 같은 고양잇과 동물들을 운영체제 이름으로 지었어요. 최근에는 캘리포니아에 있는 요세미티(Yosemite), 엘 캐피탄(El Capitain)이라는 산 이름을 따서 지었어요. 눈표범이 사는 산꼭대기에 그려진 사과나무는 애플사의 대표 아이콘인 사과를 빗댄 거예요.
https://ko.wikipedia.org/wiki/OS_X



6. 뒤죽박죽 여우 정원

숨은 뜻:

여우들은 웹 생태계를 가꾸고 오픈 소스를 통해 인터넷 환경을 개선하는 비영리 기업, 모질라(Mozilla)에서 영감을 받아 탄생했어요. 가끔 버그들을 발견할 때도 있지만요.
정원 너머 숲에서 장고가 살짝 훔쳐보고 있었던 것을 알았나요? (《헬로 루비: 코딩이랑 놀자!》 45쪽)
루비가 여우들에게 잡초를 어떻게 뽑으라고 지시했는지, 그림에서 보이나요? (《헬로 루비: 코딩이랑 놀자!》 46쪽)
땅다람쥐(고퍼, Gopher)가 컴퓨터 집을 방문했군요! (《헬로 루비: 코딩이랑 놀자!》 48쪽)



7. 로봇들과 컵케이크를!


숨은 뜻:

“조리법을 공유하면 더 나은 방법이 생겨나고, 친구들도 더 많이 사귈 수 있습니다.” 로봇들이 한 말을 기억하나요? (《헬로 루비: 코딩이랑 놀자!》 52쪽) 이 말은 오픈 소스 커뮤니티가 추구하는 정신입니다.
“나는 노란 컵케이크에 딸기를 얹지 않고 빨간 설탕 가루만 뿌려서 먹을래.”
까다로운 루비가 한 말은 불 방식(or, and, not)의 한 가지 예입니다.



8. 장고의 목걸이

숨은 뜻:

파이선 커뮤니티는 PEP(파이선 강화 제안 Python Enhancement Proposal)를 사용합니다. 모두가 원하는 대로 문제를 해결하도록 독려하는 방식이지요. 루비 커뮤니티는 이런 방식을 사용하지 않습니다. 장고가 루비에게 “루비, 혼자 하지 마. 함께해 보자!”라고 말한 진짜 속뜻을 조금은 짐작할 수 있겠지요? (《헬로 루비: 코딩이랑 놀자!》 59쪽) 장고는 파이선 프로그램 언어를 기반으로 설계된 프레임웍이고, 레일스는 루비 프로그램 언어를 기반으로 설계된 프레임웍입니다. http://www.hanul93.com/kicomav-pep8/

장고 http://jythonbook-ko.readthedocs.io/en/latest/JythonDjango.html

루비온 레일즈 https://namu.wiki/w/Ruby%20on%20Rails

핀란드에서 숲은 “만인의 권리(Everyman’s Right)”라고 합니다.
자연이 모든 사람들의 것이라는 말이지요. 루비가 장고를 향해서 “그런데 여기가 왜 너만의 숲이니? 모두의 숲이지!”(《헬로 루비: 코딩이랑 놀자!》 58쪽)라고 말한 것도 이런 까닭 때문이에요.
http://doolytubbies.tistory.com/5
http://www.arctic-flavours.fi/ko/info/475645106451032+4442847532/



9. 문제가 뭘까?

숨은 뜻:

마지막으로 루비가 밧줄을 어떻게 사용했는지 알고 있어요?