Django
[image]
공식 홈페이지
1. 개요
Django는 2005년부터 시작된 Python의 오픈 소스 웹 프레임워크이자 풀 스택 프레임워크이다.
Django의 발음 기호는 [ˈdʒæŋɡoʊ]로 쟁고우 정도로 읽으면 된다. 참고로 D는 묵음이다. 대한민국에서는 장고로 읽는데, 동명의 서부극 영화 때문에 종종 한글 표기를 '쟝고'로 쓰기도 한다.
Django 소프트웨어 재단은 소셜 댓글 서비스 디스커스(Disqus)를 만든 곳이기도 하다. Python을 이용해 제작한다.
Django는 Python 기반 웹 프레임워크 중에 가장 널리 퍼져있다. 일반적으로 파이썬을 웹 서비스에 쓴다고 하면 Django 또는 Flask를 쓴다고 생각하면 된다. 둘의 차이는 풀 스택 프레임워크(Django)냐 아니냐 정도.
MVT[1] 패턴에서 Model의 경우 데이터베이스와 연동이 편하게 만들어져 있다.
기본적으로 Model에 해당하는 DBMS는 SQLite를 사용하게 되어있으며, Django Admin 기능을 통해 쉽게 조회/편집이 가능하다.[2]
2. 특징
강력한 풀스택 웹 프레임워크답게 기본적으로 제공하는 것들이 많다.
3. 역사
장고는 2003~2004년에 로렌스 저널-월드(Lawrence Journal-World)라는 신문사의 인턴 웹 프로그래머였던 에이드리안 홀로바티(Adrian Holovaty)와 사이먼 윌리슨(Simon Willison)이 파이썬을 이용해 애플리케이션을 만들기 시작하면서 처음 개발되었다.
2003년 로렌스 신문사의 웹사이트는 PHP 기반으로 쓰여졌었는데, 홀로바티와 윌리슨은 당시 PHP 버전은 객체지향을 지원하지 않아서 규모가 큰 웹사이트에 적합하지 않다고 생각했고 평소에 관심을 가지고 있던 파이썬으로 웹 개발을 하기로 결심했다. 하지만 규모가 큰 웹 개발에 적합한 파이썬 도구가 없다는 것을 깨닫고 새롭게 장고를 개발하게 된 것이다.
개발을 처음 할 때 사실 장고를 웹 프레임워크라고 생각한 적은 없었고, 그냥 CMS를 개발하는 것이라고 생각했다고 한다. 개발자가 개발 당시의 기억들을 풀어놓은 글을 읽고 싶다면 여기(영어)에 사이먼 윌리슨 본인이 직접 쓴 글이 있다. (공동 개발자인 에이드리안도 따봉을 눌렀다!) 장고라는 이름은 홀로바티가 좋아하던 기타리스트 장고 라인하르트에서 따온 것이라고 한다.
또한 장고는 사실 오직 로렌스 웹사이트를 구동하기 위해 개발된 것이었지만, 홀로바티와 윌리슨이 로렌스의 오너 기업인 더 월드 컴퍼니(The World Company)를 설득하여 오픈 소스로 2005년 7월에 BSD 라이선스로 공개하게 되었다. 윌리슨은 더 월드 컴퍼니도 다른 오픈 소스 프로젝트를 많이 사용했기 때문에 쉽게 설득할 수 있었다고 얘기했다.
4. 사용 중인 곳
- 인스타그램: 세계에서 제일 큰 규모의 장고 웹사이트이다. 그래서 그런지 장고 소프트웨어 재단에 매년 3만불 이상을 기부하고 있고 2개의 플래티넘 법인 회원 중 하나이다. 다른 하나는 IntelliJ IDEA를 만든 JetBrains.
- 8퍼센트: P2P 대출 사이트. 프런트엔드를 IUEditor로 개발하였다.
- 스마트스터디: 핑크퐁 북스토어 등이 Django로 개발되었다.
- 피알앤디컴퍼니: 내차팔기앱 헤이딜러를 운영하고 있다.
- 위시켓: IT 아웃소싱 중개 서비스.
- 번개장터: C2C 플랫폼. Django 와 Flask를 사용하고 있다.
- 숨은고수: O2O 고수 매칭 플랫폼. Django와 Vue.js를 사용했다.
- 피플펀드: P2P 금융 플랫폼, Django를 사용하고 있다.
- 마이뮤직테이스트: 콘서트 메이킹 플랫폼, Django를 사용하여 global service를 하고 있다.
- Laftel: 애니메이션 스트리밍 서비스, Django를 사용하고 있다.
- 딜리버리히어로코리아: 요기요, 배달통 서비스를 하고 있는 푸드테크 기업. Django를 사용하고 있다.
- SendBird: 채팅 API를 제작하는 B2B 기업. Django를 사용하고 있다.
- 투어라이브: 오디오 투어 서비스를 하고 있는 테크 트레블 기업. Django를 사용하고 있다.
- 화해(버드뷰): No.1 모바일 뷰티 플랫폼. Django와 React를 사용하고 있다.