๐Ÿ PEP(Python Enhancement Proposal)๋ž€ ๋ฌด์—‡์ผ๊นŒ

PEP์™€ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜๋งŽ์€ python proposal์ด ์กด์žฌํ•˜์ง€๋งŒ, ๊ทธ ๋งŽ์€ proposal๋“ค์€ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ์ฝ์–ด์•ผ ํ•˜๊ณ , ํŒ๋‹จ์„ ํ•ด์•ผ ํ• ๊นŒ? ์–ด๋–ค proposal์„ ์ฝ์–ด์•ผ ํ•˜๊ณ  ์–ด๋–ค proposal์„ ์ฝ์ง€ ์•Š์•„๋„ ๋ ๊นŒ? ์ด๋Ÿฐ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ๊ณต๊ต๋กญ๊ฒŒ๋„ PEP์˜ 1๋ฒˆ ๋ฌธ์„œ๊ฐ€ ์„ค๋ช…ํ•ด์ค€๋‹ค. ๊ทธ๋ž˜์„œ PEP 1๋ฒˆ ๋ฌธ์„œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฆฌ๋ทฐํ•ด๋ณธ๋‹ค.

What is a PEP?

PEP๊ฐ€ ๋ญ”์ง€ ์œ„ํ•ด PEP์˜ 1๋ฒˆ ๋ฌธ์„œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๊ฐ€์žฅ ์ฒซ ์†Œ์ œ๋ชฉ์œผ๋กœ ๋‚˜์™€์žˆ๋‹ค. ํ•ด๋‹น ์„น์…˜์˜ ์ฒซ๋ฒˆ์งธ ๋ฌธ๋‹จ์„ ๊ฐ€์ ธ์™€๋ณด์ž.

PEP stands for Python Enhancement Proposal. A PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment. The PEP should provide a concise technical specification of the feature and a rationale for the feature.

์ฆ‰, Python Enhancement Proposal์˜ ์•ฝ์–ด๋กœ, Python ์ปค๋ฎค๋‹ˆํ‹ฐ๋กœ์˜ ์ •๋ณด์ „๋‹ฌ์„ ์œ„ํ•œ ์ผ์ข…์˜ ์„ค๊ณ„ ๋ฌธ์„œ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๊ณ , ํŒŒ์ด์ฌ์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์„œ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ PEP๋Š” ์ •ํ™•ํ•œ ๊ธฐ์ˆ ์ ์ธ ๋ช…์„ธ๊ฐ€ ๋“ค์–ด๊ฐ€์•ผํ•˜๊ณ  ๊ทธ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ์ด์œ  ๋˜ํ•œ ํ•„์š”ํ•˜๋‹ค. ๋˜ํ•œ PEP ๋ฌธ์„œ๋Š” ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ, versioned repository, ์ฆ‰ GitHub์— ์ €์žฅ๋œ๋‹ค.

PEP Audience

๊ทธ๋Ÿผ ๋ˆ„๊ฐ€ ์ด PEP๋ฌธ์„œ๋ฅผ ์ฝ์„๊นŒ? ์ฃผ๋กœ ์ด PEP๋ฌธ์„œ๋ฅผ ์ฝ๋Š”, ์ฝ์–ด์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ์€ CPython ์ฝ”์–ด ๊ฐœ๋ฐœ์ž, ์ฝ”์–ด ๊ฐœ๋ฐœ์ž๋“ค์ด ์„ ์ถœํ•œ Steering Council, ๊ทธ๋ฆฌ๊ณ  CPython์ด ์•„๋‹Œ ๋‹ค๋ฅธ Python ๊ตฌํ˜„์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ๋“ค์ด๋‹ค. ๊ทธ ์™ธ์—๋„ Python ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ Informatinal PEP์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์•ž์œผ๋กœ์˜ API Convention์ด๋‚˜, ๋ณต์žกํ•œ ์„ค๊ณ„๋ฅผ ํ•ฉ์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

