본문 바로가기
데이터

Python의 숨겨진 Easter Egg

by vivre sa vie 2020. 7. 3.
반응형

 

이스터에그(Easter egg) 란? 

이스터에그의 본래 의미는 '부활절 달걀' 이다.
크리스찬들은 부활절 삶은달걀을 나눠먹을 때 다른 사람 머리에 깨서 먹는 풍습이 있었는데, 일부 장난기 있는 크리스찬들은 날 달걀을 섞어두었다고 한다. 이러한 소소한 재미를 뜻하는 이스터에그는 IT업계에서도 사용되고 있는데, 프로그래머가 사용자의 재미를 위해서 넣어둔 소소한 장난, 메시지 등을 의미한다. 

파이썬에도 이런 이스터에그가 숨겨져 있다.

기존에 알고 있던 것들과 최근 알게 된 것들을 정리하고자 한다. 

 

1. Zen of Python

파이썬에서는 가장 널리 알려진 이스터에그가 아닐까?!

Tim Peters란 프로그래머가 파이썬스러운 코드?설계?를 작성하는데 필요한 가이드 같은 경구이다. 

해당 명령어를 import 하면 아래의 문구가 출력된다. 

import this

 

Beautiful is better than ugly. 아름다움이 추한 것보다 낫다.

Explicit is better than implicit. 명확함이 함축된 것보다 낫다.

Simple is better than complex. 단순함이 복잡한 것보다 낫다.

Complex is better than complicated. 복잡함이 난해한 것보다 낫다.

Flat is better than nested. 단조로움이 중접된 것보다 낫다.

Sparse is better than dense. 여유로움이 밀집된 것보다 낫다.

Readability counts. 가독성은 중요하다.

Special cases aren't special enough to break the rules. 규칙을 깨야할 정도로 특별한 경우란 없다.

Although practicality beats purity. 비록 실용성이 이상을 능가한다 하더라도.

Errors should never pass silently. 오류는 결코 조용히 지나가지 않는다.

Unless explicitly silenced. 알고도 침묵하지 않는 한.

In the face of ambiguity, refuse the temptation to guess. 모호함을 마주하고 추측하려는 유혹을 거절하라.

There should be one-- and preferably only one --obvious way to do it.

문제를 해결할 하나의 - 바람직하고 유일한 - 명백한 방법이 있을 것이다.

Although that way may not be obvious at first unless you're Dutch.

비록 당신이 우둔해서 처음에는 명백해 보이지 않을 수도 있겠지만.

Now is better than never. 지금 하는 것이 전혀 안하는 것보다 낫다.

Although never is often better than right now. 비록 하지않는 것이 지금 하는 것보다 나을 때도 있지만.

If the implementation is hard to explain, it's a bad idea. 설명하기 어려운 구현이라면 좋은 아이디어가 아니다.

If the implementation is easy to explain, it may be a good idea.

쉽게 설명할 수 있는 구현이라면 좋은 아이디어일 수 있다.

Namespaces are one honking great idea -- let's do more of those!

네임스페이스는 정말 대단한 아이디어다. -- 자주 사용하자!

 

2. Hello world! 

프로그래밍을 배울때 가장 처음 실습해보는 Hello world!

새로운 프로그래밍 언어를 배울때 이것만 해도 절반은 했다고 얘기할 정도로 첫 단추 같은 단계이다.

그동안은 print 명령을 통해서 실행했었는데, 여기에도 숨겨진 이스터에그가 있다는 사실..!

import __hello__

 

__hello__를 import 하면 Hello world! 문구가 반갑게 출력된다:) 

 

3. xkcd

이건 새롭게 알게된 이스터에그이다. 단, Python 2.7+이상에서만 실행된다고 한다.

import antigravity

 

명령어를 입력하면 새로운 탭이 뜨면서 새로운 사이트로 연결된다. 

A webcomic of romance, sarcasm, math, and language라고 소개된 해당 페이지는 수십편의 웹 코믹만화와 'how to' 라는책에 대한 설명, 다양한 굿즈(?)를 판매하는 스토어, xkcd에 대한 소개 등으로 이루어져 있다. 

about 탭에는 xkcd에 대한 의미도 담겨있는데, 어떤 약어(anacronym)가 아닌 발음이 없는 문자열이라고 한다. 

 

개발자들은 이스터에그를 만드는 재미도 쏠쏠할 것 같다. 남들이 발견하기 전까지 나만 아는 재미랄까.

우리가 사용하는 많은 프로그램에도 이스터에그가 있다고 하니 한번 찾아서 쭉 정리해보는 것도 재밌겠다:) 

 

반응형

'데이터' 카테고리의 다른 글

ElasticSearch 환경설정  (0) 2020.06.24

댓글