파이썬 프레임워크 (Django Framework)
교육시간 09:30 ~17:30 [주말반] : 총4회수업[28시간]
교육일정 2017년 예정
교육비용 700,000원 교육문의 ☎ 02 . 539 . 8879

장고(Django)의 특징

 


구글(Google)을 비롯한 많은 기업이 그 쉽고, 강력함에 매료되어, 그 사용빈도를 계속해서 높이고 있다. 실제 2006 대안언어축제에는 많은 참가자와 발표자들이 파이썬을 잘 알면서도, 발표 튜토리얼은 제공하지 않아 그 “대안” 이란 의미를 실감하게 했다. 또한 그 강력함으로 인해, 이제는 프로토타입용 언어라는 타이틀도 벗어버렸다. 많은 실험용 코드들이 몇몇 수정만으로도 실제 서비스에 이용되기도 한다. 장고는 바로 파이썬 사용자들을 위한 웹 프레임워크이다.


장고는 미국의 온라인 신문사인 World Online에서 처음 시작되었다. 2003년 가을, 계속되는 뉴스기사들의 추가, 새로운 콘텐츠의 제공 요구, 다가오는 데드라인 등의 압박에서, 아드리안과 사이몬(Django의 핵심 개발자들)은 [PHP]를 벗어버리고, 파이썬으로 웹사이트를 구현하기로 한다. 그리고는 2년 뒤인 2005년 여름, 구현된 웹사이트의 재사용된 부분들을 오픈 소스로 공개하기로 하고, 그것의 이름을 장고로 지었다. (그 이름은 아드리안이 좋아하는 재즈기타리스트인 Django Reinhardt의 이름에서 따왔다고 한다.)


웹사이트에 사용된 오픈소스 소프트웨어들인 Apache, PostgreSQL, 파이썬이 없으면, 장고도 의미가 없다는 생각에 개발자들은 장고 역시 오픈소스로 추진하였고, 그것을 자랑스러워 하였다. 그 덕분에, 우리도 이러한 좋은 프레임워크를 자유롭게 쓸 수 있게 되었으며, 전 세계의 개발자들과 함께 더욱더 발전하게 되었다. 장고는 World Online사에서 3년여 간 방대한 트래픽을 처리하면서, 안정성을 인정받았고, 폭주하는 요청들에 대한 다양한 분산 요구 사항들도 만족하면서, 실용성을 높였다. 무엇보다도, 장고의 주요 목적인 쉽고, 빠른 웹사이트 개발환경에 많은 개발자들이 매료되었고, 그 이후, 워싱턴포스트를 비롯한 주요 신문사 웹사이트에 사용되었으며, 다양한 웹 어플리케이션들을 위한 웹 프레임워크로 자리매김하였다.


파이썬과 같은 스크립트 언어로 웹 어플리케이션을 만드는 일은 몇 가지 문제들로 인해, 그 실용성에 많은 문제가 제기되어 왔다. 매 요청마다 그때그때 인터프리터가 메모리로 올라와야 했고, 그로 인한 성능저하를 감수해야만 했다. 이를 피하기 위한 다양한 방법들이 존재해 왔는데, 이는 개발자들로 하여금, 웹 프로그래밍을 더욱 어렵게 했다. 올해 10월 공개된 파이썬 2.5는 이러한 다양한 방법들에 대한 공통된 API인 WSGI(Web Server Gateway Interface)를 제공하는데, 장고는 그 이전부터, WSGI를 자체적으로 제공하여, 다양한 웹 환경에서의 동작을 가능하게 하였다. 이를 테면, Apache와 mod_python을 이용한다던가, Apache와 FastCGI를 이용한다던가, 파이썬 비동기 네트워크 프레임워크인 Twisted의 web2를 이용한다던가, 등등이 모두 가능하다.


근래의 소프트웨어들은 그 설계에 있어서, 모델(데이터)와 뷰(보여주는 방법)을 분리하는, MVC(Model View Controller) 패러다임의 방법을 자주 이용해 왔다. 웹 프레임워크도 이 개념을 이용하여, 웹 개발을 모델(데이터베이스)와 뷰(HTML, CSS)를 적절히 분리하고, 이를 적절히 연결하는데 주안을 두고 있다. 장고의 MVC개념도 유사한데, 약간은 다른 용어를 사용하고 있다.


모델(Model) : 구조화되는 데이터. 객체와 관계 데이터베이스를 연결하여, ORM(Object-relational mapping)이라고도 한다.

뷰(View) : URL 요청별로 데이터를 준비하는 역할을 한다.

템플릿(Template) : 뷰에 준비된 데이터를 어떻게 보여줄 것인가에 대한 역할을 한다.