PEP Types

PEP๋Š” ์„ธ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

  • Standards Track PEP๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ํ˜น์€ ๊ตฌํ˜„์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ PEP๋ฌธ์„œ์ด๋‹ค. ์ดํ›„์— ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ถ”๊ฐ€๋  ๊ธฐ๋Šฅ์ด์ง€๋งŒ ํ˜„์žฌ๋Š” ์„œ๋“œํŒŒํ‹ฐ๋กœ ์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ interoperability๋ฅผ ๊ธฐ์ˆ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • Informational PEP๋Š” Python์˜ ์„ค๊ณ„ ์ด์Šˆ ํ˜น์€ ์ผ๋ฐ˜์ ์ธ ๊ฐ€์ด๋“œ์™€ ์ •๋ณด๋ฅผ Python ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•˜๋Š” PEP๋ฌธ์„œ์ด๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž์™€ Python ๊ฐœ๋ฐœ์ž๋Š” ๊ผญ ์ด PEP๋ฌธ์„œ๋ฅผ ๋”ฐ๋ฅผ ํ•„์š”๋Š” ์—†๊ณ , ์กฐ์–ธ ์ •๋„๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
  • Process PEP๋Š” Python๊ณผ ๊ด€๋ จ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ธฐ์ˆ ํ•˜๊ฑฐ๋‚˜, ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์„ ์ œ์•ˆํ•˜๋Š” PEP๋ฌธ์„œ์ด๋‹ค. Standards Track PEP์™€ ๋น„์Šทํ•˜๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด PEP ๋ฌธ์„œ๋Š” Python์–ธ์–ด ๊ทธ ์ž์ฒด์— ๋Œ€ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฌธ์„œ๋Š” Informational PEP์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ•ฉ์˜๊ฐ€ ํ•„์š”ํ•œ ๋ฌธ์„œ์ด๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๋Š” ์ด Process PEP๋ฅผ ๋งˆ๋ƒฅ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. Meta-PEP์˜ ๋ชฉ๋ก์ด Process PEP์— ์†ํ•œ๋‹ค.

PEP Workflow

Pythonโ€™s Steering Council

PEP๊ฐ€ ์ตœ์ข…์ ์œผ๋กœ accept ๋  ์ง€, reject ๋  ์ง€ ์ •ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด๋‹ค. PEP 13์— ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด ์žˆ๋‹ค.

Pythonโ€™s Core Developers

Pythonโ€™s Core Developers๋Š” Python core team ๋ฉค๋ฒ„๋“ค์„ ๋งํ•˜๋ฉฐ, ์ด๋“ค ์—ญ์‹œ PEP 13์— ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด ์žˆ๋‹ค.

Pythonโ€™s BDFL

BDFL์€ Benevolent dictator for life๋ฅผ ๋งํ•˜๋ฉฐ ํ•œ๊ตญ์–ด๋กœ๋Š” ๋Œ€๋ถ€๋ถ„ โ€œ์ž๋น„๋กœ์šด ์ข…์‹  ๋…์žฌ์žโ€์ •๋„๋กœ ๋ฒˆ์—ญ๋˜์—ˆ๋‹ค. ๊ทธ ์œ ๋ช…ํ•œ ํŒŒ์ด์ฌ์˜ ์ฐฝ์‹œ์ž์ธ Guido van Rossum์„ ์ผ์ปซ๋Š” ๋ง์ด ๋งž์ง€๋งŒ, Guido van Rossum์€ PEP 572๊ฐ€ ๋๋‚˜๋ฉด์„œ BDFL์—์„œ ๋ฌผ๋Ÿฌ๋‚ฌ์œผ๋ฏ€๋กœ BDFL-Delegate๋Š” historical reference ์ •๋„์ด๋‹ค.

PEP Editors

