파이썬

파이썬은 오픈소스 언어로서, ‘자비로운 종신독재자(BDFL, Benevolent Dictator for Life)’ 체제 기반운영으로 유명합니다. ‘BDFL’ 이란, 소스코드를 수정하는 최종 권한을 갖거나, 전체적인 개발 방향을 정해주는 사람을 말하는데요. 주로 해당 오픈소스 기술을 처음 만든 창시자가 BDFL을 맡습니다. 다시 말해 누구나 파이썬을 위해 자유롭게 토론하고 소스코드에 기여할 수 있으나, 오픈소스 기술의 방향과 기능을 정하는 최종 결정권자는 BDFL에게 맡기는 것이죠.

(파이썬을 범용 언어라고 할 수 있다면, R은 분석을 위한 통계용 언어입니다)

패들리에 의하면 오픈 소스 개발자는 파이썬이 지원되면 소프트웨어 개발에 비주얼 스튜디오의 이용을 검토할 가능성이 높다고 한다. 그는 콘텐츠 관리 시스템의 「Plone」나 애플리케이션 서버 「Zope」의 개발 프로젝트에 참가하는 오픈 소스 개발자이기도 하다.

파이썬으로 작성된 자유-오픈 소스 소프트웨어

파이썬으로 작성된 자유-오픈 소스 소프트웨어[편집]

* 아나콘다(Anaconda)

* 비트토렌트(BitTorrent)

* 메일맨(MailMan)

* 모인모인(MoinMoin Wiki)

* 플러커(Plucker)

* 포티지(Portage)

* 파이솔(PySol)

* 뷰CVS(ViewCVS)

* Zope / Plone

* Trac

* 장고 (웹 프레임워크)

* 드롭박스(Dropbox)

4-2. 파이썬 성공사례

파이썬 성공 사례

소개

저는 1994 년부터 C 및 C ++로 프로그래밍을 해왔으며 Windows 시스템 프로그래밍에서 많은 팀을 이끌었습니다. 2007 년 Enovad의 Armadillo 스팸 방지 소프트웨어 프로젝트와 관련하여 Windows와 Linux 모두에서 소프트웨어를 실행해야한다는 요구 사항이있었습니다.

이를 위해 필자는 숙련 된 Windows 시스템 개발자 팀을 재교육하여 Linux에서 제품을 제공 할 수 있어야했습니다. 나에게 유용한 도구와 프로그래밍 언어를 재평가하기로 결정했으며, 이로 인해 Python을 크로스 플랫폼 개발 솔루션으로 조사하게되었습니다.

Armadillo 소개

Armadillo 프로젝트는 여러 도메인과 플랫폼에서 작동하는 SMTP 전자 메일 필터링 프록시입니다. 이 프로젝트는 Windows 전자 메일 서버를 생성하고 전자 메일 호스팅에 스팸 방지 및 바이러스 필터링 프록시를 제공하는 파트너 비즈니스의 요구를 충족시키기 위해 만들어졌습니다.

우리는 오픈 소스 전자 메일 서버를 사용하고 개선하는 것을 고려했지만 Windows에서 작동하도록하는 데 어려움을 겪었습니다. 중요한 안티 스팸 개발 (milter.org 참조)이 포함 된 대부분의 메일 서버는 엄격하게 Unix / Linux 기반입니다. Windows로 이식하는 것은 너무 어려워 보였습니다. 예를 들어 SendMail은 Windows에서 제대로 작동하지 않는 프로세스 인스턴스 모델을 사용하는 반면 maildir과 같은 일부 전자 메일 저장 형식은 유닉스 파일 시스템 구현의 특성에 잘 의존합니다.

Armadillo는 이전에 작성한 일부 필터링 구성 요소와 제 3 자로부터 라이센스를 얻을 수있는 일부 구성 요소를 기반으로합니다. 이들 모두는 C로 작성되었으며 C 라이브러리로만 사용할 수 있습니다.

필터링 SMTP 프록시는 스마트 스풀러, 라이브러리 필터링을위한 플러그인 아키텍처, 스팸 / 바이러스 보고서 생성기, 수신자, relayer, 여러 독립 도메인을위한 정책 객체, 모니터 객체 및 Apache 및 IIS에서 PHP로 실행되는 웹 구성 GUI로 구성됩니다.

Armadillo 스팸 필터링 프로세스 개요 확대

왜 파이썬인가?

"Mono"가 지원하기 때문에 C #을 고려했습니다. 여기에있는 사람들은 이미 Windows에서 C # 개발에 정통했습니다. 그러나 우리는 Windows에서 개발 된 코드가 Mono에서 똑같이 잘 작동 할 것이라는 확신이 없었으며 모든 개발은 Mono에서 누락 될 수있는 API를 적극적으로 피할 필요가있었습니다. Windows와 Linux에서 IDE의 안정성과 기능 세트의 차이점도 문제였습니다. 결과적으로 파이썬을 포함한 다른 옵션을 살펴 보았습니다.

우리 조사의 시점에서 파이썬은 버전 2.5에 도달했고, 우리가 느낀 것은 믿을 수있는 수준의 성숙이었다. "메인 스트림"선택은 아니지만, 파이썬은 크로스 플랫폼 능력과 언어가 팀에 가져올 수있는 생산성 때문에 매력적이었습니다.

