맨위로가기

Pylons

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Pylons는 파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크로, 루비 온 레일스의 영향을 받아 개발되었다. Pylons는 자체 개발을 지양하고 서드 파티 도구를 활용하여 기능을 확장하며, URL 디스패처, HTML 생성, 템플릿, 데이터베이스 추상화 등의 기능을 제공한다. Pylons 프로젝트는 repoze.bfg와의 병합을 거쳐 Pyramid 웹 프레임워크로 발전했다.

2. 역사

Pylons 1.0은 WSGI 기반 프레임워크로서 중요한 역할을 했지만, 확장성 측면에서 개선의 어려움이 있었다. [23]

이 시기에 Zope 커뮤니티에서는 Zope 3의 컴포넌트 아키텍처를 활용한[24] 'repoze.bfg'라는 프레임워크가 주목받고 있었다.[25] [5]

2010년, Pylons 프로젝트는 개발 방향을 전환하여 repoze.bfg를 기반으로 차기 버전을 개발하기로 발표했다.[6] [26] 이 결정에 따라 repoze.bfg는 Pylons 프로젝트에 통합되었고, 그 이름을 '''Pyramid'''로 변경하게 되었다.[7] [27]

Pyramid는 2011년 1월 30일에 1.0 버전이 출시되었으며[20], 버전 1.3부터는 파이썬 3 (3.2 이상)과 호환되기 시작했다.[28]

버전릴리스일
1.02011년 1월 30일
1.12011년 7월 22일
1.22011년 9월 12일
1.32012년 3월 21일
1.42012년 12월 18일
1.52014년 4월 8일
1.62016년 1월 3일
1.72016년 5월 19일
1.82017년 1월 21일
1.92017년 6월 26일


2. 1. Pylons 프레임워크

'''Pylons 프레임워크'''는 파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크이다.[9] 재사용성을 높이고 기능을 개별 모듈로 분리하기 위해 WSGI 표준을 광범위하게 사용한다.[10]

Pylons는 루비 온 레일스의 영향을 많이 받았으며, 주요 구성 요소 중 두 가지인 Routes와 WebHelpers는 레일스 기능을 파이썬으로 재구현한 것이다. Pylons는 "자체 개발 금지" 현상을 기피하며, 타사가 개발한 도구를 기반으로 거의 완성된 스택을 갖춘 것으로 잘 알려져 있다.

Pylons는 Pylons 프로젝트로 발전했으며, Pylons 1.0의 이전 코드는 현재 유지 관리 모드에 있다. 2010년 11월 이후 repoze.bfg와의 병합에 따라, 최신 버전의 Pylons는 원래의 Pylons 1.0과는 실제로 다르다. Pylons 개발자들은 처음에 특정 코드 부분을 다시 작성할 계획이었지만, 새로운 코드가 repoze.bfg와 유사해지는 것을 관찰했고, 이는 Pylons와 repoze.bfg의 병합으로 이어졌다.[13][14] 이로 인해 repoze.bfg는 Pyramid 웹 프레임워크로 이름이 변경되어 재출시되었다.[15]

2. 1. 1. 설치 및 구성

Pylons의 공식 설치 방법은 파이썬 패키지 색인(PyPI)을 통한 이지 인스톨을 이용하는 것이다. 대부분의 추가 도구도 일반적으로 같은 방식으로 설치되며, 이지 인스톨은 관련 패키지 종속성도 처리한다. 일부 배포판은 Pylons와 Paste를 패키징할 수도 있지만, 배포판 패키지가 공식 배포판보다 늦을 가능성이 있다. Pylons는 .egg 파일을 .zip으로 이름 변경하고 내용을 추출하여 수동으로 설치할 수도 있다.

Paste는 프로젝트 설정, 테스트 및 배포에 사용된다. 일반적인 INI 파일 구성 형식을 사용하여, Paste는 여러 "프로파일"을 허용한다. 이를 통해 개발자는 대화형 디버거와 같은 Pylons의 민감한 부분을 운영 사용자에게 노출하지 않고 동일한 코드베이스에서 개발 및 배포 설정을 실행할 수 있다.

2. 1. 2. URL 디스패치

