장고는 2005년부터 시작되었다. python의 오픈소스 웹 프레임워크다. (풀스택)
D는 묵음이라서 드장고라고 안읽어도 된다.
데이터베이스랑 연동이 잘되고, 웹개발시 필요한 대부분의 기능들이 모두 내장되어 있어 빠르게 개발하기 좋다.
또 보안면에서 아주 좋다. 여러 보안관리를 자동으로 제공한다. 예를들면 장고는 SECURE_SSL_REDIRECT 설정을 제공하는데, 이를통해 모든 HTTP 요청을 HTTPS로 리다이렉트하도록 강제할 수 있다. 이렇게 하면 데이터가 항상 안전하게 전송되도록 해준다.
장점이 있지만 단점도 있다. 대표적으로..
장고는 모놀리식 구조를 따른다. Monolithic / 이건 무슨 말이냐면 하나로 뭉쳐있다는거다.
전체 기능들이 통합되어 있는 단일 구조이기 때문에 개발-테스트-배포가 상대적으로 간단하다는 장점이 있다.
근데 서비스의 크기가 엄청 커지다보면 독립적으로 관리하는 것이 좋아서 Micro Service Architecture가 더 선호되기도 한다.
그래서 결론적으로 장고는 보안이 중요한 project, 관리자 인터페이스가 필요한 project, 효율적 database 관리가 필요한 project에 아주 유용하다.
장고로 만든 서비스
- 인스타
- Pinterest (부분적으로 사용)
- 숨은 고수
- 번개장터
- 헤이딜러(내 차 팔기 앱)
- 피플펀드
- 토스(사내 서비스 개발에 사용)
- 로앤굿
어떤 구조로 되어있나 ?
MVT 패턴.
Model 모델
장고의 모델은 데이터 구조를 정의한다.
오늘 짜놓은 model.py 내용인데, 보면 class안에 데이터의 유형들을 적어둔 것을 볼 수 있다.
클래스 안의 하나하나 변수가 데이터베이스의 테이블이 된다. DB의 테이블을 PYTHON 코드로 만든다.
장고는 이렇게 파이썬 코드로 SQL 쿼리 없이도 CRUD가 가능하다. 암튼 모델이 CRUD 역할을 한다.
View 뷰
뷰는 사용자에게 보이는부분, 사용자 Interface를 담당한다. 사용자의 요청에 따라 model을 통해 데이터를 처리, 그 결과를 template에 전달해준다.
View > Template
Template 템플릿
View에서 처리된 데이터를 사용자에게 보여주는 역할을 한다.
다음 글에서는 본격적으로 장고 실행에 들어가보자 !