장고 마스터하기 - 1장

장고 마스터하기 책의 몰랐던 부분이나 어려운 부분을 정리.

장고의 역사

탄생 배경

초기에 웹 개발자들은 수작업으로 모든 웹페이지를 작성했다. 웹 사이트를 수정하기 위해 HTML을 직접 수정했다. 웹 사이트가 성장할수록 웹 페이지 접근이 까다롭고, 시간이 많이 소요되며, 처리가 불가능할 정도가 됐다.

NCSA(최초의 그래픽 웹 브라우저인 모자이크를 개발한 연구소)의 그룹이 웹 서버가 동적으로 HTML을 생성할 수 있는 외부 프로그램을 생성하게해 이 문제를 해결했다. 이 프로토콜을 CGI라 불렀다.

CGI의 개발이 1세대 동적 웹 사이트를 선도했지만 자체적으로 문제를 안고있다. 많은 반복적인 상용구 코드를 포함해야 하고, 코드 재사용을 어렵게 만들고, 처음 보는 개발자가 작성하거나 이해하기 어려울 수 있다.

PHP는 이러한 많은 문제를 해결했고, 현재까지도 동적 웹사이트를 만드는 데 많이 사용되는 도구이며, 비슷한 수많은 언어들이 PHP의 설계를 따른다.

하지만 PHP에도 문제가 있다. 사용하기가 매우 쉽고 반복적이며 엉성한 코드가 만들어진다. 그리고 보안 취약성을 보호하는 기능이 없다.

이러한 문제가 현재의 3세대 웹 개발 프레임워크 개발에 기여했다. 장고는 이 문제들을 해결하기 위해 개발됐다.

역사

2003년 가을 로렌스 저널-월드 라는 신문사에서 에이드리안 홀로바티(Adrian Holovaty)사이먼 윌리슨(Simon Willison) 이 파이썬을 이용해 애플리케이션을 만들기 시작하면서 처음 개발되었다. 여러 지역 뉴스 웹 사이트의 제작 및 유지보수를 담당하는 월드 온라인 팀은 기사 마감 시한을 맞춰야 하기 때문에, 관리자는 웹 사이트에 여러 기능들을 추가해야 하고, 전체 프로그램은 며칠 또는 한 시간만에 빠르게 구축해야 했다. 그래서 사이먼과 에이드리안은 시간을 절약할 수 있는 웹 개발 프레임워크 개발이 필요했다.

2005년에 대부분의 월드 온라인 웹 사이트를 효율적으로 강화하는 시점까지 개발한 후 현재는 제이콥 케플란 모스가 있는 이 팀에서 이 프레임워크를 오픈소스로 공개하기로 했다. 이들은 재즈 기타리스트인 장고 레인하트의 이름을 따서 장고라고 명명했다.

특징

이런 역사를 가지고 있는 장고이기에 2가지의 주요한 특징이 있다.

  1. 장고의 스윗스팟(sweet spot) : 웹의 뉴스를 알리는 환경하에 탄생했기 때문에 관리 웹 사이트의 몇가지 특징을 제공한다. 특히 콘텐츠 웹 사이트에 적합한 여러 기능을 제공한다. 장고는 이런 종류의 사이트를 개발하는데 특히 유용하다. 하지만 동적인 웹사이트를 구축하는데 비효율적이진 않다.

  2. 오픈 소스 커뮤니티의 문화 형성 : 학업이나 상업용 제품이 아닌 실질적 코드에서 추출되어 장고 개발자가 직면하고 직면하게될 웹 개발 문제를 해결하는 데 중점을 두고 있다. 결과적으로 장고 자체는 거의 매일 개선되고 있다.

장고를 사용하면 아주 짧은 시간에 깊고 역동적이며 흥미로운 웹 사이트를 구축할 수 있다. 장고는 반복적인 데이터로 인한 고통을 덜어주며 재미있고 흥미로운 부분에 집중할 수 있도록 고안됐다.

김땡땡's blog

김땡땡's blog

김땡땡