WSGI와 호환되는 다양한 URL 디스패처를 사용할 수 있다. 예를 들어 Selector와 같은 다른 WSGI 호환 디스패처도 사용할 수 있다. 하지만 현재 Pylons에서 가장 널리 사용되는 URL 디스패처는 Routes이다. Routes는 루비 온 레일스(Ruby on Rails)의 URL 디스패칭 방식을 파이썬으로 재구현한 것이다. Routes는 별도의 라이브러리이지만, Pylons에서 사용하기 위해 개발되었으며 Pylons와 밀접하게 연동되어 발전해 왔다.

2. 1. 3. HTML 생성

Rails의 영향을 받은 구성 요소 중 하나인 WebHelpers는 Routes 설정을 기반으로 URL 매핑 기능을 제공한다. 또한 WebHelpers는 script.aculo.us나 Prototype 라이브러리를 활용하여 자바스크립트 코드를 생성하기 위한 유틸리티 기능도 제공한다.

HTML 폼의 유효성 검사와 생성을 위해서는 [https://formencode.org/ FormEncode]와 [https://formbuild.readthedocs.io/en/latest/ FormBuild]가 사용된다. Mako의 상속 모델을 사용하여 폼을 생성하기 위해 Mako도 일부 사용된다.

2. 1. 4. 템플릿

마이티(Myghty)는 Pylons 버전 0.9.5까지 기본 템플릿 언어로 사용되었으나, 0.9.6 버전부터 마코(Mako)로 대체되었다.[11][16] 마이티와 마코는 모두 XML 기반이 아닌 텍스트 기반의 템플릿 언어로, 포함(include), 상속(inheritance), 임의의 파이썬 코드 삽입 기능을 지원한다.

Pylons는 구성 요소 간의 결합도가 낮아 다른 템플릿 언어도 유연하게 사용할 수 있다. 예를 들어, XML 기반의 템플릿 언어인 젠시(Genshi)를 마코나 마이티 대신 사용할 수도 있다.[12][17]

2. 1. 5. 데이터베이스 추상화

Pylons에는 기본 데이터베이스 라이브러리가 없다. SQLObject와 SQLAlchemy가 사용된다.

2. 2. repoze.bfg와 Pyramid의 탄생

Pylons 프로젝트는 Pylons 2 개발을 진행하는 과정에서, 새로 작성되는 코드가 repoze.bfg와 점점 유사해지는 것을 발견했다.[13][14] repoze.bfg는 Zope에서 유래한 컴포넌트를 WSGI 애플리케이션에서 사용할 수 있도록 지원하는 프레임워크였다. 이러한 유사성을 바탕으로 Pylons 개발팀과 repoze.bfg 개발팀은 코드베이스와 개발 커뮤니티를 통합하기로 결정했다.

2010년 11월, 두 프로젝트는 통합에 합의했고, 이 결정에 따라 기존의 Pylons 1.0 코드는 유지보수 상태로 전환되었다.[13][14] 한편, repoze.bfg는 Pyramid라는 새로운 이름으로 변경되어 Pylons 프로젝트의 차세대 웹 프레임워크로 자리 잡게 되었다.[7][15] 이로써 Pyramid는 Pylons 프로젝트의 공식적인 후속 프레임워크가 되었다.

3. Pyramid 특징

Pyramid는 Zope, Pylons, Django에서 영감을 얻은 미니멀리즘 웹 프레임워크이며[3], WSGI에 기반을 둔다. 미니멀하고 플랫폼 독립적인 웹 프레임워크로, 영속성에 구애받지 않는다. SQLAlchemy를 통한 SQL 데이터베이스, Zope 객체 데이터베이스, 그리고 NoSQL 데이터베이스(예: CouchDB)와 통합된다.[3]

Pyramid를 사용하면 개발자가 정규 표현식을 사용하여 경로를 정의하고 객체에 매핑할 수 있다. 또한 Zope와 마찬가지로 URL의 각 부분이 파일 시스템의 폴더와 유사하게 다른 객체를 포함하는 계층적 객체 트래버설을 허용한다.[8]

3. 1. 버전

버전 1.3부터는 파이썬 3 호환이 되었다. 파이썬 3.2 이상이면 Pyramid를 사용할 수 있다.[28]

버전릴리스일
1.02011년 1월 30일
1.12011년 7월 22일
1.22011년 9월 12일
1.32012년 3월 21일
1.42012년 12월 18일
1.52014년 4월 8일
1.62016년 1월 3일
1.72016년 5월 19일
1.82017년 1월 21일
1.92017년 6월 26일


4. 커뮤니티

Pylons 프로젝트 관련 논의는 주로 구글 그룹스의 메일링 리스트를 통해 이루어진다.



2018년 5월 8일 기준으로 해당 그룹의 정보는 다음과 같다.

  • 멤버 수: 2871명
  • 월 평균 메시지 수: 25개 (지난 3개월간 평균)

참조

[1] 웹사이트 Pyramid Change History — The Pyramid Web Framework v2.0 https://www.docs.pyl[...] 2021-04-26
[2] 웹사이트 Copyright, Trademarks, and Attributions — The Pyramid Web Framework v2.0 https://www.docs.pyl[...] 2021-04-26
[3] 웹사이트 repoze.bfg introduction http://docs.repoze.o[...] 2010-09-21
[4] 웹사이트 Zope Summit, DZUG, repoze.bfg http://codesinger.bl[...] 2010-09-17
[5] Youtube KARL – large-scale Knowledge Management http://plone.blip.tv[...] Plone Conference 2009 2009-10-28
[6] 웹사이트 Emails explaining the Pylons 2 structure http://sluggo.scrapp[...] 2010-09-18
[7] 웹사이트 repoze.bfg is now Pyramid http://www.plope.com[...] 2011-01-03
[8] Youtube Lessons from other frameworks http://plone.blip.tv[...] Plone Conference 2009 2009-10-28
[9] 웹사이트 History of Pylons https://pylonsprojec[...]
[10] 문서
[11] webarchive Beginning Pylons http://workaround.or[...] 2007-07-05
[12] 웹사이트 Pylons with Genshi http://genshi.edgewa[...] 2007-07-05
[13] 웹사이트 Pylons Project FAQ https://pylonsprojec[...]
[14] 웹사이트 Be Groovie - Notes on the Pylons & repoze.BFG Merger http://be.groovie.or[...] 2012-08-14
[15] 웹사이트 About Pyramid https://trypyramid.c[...]
[16] 웹사이트 Beginning Pylons http://workaround.or[...] 2007-07-05
[17] 웹사이트 Pylons with Genshi http://genshi.edgewa[...] 2007-07-05
[18] 웹사이트 Pylons ユーザのための Pyramid 移行ガイド http://knzm.github.i[...] 2014-03-26
[19] 문서 BFG_HISTORY.txt https://raw.github.c[...]
[20] 웹사이트 Pyramid Change History 1.0(2011-01-30) http://docs.pylonspr[...] Agendaless Consulting 2013-09-14
[21] 웹사이트 Pyramid Change History https://docs.pylonsp[...] 2018-05-08
[22] 웹사이트 repoze.bfg introduction http://docs.repoze.o[...] 2010-09-21
[23] 웹사이트 Why Extending Through Subclassing (a framework’s classes) is a Bad Idea (翻訳) http://knzm.readthed[...] 2014-03-27
[24] 웹사이트 Repoze.bfgについて http://blog.livedoor[...] 2014-03-27
[25] 웹사이트 Zope Summit, DZUG, repoze.bfg http://codesinger.bl[...] 2010-09-17
[26] 웹사이트 Emails explaining the Pylons 2 structure http://sluggo.scrapp[...] 2010-09-18
[27] 웹사이트 repoze.bfg is now Pyramid http://www.plope.com[...] 2011-01-03
[28] 웹사이트 Pyramid 1.3 の新機能 http://docs.pylonspr[...] 2014-03-27
[29] 웹인용 Pyramid Change History https://docs.pylonsp[...] Pylons Project 2017-03-10
[30] 웹인용 Pyramid Change History — The Pyramid Web Framework v2.0 https://www.docs.pyl[...] 2021-04-26
[31] 웹사이트 History of Pylons https://pylonsprojec[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com