경고 : 최신판이 아닙니다. 이 문서의 오래된 판을 편집하고 있습니다. 이것을 저장하면, 이 판 이후로 바뀐 모든 편집이 사라집니다. 로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!'''Python'''(발음은 파이썬)은 귀도 반 로섬(Guido van Rossum)이 개발한 객체지향 스크립트 프로그래밍 언어이다 == 특징 == * 인터프리터를 사용한 스크립트 언어 컴파일 언어가 아닌 스크립트 언어로서 현재 다양한 운영체제에서 지원을 하고 있고 우분투 배포판에서는 2.7.x버전이 기본으로 포함되어 있다. * 객체지향 프로그래밍 언어 * 동적 타이핑 대화 지원 * 다양한 라이브러리 포함 ** 네트워크 통신 라이브러리 ** XML파싱 라이브러리 ** GUI 라이브러리 ** 정규 표현식 Battery Included란 개념에 충실하여 기본 설치 프로그램에 다양한 라이브러리가 포함되어 있다 * 들여쓰기를 통한 스코프 범위 구분 C/C++을 비롯한 다른 언어의 경우 중괄호를 이용하여 스코프 범위를 구분하는데, 보통적으로 들여쓰기를 하여 스코프 범위를 명확히 알 수 있게하지만, 프로그래머의 귀차니즘(...)으로 들여쓰기를 안할 수 있다{{취소선|그렇게 그 코드를 본 다른 프로그래머들은 멘붕을 하고...}} 그러나 파이썬은 다른 프로그래밍 언어와 가장 차이나는 부분으로서 들여쓰기를 강제하고 있다. == 3버전 VS 2버전 == 파이썬이 언어가 발전하면서 많은 부분에서 더이상 사용되지 않지만 하위 호환성(옛 버전의 코드가 최신 버전의 프로그램에서도 동작하는 것)을 위하여 남겨져 찌꺼기가 쌓이게 되었다. 그러자 귀도 반 로섬은 이러한 하위 호환성을 퍼기하고 찌꺼기를 제거하면서 내부적으로 코드를 정리하게 되는데 이것이 파이썬 3.X버전이다. 이러한 파이썬 3.X버전은 2.X버전과의 하위호환성을 보장하지 않으며, 파이썬 2.X버전은 2.7버전에서 3.X버전에 새로 추가된 기능을 몇가지 추가한 뒤 버그 수정만을 하고 있다. == GIL 지옥 == 파이썬은 메모리 관리를 위하여 레퍼런스 카운트(Reference Count)기법을 이용하여 객체를 관리해 왔다. 이러한 레퍼런스 카운트의 동기화를 위하여 전역 인터프리터 록GIL(Global Interpreter Lock)을 사용하였다 초기 파이썬의 동작 환경은 멀티코어의 시대가 아니여서 이에 대한 문제가 없었으며(멀티코어여도 다수의 스레드는 쓰지 않았다), GIL은 구현하기 쉬웠으며 관리하기도 편했다. 하지만 환경이 변하여 멀티코어가 대중에게 보급되면서 다수의 스레드를 써야 하는 시대가 오자 GIL이 문제가 되었다. 다수의 스레드에서 객체에게 접근하려 할 시, GIL이 이를 막아 스레드가 동시에 실행되지 못하고 거기다 객체에 접근하기 위해 스레드끼리 싸움으로서 시간지연까지 생겨 한 개의 스레드를 사용했을 때보다 속도가 느리게 나왔다 이에 현재 파이썬 개발팀에서는 이에 대한 해결책으로 스레드가 아닌 자식 프로세스를 생성하여 GIL 문제를 우회하도록하고 있다. == Python 인터프리터 == 파이썬은 인터프리터 위에서 실행되는데 이 기본 인터프리터를 C로 구현하였다 하여 CPython이라고 한다. 파이썬을 다른 인터프리터/가상머신 위에 올린 프로젝트도 있으며 다른 가상머신에 올림으로써 GIL이나 C스택문제등을 해결한 경우도 있다. === CPython === 파이썬의 기본 인터프리터이며 가장 안정적이고 모든 파이썬 버전의 인터프리터가 존재한다{{취소선|당연하지...}} 아래의 Jython이나 IronPython보다 빠르다고 하더라. === Jython === 파이썬을 바이트코드로 번역하여 JVM(자바 가상 머신)에서 실행하는 인터프리터이다. GIL이나 C스택문제등이 없으며, JVM에 포함되어 있는 자바 라이브러리를 사용할 수 있다. 현재(2015년 4월)까지 업데이트가 되고 있으며 파이썬 2.5버전과 2.7버전을 지원한다 [http://www.jython.org/ 홈페이지] === IronPython === 파이썬을 닷넷 VM에서 실행하는 인터프리터이다 Jython과 같이 CPython에서 일어나는 GIL이나 C스택문제가 없으며 닷넷라이브러리를 사용할 수 있다 파이썬 2.7버전을 지원한다. [http://ironpython.net/ 홈페이지] === StacklessPython === CPython이 함수스택을 C언어의 것에 올려놓음으로써 오버플로우 문제가 일어나자 함수스택을 독자 구현하여 만들어진 Python 2.7버전과 3.X버전을 지원하는데, 이상하게 메인 페이지에 다운로드 페이지의 링크가 없다... [http://www.stackless.com/ 홈페이지] [http://www.stackless.com/wiki/Download 다운로드 페이지] === PyPy === PyPy항목 참조 [[PyPy]] 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다. 취소 편집 도움말 (새 창에서 열림) | () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |} {{lang|}} · {{llang||}} · {{인용문|}} · {{인용문2|}} · {{유튜브|}} · {{다음팟|}} · {{니코|}} · {{토막글}} {{삭제|}} · {{특정판삭제|}}(이유를 적지 않을 경우 기각될 가능성이 높습니다. 반드시 이유를 적어주세요.) {{#expr:}} · {{#if:}} · {{#ifeq:}} · {{#iferror:}} · {{#ifexist:}} · {{#switch:}} · {{#time:}} · {{#timel:}} · {{#titleparts:}} __NOTOC__ · __FORCETOC__ · __TOC__ · {{PAGENAME}} · {{SITENAME}} · {{localurl:}} · {{fullurl:}} · {{ns:}} –(대시) ‘’(작은따옴표) “”(큰따옴표) ·(가운뎃점) …(말줄임표) ‽(물음느낌표) 〈〉(홑화살괄호) 《》(겹화살괄호) ± − × ÷ ≈ ≠ ∓ ≤ ≥ ∞ ¬ ¹ ² ³ ⁿ ¼ ½ ¾ § € £ ₩ ¥ ¢ † ‡ • ← → ↔ ‰ °C µ(마이크로) Å °(도) ′(분) ″(초) Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ(뮤) Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω · Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ · Ϊ ϊ Ϋ ϋ · ΐ ΰ Æ æ Đ(D with stroke) đ Ð(eth) ð ı Ł ł Ø ø Œ œ ß Þ þ · Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź · À à È è Ì ì Ǹ ǹ Ò ò Ù ù · İ Ż ż ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û · Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ · ǘ ǜ ǚ ǖ · caron/háček: Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž · breve: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț 이 문서에서 사용한 틀: 틀:Skin (원본 보기) (준보호됨)틀:각주 (원본 보기) (준보호됨)틀:둘러보기 상자 (원본 보기) (보호됨)틀:둘러보기 상자/중첩 (원본 보기) (준보호됨)틀:둘러보기 상자/핵심 (원본 보기) (보호됨)틀:시리즈 (편집) 틀:틀바 (원본 보기) (준보호됨)틀:프로그래밍 (편집)