파이썬을 사용하다 보면 종종 만나는 단어가 바로 "PEP"이다.

특히, 코딩 스타일 관련해서 매번 만나는 "PEP 8" 규칙.

 

과연, PEP가 뭐길래?

 

▶ PEP Created

- 1990년대 후반 CNRI에 있던 Barry Warsaw(배리 워쇼우)가 많은 제안들을 Guido가 살펴볼 수 있도록 프로세스 도입
- RFC(Request for Comments, 인터넷 기술 및 표준에 관한 문서) 프로세스를 참조하여 (제안 → 토론 → 결론) 체계 수립

 

다양하게 파생된 '-EP' 문서들

 

 

▶ PEP 0 - Index of Python Enhancement Proposals (PEPs)

- PEPs로 알려진 모든 PEP 목록을 살펴볼 수 있게 제공해준다.
- 다양한 기준으로 PEP 목록을 제공해준다.

 

 

 

 

▶ PEP 8 – Style Guide for Python Code

- 파이썬 답게 코드를 작성하기 (Pythonic Code)

- PEP 중에서 가장 유명하고, 필독해야 하는 문서

- 들여쓰기는 4개의 공백(space)을 사용해야 한다는 것과 같은 코드 스타일 가이드 이다.

 

 

 

▶ PEP 572 – Assignment Expressions

- Guido를 독재자에서 사임하게 만들었던 문제의 그 PEP

- 일명 바다코끼리 연산자(walrus operator) ":=" 도입
  . 할당 표현식(assignment expression)
  . Python 3.8에 포함

- Guido가 제안한 내용이고 도입을 하자는 입장이었고, 커뮤니티는 파이썬 답지 않고, 간결성을 해친다며 반대

- 결국은 승인되어 파이썬 3.8에 도입되었지만, Guido는 BDFL 모델을 내려놓게 되었고

  이후 "The Steering Council Model"을 통해 의사결정 하기로 함 (PEP 8016)

 

 

 

▶ PEP 20 – The Zen of Python

- 파이썬의 선 (파이썬이 추구하는 철학)

 

아름다운 것이 못생긴 것보다 좋습니다.
명시적인 것이 암시적인 것보다 좋습니다.
단순한 것이 복잡한 것보다 좋습니다.
복합적인 것이 복잡한 것보다 좋습니다.
납작한 것이 중첩된 것보다 좋습니다.
흩뿌려진 것이 모인 것보다 좋습니다.
가독성은 중요합니다.
특별한 상황이, 규칙을 깰 만큼 특별하단 얘기는 아닙니다.
실용성이 순수함을 이길 때까지는 말이죠.
에러는 조용히 넘어가서는 안됩니다.
명시적으로 조용히 만들지 않는 한.
모호한 상황이라면, 추측하려 하지 마세요.
문제를 풀 수 있는 (바람직하고 유일한) 분명한 방법이 있어야 합니다.
하지만 네덜란드 인이 아닌 이상 처음에는 분명하지 않을 수 있습니다.
지금 하는 게 하지 않는 것보단 좋습니다.
하지만 지금 당장 하는 것보다 안 하는 게 나을 때도 있습니다.
구현 방식이 설명하기 어렵다면, 그것은 좋지 않은 생각입니다.
구현 방식이 설명하기 쉽다면, 그것은 아마 좋은 생각일 겁니다.
Namespaces는 쩌는 생각입니다. 더욱 이런 것들을 해봅시다!

 

※ 중간에 네덜란드 사람이라고 지칭하는 이유는... 귀도가 네덜란드 사람이라서이다 ^^

 

 

 

[ 참조/참고 ]

- Python PEP, 태어나 세계로 퍼진 ‘○EP’ 이야기: https://news.hada.io/topic?id=21031 
- Paul Everitt, "Python 1994", PyBay2017: https://www.youtube.com/watch?v=7NrPCsH0mBU&t=1662s 
- PEPs & Co.: https://hugovk.dev/blog/2025/peps-and-co/ 

- PEP 0: https://peps.python.org/pep-0000/ 

- PEP 8: https://peps.python.org/pep-0008/ 

- PEP 572: https://peps.python.org/pep-0572/ 

- PEP 20: https://peps.python.org/pep-0020/ 

 