장고에서는 View가 Controller의 역할과 유사하고, Template이 View의 역할과 유사하다. 이렇게 용어를 사용한 이유는 뷰의 개념을 어떻게 보여줄지 보다는 어떤 데이터를 준비할 것인가에 대한 역할을 강조하였기 때문이다. 그래서 혹자는 장고의 MVC를 MTV(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) 지원도 충분하게 이루어지고 있다.




  

주제 강의주요내용 시간
Network 프로그래밍
  • Socket API 사용
  • Socket으로 echo server 작성
  • Thread를 이용한 채팅 프로그램
7
HTTP Server
  • Simple HTTPServer로 웹 서버 구축
  • CGIHTTPRequestHandler로 CGI 처리
7
Django framework 의 이해
  • 장고 프레임워크 이해 및 설치
  • 장고 MTV 구조 이해 및 적용
  • 장고 기본 설정 파일의 역할
  • 기본 장고 프로젝트 작성
  • 요청 uri와 파이썬 함수의 매핑
  • Template의 사용
  • Model 클래스로 DB 연동 처리
  • 장고 폼으로 사용자 입력화면 작성
  • 장고 템플릿 언어 사용방법
7
Django framework 의 활용
  • 원격 DBMS와 연동 프로젝트 작성
  • CRUD 가 있는 상품관리, 회원관리 프로젝트
  • 페이징 처리
  • 게시판 작성
7
신청자(필수)
생년월일(필수) 예)820506
수강형태(필수)
결재방법(필수)
교육일정선택(필수)
문의사항

개인정보 수집 및 이용

수집하는 개인정보의 항목

수집하는 목적/방법에 따라 수집하는 개인정보 항목은 다음과 같습니다.
- 기본 개인정보 정보
 신청자, 샌년월일, 연락처, 이메일, 회사명

- 마케팅/서비스 이용을 위한 정보
 신청자, 주민등록번호, 연락처, 이메일, 회사명

- 서비스 이용 중 발생되는 정보
 서비스 이용기록, 접속로그, 쿠키
 결재수단에 대한 기록여부(계좌), 결재기록

개인정보 수집 및 이용 목적

에이콘 아카데미는 수집한 개인정보를 다음의 목적을 위해 활용합니다.
- 서비스 제공에 관한 계약 이행 및 서비스 제공에 따른 요금정산 목적
학습진행, 컨텐츠 제공, 구매 및 요금 결제, 물품배송 또는 청구지 등 발송
- 회원 관리
회원제 서비스 이용에 따른 본인확인, 개인 식별, 불량회원의 부정 이용 방지와
비인가사용 방지, 가입 의사 확인, 연령확인, 불만처리 등 민원처리, 고지사항 전달
- 마케팅 및 광고에 활용
신규 서비스(제품) 개발 및 특화, 이벤트 등 광고성 정보 전달, 인구통계학적 특성에 따른
서비스 제공 및 광고 게재, 접속 빈도 파악 또는 회원의 서비스 이용에 대한 통계
- 고용보험 과정의 노동부 신고
회원이 신청한 과정이 고용보험 대상 과정인 경우 고용보험 환급을 이유로 노동부에 신고하게 됩니다.

개인 정보 보유 및 이용기간

원칙적으로, 개인정보 수집 및 이용목적이 달성된 후에는 해당 정보를 지체 없이 파기합니다.
단, 다음의 정보에 대해서는 아래의 이유로 명시한 기간 동안 보존합니다.

보존 항목 : 신청자, 주민등록번호, 연락처, 이메일, 회사명
보존 근거 : 고용보험 환급 적정성 심의
보존 기간 : 3년

그리고 관계법령의 규정에 의하여 보존할 필요가 있는 경우 회사는 아래와 같이 관계법령에서 정한 일정한 기간 동안 회원정보를 보관합니다.
1) 기타 법령에 따른 보유기간/관계법 안내
- 계약 또는 청약철회 등에 관한 기록 : 5년 (전자상거래 등에서의 소비자 보호에 관한 법률)
- 대금결제 및 재화 등의 공급에 관한 기록 : 5년 (전자상거래 등에서의 소비자 보호에 관한 법률)
- 소비자의 불만 또는 분쟁처리에 관한 기록 : 3년 (전자상거래 등에서의 소비자 보호에 관한 법률)
- 본인확인에 관한 기록 보존 이유 : 정보통신 이용촉진 및 정보보호 등에 관한 법률 보존 기간 : 6개월
- 방문에 관한 기록 보존 이유 : 통신 비밀 보호법 보존 기간 : 3개월

수강신청하기

Back to Top