일부 팀 구성원은 회의적이었고 시스템 프로그래밍을 위해 C / C ++의 검증 된 기능을 선호했습니다. 우리는 나머지 구성원이 다른 구성 요소에 Python을 사용하는 동안 해당 구성원이 제품 구성을 위해 웹 GUI에서 작업하기로 결정했습니다.

이행

우리는 스레드를 사용하는 대신 비동기 스타일로 Armadillo를 구현하기로 결정했습니다. 처음에는 비동기 프로그래밍을위한 인기있는 프레임 워크 인 Twisted를 사용할 계획이었습니다. 그러나 일부 스트레스 테스트를 수행 할 때 파이썬 표준 라이브러리 모듈 asyncore는 강력하고 빠르지 만 우리의 목적에 사용하기에 충분히 쉽지 않은 것으로 나타났습니다.

여러 다른 표준 라이브러리도 사용되었고, 우리는 ActiveState가 제공 한 파이썬 레시피를 사용했다. 프로젝트에 통합 된 C 필터링 라이브러리는 확장 모듈로 래핑되었습니다.

개발 환경의 경우 기본 IDE로 Wing IDE를 사용했습니다. 우리의 테스트 머신은 Linux와 Windows 모두에서 실행되었지만 Wing IDE를 사용하여 Windows에서 모든 주요 개발 작업을 수행 할 수있었습니다.

아르마 딜로 아키텍처 개요

코 테스트와 표준 라이브러리 모듈 unittest는 프로젝트에 강력한 단위 테스팅 토대를 제공했습니다. 이는 높은 코드 품질을 유지하는 데 도움이되는 개발 프로세스의 핵심 구성 요소였습니다.

정말로 축복이었던 Python 개발의 한 가지 작은 기능은 대화식 Python 셸에서 텍스트 처리 코드 또는 코딩 가정을 신속하게 테스트 할 수있는 기능이었습니다.

결과

4 개월 후 팀은 전체 프로젝트에서 C / C ++을 사용했을 때 예상했던 것보다 3 개월 빨라진 필터링 제품을 보았다는 사실에 놀라움을 금치 못했습니다.

여러 도메인에서 독립적 인 정책을 지원하는 안티 스팸 / 바이러스 필터링, 리소스 사용량이 적게 든든한 24x7 운영, 자체 생성 된 스팸보고, DoS (서비스 거부) 기능, 플러그 인 영어 및 중국어 스팸 방지 및 현지화 된 스팸 필터, 인기있는 SMTP 서버에 투명하게 릴레이 할 수있는 AUTH LOGIN / PLAIN 용 SMTP 인증 프록시가 있으며 Windows 및 Linux 모두에서 실행되었습니다.

우리는 이후 여러 회사에 제품을 성공적으로 라이선스했으며 리뷰에서 인기있는 브랜드 경쟁 제품을 제쳤습니다. 이 제품은 Python이 스크립팅 언어가 아닌 상업용 시스템 수준의 개발에 적합하다는 증거로, 적어도 여기 팀에게 있습니다.

Python은 현재 모든 회사의 시스템 개발 프로젝트에서 선호하는 언어입니다. 물론 디바이스 드라이버는 제외됩니다!

아르마 딜로 아키텍처 개요

코 테스트와 표준 라이브러리 모듈 unittest는 프로젝트에 강력한 단위 테스팅 토대를 제공했습니다. 이는 높은 코드 품질을 유지하는 데 도움이되는 개발 프로세스의 핵심 구성 요소였습니다.

정말로 축복이었던 Python 개발의 한 가지 작은 기능은 대화식 Python 셸에서 텍스트 처리 코드 또는 코딩 가정을 신속하게 테스트 할 수있는 기능이었습니다.

결과

4 개월 후 팀은 전체 프로젝트에서 C / C ++을 사용했을 때 예상했던 것보다 3 개월 빨라진 필터링 제품을 보았다는 사실에 놀라움을 금치 못했습니다.

여러 도메인에서 독립적 인 정책을 지원하는 안티 스팸 / 바이러스 필터링, 리소스 사용량이 적게 든든한 24x7 운영, 자체 생성 된 스팸보고, DoS (서비스 거부) 기능, 플러그 인 영어 및 중국어 스팸 방지 및 현지화 된 스팸 필터, 인기있는 SMTP 서버에 투명하게 릴레이 할 수있는 AUTH LOGIN / PLAIN 용 SMTP 인증 프록시가 있으며 Windows 및 Linux 모두에서 실행되었습니다.

우리는 이후 여러 회사에 제품을 성공적으로 라이선스했으며 리뷰에서 인기있는 브랜드 경쟁 제품을 제쳤습니다. 이 제품은 Python이 스크립팅 언어가 아닌 상업용 시스템 수준의 개발에 적합하다는 증거로, 적어도 여기 팀에게 있습니다.

Python은 현재 모든 회사의 시스템 개발 프로젝트에서 선호하는 언어입니다. 물론 디바이스 드라이버는 제외됩니다!

results matching ""

    No results matching ""