PEP Editor๋“ค์€ PEP ์ˆซ์ž๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ PEP status๋ฅผ ๋ฐ”๊พธ๋Š” ๋“ฑ์˜ PEP Workflow์— ๋Œ€ํ•ด์„œ ์ฑ…์ž„์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด๋‹ค. editorship์€ editor๋“ค์˜ ์ดˆ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

Start with an idea for Python

์œ„๋Š” PEP ์ˆ˜์ •, ์ž‘์„ฑ์— ์ฐธ์—ฌํ•˜๋Š” ์‚ฌ๋žŒ, ์กฐ์ง๋“ค์ด๊ณ , ์ด์ œ์„œ์•ผ PEP ์ž‘์„ฑ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์‹œ์ž‘ํ•œ๋‹ค.

PEP ์ž‘์„ฑ์€ Python์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉฐ, Single key proposal์ด๋‚˜ new idea๋งŒ์„ ํฌํ•จํ•˜๊ธธ ์ถ”์ฒœํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์—„์ฒญ ์ž‘์€ enhancement๋“ค์€ PEP๋กœ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ Python Issue Tracker๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. ๋งŒ์•ฝ ์ž‘์„ฑํ•œ PEP๊ฐ€ ๋„ˆ๋ฌด ๊ด‘๋ฒ”์œ„ํ•˜๊ฑฐ๋‚˜ ์ œ๋Œ€๋กœ ๊ธฐ์ˆ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด PEP Editor๋“ค์€ ์ด๋ฅผ rejectํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๊ฐ PEP๋Š” Champion์ด ํ•„์š”ํ•˜๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ ์„ค๋ช…ํ•  ์Šคํƒ€์ผ๊ณผ ํฌ๋งท์œผ๋กœ PEP๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ์ ์ ˆํ•˜๊ฒŒ ํ† ๋ก ์ด ์ด๋ฃจ์–ด์ง€๋„๋ก ์œ ๋„ํ•˜๋ฉฐ, ์•„์ด๋””์–ด๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ž˜ ํ•ฉ์˜ํ•˜๋„๋ก ํ•˜๋Š” ์‚ฌ๋žŒ์ด Champion(a.k.a. Author)์ด๋‹ค. CompLangPython1(python-list@python.org mailing list)์— ํฌ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์ด ๊ทธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋‹ค.

๊ผญ ํฌ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๋Š” ๊นŒ๋‹ญ์€ ๊ทธ ํ–‰๋™์ด PEP๋ฅผ ํ—›๋˜๊ฒŒ ์ž‘์„ฑํ•˜์ง€ ์•Š๋„๋ก ๋„์™€์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์•„์ด๋””์–ด ์ž์ฒด๊ฐ€ ์ž‘์„ฑ์ž์—๊ฒŒ ๋Œ€๋‹จํ•˜๊ฒŒ ๋“ค๋ฆด ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•˜๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๊ทธ๋ ‡๊ฒŒ ์ข‹์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๊ธฐ ๋–„๋ฌธ์ด๋‹ค. ํŒŒ์ด์ฌ์€ ์ •๋ง ๋งŽ์€ ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ฌ์‹ค์ด๊ณ , ๋งŽ์€ ์ข‹์€ ์•„์ด๋””์–ด๋“ค์ด ์‚ฌ์‹ค์€ ํŠน์ • ๋ถ„์•ผ์—์„œ๋งŒ ์ข‹์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

Submitting a PEP