반응형

왠지 갑자기 파이썬을 다시 제대로 공부하고 싶다는 생각에

애초에 어떻게 태어났는지가 궁금해서 공부해보기로 마음 먹었다.

 

ABC

- 이름 자체가 뭔가 엄청나다 ^^

- 1970 ~ 1980년대에 배우기 쉽고, 사용하기 쉬운 언어를 만들기 위해 개발된 프로그래밍 언어 (BASIC 언어 대체로 고안)
- CWI(Centrum voor Wiskunde en Informatica, 네덜란드 국가 수학 및 컴퓨터 과학 연구소)의 프로젝트로 진행
- Leo Geurts(레오 회르츠), Lambert Meertens(람베르트 메르텐스) 및 Steven Pemberton(스티븐 펨버턴) 주도
- Guido van Rossum(귀도 반 로섬)이 1980년대초 구현자로써 참여함

 

생김새를 보면 정말 뭔가 상당히 친숙하다

 

 

 

▶ Python Created

- Guido van Rossum(귀도 반 로섬)은 1986년 CWI에서 Amoeba(아메바)라는 분산 운영체제 프로젝트로 부서 이동
- 1989년 예외 처리 및 확장에 강점을 갖는 ABC 언어와 비슷한 스크립팅 언어 개발 착수
- 1991년 2월, 유즈넷에 공개 (그 전에는 Amoeba 프로젝트에 적용하면서 계속 개발)

 

진짜 개발자가 명품을 만드는 것은, 보통 휴가 때 이루어지곤 한다 … (뭔가 현타가....)

 

 

 

▶ Guido Van Rossum

- 파이썬의 아버지이자 엄마, 시조새, 창조자, 신 !!!

- CWI, NIST, CNRI 같은 여러 연구 기관에서 근무
- 2000년 5월 기술 스타트업 BeOpen.com → 10월 파산
- 2000년 말 ~ 2003년 Zope Corporation 근무 (파이썬 기반 웹 어플 서버/커뮤니티)
- 2003년 ~ 2005년 Elemental Security (회사 맞춤형 프로그래밍 언어 개발)
- 2005년 ~ 2012년 Google (50% 파이썬 언어 개발, 사내 개발 도구 개발)
- 2013년 ~ 2019년 DropBox (클라우드 스토리지)
- 은퇴 선언 → 은퇴 번복
- 2020년 ~ Microsoft 개발 부서, 현재 명예 엔지니어 직책

 

2006년 OSCON

 

 

2024년 PyCon

 

 

▶ MISC

- Python 어원: Monty Python's Flying Circus(몬티 파이튼의 비행 서커스)
  . BBC에서 1969년~1974년 방영된 스케치 코미디 TV 쇼
  . Monty Python: 영국 코미디 그룹으로 TV쇼 및 영화, 극장 공연 등 다양한 활동
- 자비로운 종신독재자(BDFL, Benevolent Dictator for Life)
  . 커뮤니티 논쟁이 있을 때 최종 결론을 내려줄 수 있는 역할로 소수의 오픈소스 개발 리더에게 부여
  . 1995년 Python 창시자 Guido Van Rossum 호칭으로 처음 사용됨
  . 2018년 7월 12일 BDFL에서 사임한다고 Guido Van Rossum이 선언
   →  PEP(Python Enhancement Proposal) 572 개선 제안 논란 이슈로 사임

 

Monty Python

 

 

 

[ 참고/출처 ]

- ABC 공식홈페이지: https://homepages.cwi.nl/~steven/abc/ 

- Python Doc: https://docs.python.org/3/faq/general.html#why-was-python-created-in-the-first-place 

- Wikipedia: https://ko.wikipedia.org/wiki/귀도_반_로섬

- Monty Python: https://ko.wikipedia.org/wiki/몬티_파이튼

- BDFL, Benevolent Dictator for Life: https://ko.wikipedia.org/wiki/자비로운_종신독재자

- BDFL 사임: https://www.cio.com/article/3532595/파이썬-창시자가-말하는-사임-이유와-파이썬의-미래.html

- https://www.cinematerial.com/tv/monty-pythons-flying-circus-i63929/p/ani1bnus 

 

반응형

+ Recent posts