Python에서 import this를 실행하면 The Zen of Python(파이썬의 선)이 출력됩니다.
이는 파이썬의 철학과 이념을 담은 19개의 짧은 문장으로 이루어져 있습니다.
마치 한 편의 시와 같습니다.
import this
1 Beautiful is better than ugly.
2 Explicit is better than implicit.
3 Simple is better than complex.
4 Complex is better than complicated.
5 Flat is better than nested.
6 Sparse is better than dense.
7 Readability counts.
8 Special cases aren't special enough to break the rules.
9 Although practicality beats purity.
10 Errors should never pass silently.
11 Unless explicitly silenced.
12 In the face of ambiguity, refuse the temptation to guess.
13 There should be one-- and preferably only one --obvious way to do it.
14 Although that way may not be obvious at first unless you're Dutch.
15 Now is better than never.
16 Although never is often better than *right* now.
17 If the implementation is hard to explain, it's a bad idea.
18 If the implementation is easy to explain, it may be a good idea.
19 Namespaces are one honking great idea -- let's do more of those!
Process finished with exit code 0
1 Beautiful is better than ugly.
아름다움은 추함보다 좋다.
이것은 코드의 미적 요소, 즉 코드의 가독성과 직관성의 중요성을 강조합니다.
2 Explicit is better than implicit.
명시적인 것은 암시적인 것보다 좋다.
이것은 코드가 명확하고 명시적이어야 한다는 것을 강조합니다.
3 Simple is better than complex.
간단한 것이 복잡한 것보다 좋다.
이것은 코드를 가능한 한 간단하고 명확하게 작성해야 한다는 것을 강조합니다.
4 Complex is better than complicated.
복잡한 것이 난해한 것보다 좋다.
이것은 때로는 복잡한 것이 간단한 것보다 더 나은 결과를 가져올 수 있다는 것을 강조합니다. 간결함을 좇다 난해해지는 것 보다는 복잡함이 최선일 수 있습니다.
5 Flat is better than nested.
평평한 것이 중첩된 것보다 좋다.
이것은 코드를 가능한 한 다단계 중첩 구조에서 벗어나게 작성해야 한다는 것을 강조합니다.
6 Sparse is better than dense.
드문드문한 것이 조밀한 것보다 좋다.
이것은 가능한 한 코드를 조밀하게 작성하는 것보다 코드를 적게 작성하고 중복을 최소화하는 것이 더 나은 결과를 가져올 수 있다는 것을 강조합니다.
7 Readability counts.
가독성이 중요하다.
이것은 코드의 가독성과 명확성이 개발자들에게 중요하다는 것을 강조합니다.
8 Special cases aren't special enough to break the rules.
특별한 경우는 규칙을 깨뜨리기에 충분하지 않다.
이것은 코드의 일관성과 안정성을 유지하기 위해서는 특별한 경우에도 가능한 한 규칙을 따라야 한다는 것을 강조합니다.
9 Although practicality beats purity.
실용성은 순수성을 이긴다.
이것은 코드를 작성할 때 항상 가장 완벽한 솔루션을 찾으려고 하지 말고, 실용적인 해결책을 찾는 것이 중요하다는 것을 강조합니다.
10 Errors should never pass silently.
오류는 결코 조용히 지나가지 않아야 한다.
이것은 코드에서 발생하는 오류를 무시하지 말고, 적극적으로 처리하고 예외 처리를 하는 것이 중요하다는 것을 강조합니다.
11 Unless explicitly silenced.
만약 명시적으로 무시되지 않는다면.
이것은 앞서 말한 예외 처리와 관련하여, 명시적으로 오류를 무시하고자 하는 경우가 있을 수 있다는 것을 강조합니다. 그러나 그 경우에도 반드시 명시적으로 처리되어야 한다는 것을 강조합니다.
12 In the face of ambiguity, refuse the temptation to guess.
모호함이 있을 때 추측하려는 유혹을 거절하라.
이것은 코드를 작성할 때, 모호한 상황에서는 추측하거나 가정하지 말고, 명확한 정보나 문서를 참고하고, 명시적으로 처리해야 한다는 것을 강조합니다.
13 There should be one-- and preferably only one --obvious way to do it.
하나의 문제에 대해 명확하고, 가능한 한 단 하나의 해결책이 있어야 한다.
이것은 코드를 작성할 때, 가독성과 명확성을 유지하기 위해서는 하나의 문제에 대해 여러 가지 해결책을 제시하지 말고, 가능한 한 명확하고 단순한 해결책을 찾는 것이 중요하다는 것을 강조합니다.
14 Although that way may not be obvious at first unless you're Dutch.
그러나 그 방법이 처음에는 명확하지 않을 수 있다.
이것은 첫 번째 해결책이 항상 최적이라는 보장은 없다는 것을 강조합니다. 때로는 여러 해결책을 고민하고, 다른 관점에서 문제를 바라봐야 한다는 것을 강조합니다. "Dutch"는 파이썬의 창시자 중 한 명인 귀도 반 로섬(Guido van Rossum)의 국적인데, 이는 그가 파이썬의 철학을 이끌고 있었다는 것을 나타냅니다.
15 Now is better than never.
지금 하는 것이 아예 하지 않는 것보다 좋다.
이것은 코드를 작성할 때, 언제든지 가능한 한 빨리 시작하고 진행하는 것이 중요하다는 것을 강조합니다. 또한 더 나은 솔루션을 찾기 위해서는 먼저 동작하는 코드를 작성해야 한다는 것을 강조합니다.
16 Although never is often better than *right* now.
그러나 종종 아무것도 하지 않는 것이 지금 당장 무언가를 바로 하기보다 나을 때가 있다.
이것은 코드를 작성할 때, 급하게 코드를 작성하는 것보다는 문제를 충분히 고민하는 시간을 가지는 것이 중요하다는 것을 말합니다.
17 If the implementation is hard to explain, it's a bad idea.
만약 구현 방법을 설명하기가 어렵다면, 좋은 아이디어가 아니다.
18 If the implementation is easy to explain, it may be a good idea.
구현 방법을 설명하기가 쉽다면, 좋은 아이디어일 것이다.
이것은 코드를 작성할 때, 코드의 가독성과 명확성이 중요하다는 것을 강조합니다. 코드가 복잡하고 이해하기 어렵다면, 유지보수와 디버깅이 어려워질 수 있기 때문입니다.
19 Namespaces are one honking great idea -- let's do more of those!
네임스페이스는 정말 훌륭한 아이디어입니다. 더 많은 네임스페이스를 사용합시다!
이것은 코드를 작성할 때, 네임스페이스를 적극적으로 활용하고, 이름 충돌을 방지하기 위해 변수나 함수의 이름을 잘 지어야 한다는 것을 강조합니다. 또한 코드의 모듈화를 잘해야 네임스페이스를 효과적으로 사용할 수 있다는 것을 강조합니다.
이를 요약하자면 코드의 가독성, 간결성, 명확성과 같은 개발의 핵심 원칙을 강조하며, 불필요한 복잡성을 최소화하고, 코드의 유지보수성을 높이기 위해 노력해야 한다는 것을 나타냅니다. 이러한 원칙을 따르면, 코드를 작성하는 동안 생산성이 향상되고, 버그가 줄어들며, 유지보수 비용이 줄어들게 됩니다.
Effective python은 pythonic한 코딩을 기술한 책입니다.
즉, The Zen of Python을 채화하는 방법을 알려주는 책이라고 생각합니다.
이 문장들을 서서히 이해해 가기 위한 여정이라고 생각하며, 차분히 걸어나가고자 합니다.