ํ•œ ์ค„๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์•ฝํ•˜์ž๋ฉด, Draft PEP๋Š” python/peps ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋” ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•ด๋ณด์ž. ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ ๋“ฑ์—์„œ ์˜๊ฒฌ์„ ๋‚˜๋ˆ„๊ณ  ๋‚œ ์ดํ›„์—๋Š” Python Core Developer์ธ์ง€ ์•„๋‹Œ์ง€์— ๋”ฐ๋ผ ๋งŽ์€ ์‚ฌํ•ญ์ด ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค. ๊ณต๋™ ์ž‘์„ฑ์ž ์ค‘์— Python Core Developer๊ฐ€ ์—†๋‹ค๋ฉด sponsor๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. sponsor๋Š” PEP ์ž‘์„ฑ์ž์—๊ฒŒ PEP๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๊ณผ์ •์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ˜ํ† ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๊ทธ ํ›„์— Draft PEP๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ž์„ธํ•œ ๊ทœ์น™์€ ํ•ด๋‹น ์ ˆ์„ ์ž์„ธํžˆ ์ฝ์–ด๋ณด๋„๋ก ํ•˜์ž.

๋ฒˆํ˜ธ๊ฐ€ ํ• ๋‹น๋œ PEP์— approve๊ฐ€ ๋‚˜๋ฉด (PEP Accept๊ฐ€ ์•„๋‹ˆ๋‹ค) master๋ธŒ๋žœ์น˜์— ๋จธ์ง€๋œ๋‹ค. PEP๋Š” ์ด์œ ์—†์ด ๊ฑฐ๋ถ€๋˜์ง€ ์•Š๋Š”๋ฐ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • duplication of effort
  • being technically unsound
  • not providing proper motivation or addressing backwards compatibility
  • not in keeping with the Python philosophy.

PEP Review & Resolution

PEP๋Š” ํ•œ๋ฒˆ master์— ๋“ค์–ด๊ฐ€๊ณ  ๋‚˜๋ฉด ๋งŽ์€ stage๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋˜๋Š”๋ฐ, ์•„๋ž˜ ์ด๋ฏธ์ง€๊ฐ€ ์ œ์ผ ์ž˜ ๊ทธ๋ ค์ง„ ์ด๋ฏธ์ง€๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

PEP์˜ Process Flow

ํ•ต์‹ฌ๋งŒ ๋งํ•ด๋ณด์ž๋ฉด, PEP๋Š” accept ์ƒํƒœ๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๋ช‡๋ช‡ ๊ธฐ์ค€์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.

  • The enhancement must represent a net improvement.
  • The proposed implementation, if applicable, must be solid and must not complicate the interpreter unduly.
  • A proposed enhancement must be โ€œpythonicโ€ in order to be accepted by the Steering Council.

ํ•˜์ง€๋งŒ ์œ„ ๊ธฐ์ค€์€ ์ผ๋ฐ˜์ ์ธ PEP์˜ ๊ธฐ์ค€์œผ๋กœ Standard library์— accept๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ณ„๋„์˜ PEP2 ๊ธฐ์ค€์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.

PEP๊ฐ€ Accept๋˜๊ณ  ๋‚œ ํ›„์—๋Š” ๊ตฌํ˜„์ด ์™„์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด ๊ตฌํ˜„์€ reference implementation์ด๋ž€ ๋‹จ์–ด๋ฅผ ์“ด๋‹ค. reference implementation์ด ์™„์„ฑ๋˜๊ณ  ๋‚˜๋ฉด Final๋กœ status๊ฐ€ ๋ณ€ํ•˜๊ฒŒ ๋œ๋‹ค.

ํŠน์ˆ˜ํ•œ Provision status๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๋Š” ์ถ”๊ฐ€์ ์ธ ๋””์ž์ธ์ด๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ธฐ ์œ„ํ•œ ์ƒํƒœ์ด๋‹ค. ์™œ ์ถ”๊ฐ€์ ์ธ ๋””์ž์ธ/์ธํ„ฐํŽ˜์ด์Šค ํ”ผ๋“œ๋ฐฑ์ด ํ•„์š”ํ•˜๋ƒ๋ฉด ์–ธ์–ด ์ž์ฒด์˜ ๊ธฐ๋Šฅ์ด๋‚˜ standard library API์ผ ๊ฒฝ์šฐ long term stability๋ฅผ ์ค‘์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Provision์€ Provisionally Accepted์˜ ์ค„์ž„๋ง์ด๋‹ค. ์™„์„ฑ์ด ๋œ๋‹ค๋ฉด Final status๋กœ ๊ฐ„๋‹ค. ๋ฌผ๋ก  Provisionally Accept๋œ PEP๋“ค๋„ Reject๋  ์ˆ˜ ์žˆ๋‹ค.

