| 1 | | [[분류:프로그래밍 언어]]
|
|---|
| 2 | | [목차]
|
|---|
| 3 | | == 개요 ==
|
|---|
| 4 | | [[https://www.python.org|파이썬]]은 귀도 반 로섬에 의해 1991년에 발표된 인터프리터 방식의 프로그래밍 언어다. 영어와 비슷해서 읽고 쓰기 쉬운 특유의 문법과 그로 인해 전 세계의 개발자들로부터 만들어진 수많은 패키지들 덕분에 사용할 수 있는 용도가 무궁무진해져 2010년대 중반부터 주류 프로그래밍 언어로 올라서게 되었다.
|
|---|
| 5 | | |
|---|
| 6 | | == 장단점 ==
|
|---|
| 7 | | * 장점
|
|---|
| 8 | | * 빠른 개발속도
|
|---|
| 9 | | * 파이썬의 아이덴티티. 높은 생산성은 그 무엇과도 비교할 수 없는 파이썬만의 특징이다. 전 세계의 모든 프로그래밍 언어 중에서 파이썬 정도의 낮은 난이도를 가지면서, 범용성을 갖추고, 파이썬 수준의 프로그램 개발 속도를 따라잡을 수 있는 언어가 없다. 파이썬으로 만든 프로그램을 같은 객체 지향 프로그래밍 언어인 Java나 C++로 만들려는 순간 숨이 턱 막힐 정도. 이런 언어들을 사용하려면 설계부터 난감해진다.
|
|---|
| 10 | | * 거대한 생태계 |
|---|
| 11 | | * 파이썬으로 무언가를 하고 싶어지면 그걸 하기 위한 패키지는 인터넷 어딘가에는 반드시 존재한다. 사실상 못 하는 것이 없다. 웹사이트 서버를 구현하려고 하면 Python Web Framework를 쳐보자(Django, Flask 등). 기계학습 알고리즘을 쓰고 싶다면 python machine learning이라 검색하자(scikit-learn). 얼굴 인식을 코드 몇 줄로 할 수도 있다(OpenCV). 기본적으로 설치되는 모듈인 tkinter 모듈을 이용하면 간단한 GUI 프로그래밍을 할 수 있다. 게임도 만들 수 있다(Pygame). 비주얼 노벨도 만들 수 있다. 웹사이트 크롤링도 할 수 있다. |
|---|
| 12 | | * 교육의 편의성 |
|---|
| 13 | | * 파이썬은 위의 특징 때문에 교육용 프로그래밍 언어로 각광받고 있다. 한국, 미국의 여러 대학교 프로그래밍 교육들은 개론 수업 언어를 C, C++나 Java에서 파이썬으로 옮겨가는 추세다.
|
|---|
| 14 | | |
|---|
| 15 | | * 단점
|
|---|
| 16 | | * 느린 실행 속도
|
|---|
| 17 | | * 우선 기본적으로 가장 아쉬운 점은 속도이다. 한 논문에 따르면, CLBG에서 제시한 10개의 벤치마킹을 돌려본 결과 파이썬은 C에 비해 71.90배의 시간, 2.80배의 메모리, 75.88배의 에너지를 더 소모한다고 한다.
|
|---|
| 18 | | * 느린 속도를 보완하기 위해서 보통 여러 가지 방법이 동원된다. 기본적으로는 파이썬 내장 모듈을 사용해서 멀티쓰레딩이나 멀티프로세싱을 구현한다. Scipy나 Numpy와 같은 모듈의 고속 계산 함수를 꺼내 쓰기도(Vectorize) 한다. 더 나아가서는 속도가 빠른 C와 같은 언어를 래핑(Wrapping)하여 작성하기도 한다. 전문적으로 개발할 때는 외부 패키지에 의존하지 않고 직접 작성한 코드에서 고속화를 하기 위해 자연스럽게 더 높은 난이도의 언어를 혼합해서 사용하게 된다. 이 경우 파이썬은 논리적인 부분을 담당하고, 래핑된 다른 언어는 반복 연산을 담당하게 된다. 대표적인 예시로 Numba나 Cython같은 제3자 솔루션을 적용하기도 하며, 흔히 인공지능 용도로 사용되는 Python 라이브러리인 TensorFlow 는 C++ 로 작성되었다. Python 을 이용하면 TensorFlow 를 '사용' 만 할 수 있을뿐이다, TensorFlow 의 로직 자체를 수정 및 커스텀 하기 위해선 반드시 C++ 코드에 손을 대야 한다.
|
|---|
| 19 | | * 일반 사용자에게의 배포
|
|---|
| 20 | | * 파이썬은 프로그래머가 곧 자기가 만든 프로그램의 이용자가 되기 위해 사용되며 발달해 왔기 때문에, 긴 역사에도 불구하고 일반 사용자에게 배포를 하는 과정이 간접적이고 복잡하며, 파편화되어 발달이 덜 되어 있다. 그나마 '파이썬 프로그래머'들에게 '파이썬 프로그래머'가 배포를 하는 방식은 몇 가지가 있으나, '순수한 사용자' 에게 '(파이썬으로 만든)기능'을 전달하는 수단에 있어서는 다른 언어들에선 상상하기 어려울 정도로 원시적인 측면이 있다.
|
|---|
| 21 | | |
|---|
| 22 | | == 이름의 유래 ==
|
|---|
| 23 | | 파이썬 언어는 영국의 코미디언 그룹인 몬티 파이썬(Monty Python)에서 이름을 따왔다.
|
|---|
| 1 | 잊지 않겠습니다. teojeoboja님. |
|---|
| 2 | 사무관이 위키의 얼굴이라는 말이 있습니다. teojeoboja님 사무관 하실 때는 알파위키에서 별로 문제 되는 게 없었습니다. 그러나 yopu님께서 사무관되시고 나서 모든 것이 바뀌기 시작했습니다. 그때[* 2023.12.6] 관리자 바로 사퇴하고 알파위키를 떠났어야 했나 봅니다. |
|---|
| 3 | 저는 지금 알파위키가 지금 같이 되는 걸 yopu님께서 사무관 출마하실 때부터 알았습니다. |
|---|
| 4 | 제 이름은 iongames입니다. 요푸같이 애미없는 좆븅신 아니고 산요나 파베이트처럼 개븅신일본따거새끼도 아닌 잼민이입니다. |
|---|
| 5 | 터져보자가 사무관으로 복귀하고, 요푸만 관리자 직에서 영원히 꺼지기에 서약한다면 이 반달은 절대 다시하지 않을것이며, 그동안의 반달에 대해서는 진심을 다해 사과하겠습니다. |
|---|
| 6 | 제가 반달을 하는건 '지금의' 알파위키 모습이 싫어서 그러는겁니다. |
|---|
| 7 | 옛날 13기때 보십쇼. 완장 2명(터져, 광톨)이였는데 사건사고 터졌습니까? 별로 없었지 않습니까. 이번 기수는 시작부터 4명 09박고 시작하지 않았습니까? 반달이 토론 존나게 도배해도 더럽게 늦게 대처하고. 이딴게 위키고 관리자입니까? |
|---|
| 8 | 거듭 강조드리지만, 저는 다른거 필요 없고 '터져 복귀, 요푸 사퇴' 이것만 이루어진다면 절대로 반달하지 않을것을 약속드릴수 있습니다. |
|---|
| 9 | 선택은 자유입니다. |
|---|