반응형
블로그 이미지
취미생활 추천받아여~       게임이든, 여가생활이든 :D

카테고리

분류 전체보기 (615)
☆잡동사니 (501)
☆코딩개발 (76)
☆영어공부 (38)
★★★★★★ (0)
Total
Today
Yesterday


반응형

 

 

안녕하세요 블로그지기 과라나입니다. 구글을 비롯한 많은 기업이 그 쉽고, 강력함에 매료되어사용빈도를 계속해서 높이고 있습니다. 실제로 2006 대안언어축제에는 많은 참가자와 발표자들이 파이썬을 잘 알면서도, 발표 튜토리얼은 제공하지 않아 그 대안이란 의미를 실감하게 했습니다. 그리고 그 강력함으로 인해, 이제는 프로토타입용 언어라는 타이틀도 벗어버렸습니다. 많은 실험용 코드들이 몇몇 수정만으로도 실제 서비스에 이용되기도 합니다. 장고는 바로 파이썬 사용자들을 위한 웹 프레임워크입니다장고는 미국의 온라인 신문사인 World Online에서 처음 시작되었습니다. 2003년 가을, 계속되는 뉴스기사들의 추가 새로운 콘텐츠의 제공 요구, 다가오는 데드라인 등의 압박에서 아드리안과 사이몬(Django의 핵심 개발자들)PHP를 벗어버리고 파이썬으로 웹사이트를 구현하기로 합니다. 그리고는 2년 뒤인 2005년 여름, 구현된 웹사이트의 재사용된 부분들을 오픈 소스로 공개하기로 하고 그것의 이름을 장고로 지었습니다. 그 이름은 아드리안이 좋아하는 재즈기타리스트인 Django Reinhardt의 이름에서 따왔다고 합니다웹사이트에 사용된 오픈소스 소프트웨어들인 Apache, PostgreSQL, 파이썬이 없으면, 장고도 의미가 없다는 생각에 개발자들은 장고 역시 오픈소스로 추진하였고, 그것을 자랑스러워 하였습니다. 그 덕분에, 우리도 이러한 좋은 프레임워크를 자유롭게 쓸 수 있게 되었으며, 전 세계의 개발자들과 함께 더욱더 발전하게 되었습니다. 장고는 World Online사에서 3년여 간 방대한 트래픽을 처리하면서, 안정성을 인정받았고, 폭주하는 요청들에 대한 다양한 분산 요구 사항들도 만족하면서, 실용성을 높였습니다. 무엇보다도, 장고의 주요 목적인 쉽고, 빠른 웹사이트 개발환경에 많은 개발자들이 매료되었고, 그 이후, 워싱턴포스트를 비롯한 주요 신문사 웹사이트에 사용되었으며, 다양한 웹 어플리케이션들을 위한 웹 프레임워크로 자리매김하였습니다파이썬과 같은 스크립트 언어로 웹 어플리케이션을 만드는 일은 몇 가지 문제들로 인해 그 실용성에 많은 문제가 제기되어 왔습니다. 매 요청마다 그때그때 인터프리터가 메모리로 올라와야 했었고, 그로 인한 성능저하를 감수해야만 했습니다. 이를 피하기 위한 다양한 방법들이 존재해 왔는데, 이는 개발자들로 하여금 웹 프로그래밍을 더욱 어렵게 했습니다. 올해 10월 공개된 파이썬 2.5는 이러한 다양한 방법들에 대한 공통된 APIWSGI(Web Server Gateway Interface)를 제공하는데, 장고는 그 이전부터, WSGI를 자체적으로 제공하여 다양한 웹 환경에서의 동작을 가능하게 하였습니다. 이를 테면 Apachemod_python을 이용한다던가, ApacheFastCGI를 이용한다던가, 파이썬 비동기 네트워크 프레임워크인 Twistedweb2를 이용한다던가, 등등이 모두 가능합니다근래의 소프트웨어들은 그 설계에 있어서, 모델(데이터)와 뷰(보여주는 방법)을 분리하는, MVC(Model View Controller) 패러다임의 방법을 자주 이용해 왔습니다. 웹 프레임워크도 이 개념을 이용하여 웹 개발을 모델(데이터베이스)와 뷰(HTML, CSS)를 적절히 분리하고, 이를 적절히 연결하는데 주안을 두고 있습니다. 장고의 MVC개념도 유사한데 약간은 다른 용어를 사용하고 있다모델(Model) : 구조화되는 데이터. 객체와 관계 데이터베이스를 연결하여 ORM(Object-relational mapping)이라고도 합니다(View) : URL 요청별로 데이터를 준비하는 역할을 합니다템플릿(Template) : 뷰에 준비된 데이터를 어떻게 보여줄 것인가에 대한 역할을 합니다장고에서는 ViewController의 역할과 유사하고, TemplateView의 역할과 유사합니다. 이렇게 용어를 사용한 이유는 뷰의 개념을 어떻게 보여줄지 보다는 어떤 데이터를 준비할 것인가에 대한 역할을 강조하였기 때문입니다. 그래서 장고의 MVCMTV(Model Template View) 라고 이야기하기도 하지만, 그다지 중요한 차이는 아닙니다여기서, 또 다른 파이썬의 웹 프레임워크 가운데 하나인 TurboGears와의 차이점을 볼 수 있는데, TurboGears는 각 요소별로 기존에 존재하는 파이썬 라이브러리를 이용하였고, 그것들을 조합한 반면, 장고는 각각을 직접 구현하였습니다. 장고 개발자들은 기존에 존재하던 도구들의 조합보다는 빠른 웹사이트 제작을 위한 보다 더 최적화된 직접적인 구현을 선호하였던 셈입니다장고의 중요한 특징 중 하나는 관리자 웹 인터페이스가 자동으로 제공된다는 것입니다. 보통 웹 어플리케이션 작성에 있어서 관리자 인터페이스는 꼭 필요한 것이면서도 일반적 기능과도 많이 중복되어 구현이 번거롭던 것이 사실입니다. 사용자관리, 사용자 그룹관리, 사용자 별 권한(permission)에 대한 것뿐 아니라, 각각의 모델 객체에 대해서, 목록/추가/삭제/변경의 기능이 관리자 인터페이스에서 모두 제공됩니다이는 특히, 데이터베이스, 웹 어플리케이션을 실험적으로 작성하기 좋습니다. 데이터베이스 모델링만으로(models.py 파일을 작성하는 것 만으로) 웹 어플리케이션의 작동을 실험해 볼 수 있습니다. 이 방법으로 데이터베이스화 해야 할 많은 정보들을 별다른 수고 없이 관리하고 있습니다그 밖의 장고의 특징으로, 세련된 URL 설계와 디자이너 친숙한 템플릿 기능을 들 수 있습니다. 가끔씩 게시판이나, 메신저등에서 보이는 하염없이 길기만 하거나, “?a=b&c=d” 등과 같은 깔끔하지 못한 URL은 장고로 만든 웹 어플리케이션에서는 찾아볼 수 없습니다URL을 해석하는 부분에 정규식(Regular expression)을 사용하여, 개발자는 원하는 어떤 형태로도 URL을 설계할 수 있다. 구조화되고, 이해하기 쉬운 URL의 설계가 웹 어플리케이션의 전체적인 구조를 가늠하게 한다는 점을 생각해 볼 때 이는 매우 반가운 기능입니다. 템플릿 기능은 다른 웹 프레임워크들 역시 가능한 한 쉽고 빠르고 웹디자인이 쉽도록 노력하고 있는데 장고도 [XML]을 쓰지 않는다던가, 템플릿 태그를 확장 가능하도록 한다던가 등의 방법들을 통해 이를 지원하고 있습니다얼마전 파이썬 창시자 귀도는 장고의 템플릿 기능이 타 프레임워크에 비해 더 세련되었다고 코멘트한 바 있습니다. (Django vs. Cheetah: 1-0) 그 외에도, 폭주하는 요청들을 처리해야 하는 대형 웹사이트들을 위한 최적화된 캐시(cache) 프레임워크를 제공하여, 메모리상의 캐시, 파일시스템 캐시, 데이터베이스 캐시 및 분산화 방법 등을 통해 고성능 요구 사항에도 최적화하였으며, 다국어지원 웹사이트를 위한 국제화([I18n], Internationalization) 지원도 충분하게 이루어지고 있습니다.

반응형
Posted by 과라나
, |

최근에 올라온 글

05-14 16:24

글 보관함