PEP Maintenance

Standard Track PEP๋Š” ๋Œ€๋ถ€๋ถ„ Final Status์— ๋“ค์–ด๊ฐ€๊ณ  ๋‚œ ์ดํ›„์—๋Š” ์ˆ˜์ •์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด PEP๋“ค์€ Final์ด ๋˜๊ณ  ๋‚˜์„œ๋Š” expected behavior์— ๋Œ€ํ•œ formal documentation์ด ๋œ๋‹ค.

Informational, Process PEP๋Š” ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๊ณ„์† ์ˆ˜์ •๋œ๋‹ค. ๋””ํ…Œ์ผํ•œ ์‚ฌํ•ญ๋“ค์ด ์ถ”๊ฐ€๋˜๊ณ , ๋” ์ •ํ™•ํ•œ Practice๋กœ ๋ณ€ํ•˜๊ฒŒ ๋œ๋‹ค.

โ€ฆ

์ค‘๊ฐ„์— PEP ํŒŒ์ผ ํฌ๋งท๋„ ์กด์žฌํ•˜๋Š”๋ฐ, ์ด๊ฑด ๊ฑด๋„ˆ๋›ธ๊ฒŒ์š”.

ํ•˜์ง€๋งŒ ๊ทธ ์ค‘์— What belongs in a successful PEP?๋Š” ์ •๋ง ์ฝ์„ ๋งŒํ•œ ์ฑ•ํ„ฐ์ž…๋‹ˆ๋‹ค.

โ€ฆ

Reporting PEP Bugs, or Submitting PEP Updates

PEP bug report์˜ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ draft ์ƒํƒœ์ผ ๊ฒฝ์šฐ์—๋Š” comment๋ฅผ ๋‹ฌ์•„์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๋” ์ง„ํ–‰๋œ PEP์˜ ๊ฒฝ์šฐ์—๋Š” GitHub Issue๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜ Pull Request๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ์ข‹๋‹ค.

์ด ์ดํ›„ ๋‚ด์šฉ์€ ๊ทธ๋ ‡๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๋‚ด์šฉ์ด๋ผ ์ƒ๊ฐ๋˜์–ด ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

โ€”

Python์˜ TMI๋ฅผ ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฌธ์„œ๋“ค์ด ๋งŽ์ด ์žˆ๋Š”๋ฐ, ๊ทธ ์ค‘ PEP0001 ๋ฌธ์„œ๋Š” ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์‹ค์ œ๋กœ ๋„์›€์ด ๋  ๋งŒํ•œ ๋‚ด์šฉ์„ ๋งŽ์ด ๋‹ด๊ณ  ์žˆ๋‹ค. ๋˜ํ•œ ํŒŒ์ด์ฌ์ด ์–ด๋–ค ์ฒ ํ•™์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์–ด๋–ป๊ฒŒ ๋‚˜์•„๊ฐ€๊ณ ์ž ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ํŒŒ์ด์ฌ์„ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š”/์‚ฌ์šฉํ•˜๊ณ ํ”ˆ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋‹ค๋ฅธ ์ˆ˜๋งŽ์€ PEP ๋ฌธ์„œ๋“ค๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, PEP0001์ด ํ•„๋…์ด ์•„๋‹Œ๊ฐ€ ์‹ถ๋‹ค.

  1. https://mail.python.org/mailman/listinfo/python-list ํŒŒ์ด์ฌ ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ ๊ฐ€์ž… ์‚ฌ์ดํŠธ์ด๋‹ค.ย 

March 27, 2020 ์— ์ž‘์„ฑ
Tags: python