썸네일 [Django] MVT 아키텍처 장고는 MVT아키텍처를 가지고 있다. MVT는 Model View Template로 이루어진 아키택처 패턴인데, 이 구성요소를 하나씩 살펴보자. Model 모델은 DB 구조를 정의하고 DB와의 상호작용을 캡슐화한다. Django는 ORM(Object-Relational Mapping)을 통해 데이터베이스 테이블에 대응되며 이를 통해 따로 SQL을 작성하지 않고 DB작업을 수행할 수 있다. 각 class에 선언된 클래스변수는 테이블의 컬럼에 해당한다. View view는 로직을 담당한다. HTTP로 넘겨진 요청에 따라 처리를 해주는 urls.py에서는 view의 함수를 호출한다. 그러면 view의 함수에서는 DB에 있는 data 중 필요한 것들을 조회하기 위해 model을 호출합니다. 그렇게 해서 얻은 데..
썸네일 [Django] migration 마이그레이션 마이그레이션은 모델의 변경사항을 관리하는 방법이다. 장고에서 모델은 class로 정의되며 이 class는 Django ORM(Object-Relational Mapping)을 통해 Database table에 매핑된다. 따라서 우리 모델의 데이터필드 type이 변한다던가 모델의 데이터 필드가 한 개 추가된다던가와 같은 모델의 변화가 있을 때마다 데이터베이스 스키마에도 해당 변화를 반영해야 하는데, 이러한 역할을 하는 것이 마이그레이션이다. 따라서 마이그레이션을 데이터베이스와 연결되는 모델의 변경사항에 따라 버전을 관리해주는 것이라 생각하면 된다. Django에서 Migration을 하는 방법 python manage.py makemigrations 이렇게 하면 migrations 하위 폴더에..
썸네일 [Django] Web Server Gateway Interface(wsgi) 프로젝트 앱 디렉토리에 있는 WSGI는 WebServer Gateway Interface의 약자로 파이썬에서 웹 통신을 하기 위한 일종의 약속이다. wsgi는 웹 서버와 웹 어플리케이션 서버(여기서는 장고)를 연결해 주는 역할을 한다. * 위스기라고 부른다. 웹 서버(Web Server)와 웹 어플리케이션 서버(Web Application Server)는 무슨 차이가 있을까? 웹 서버는 HTTP를 통해 클라이언트에게 요청을 받고, 그 요청에 따라 HTML 문서를 제공한다. HTML 문서를 파싱 하면서 각 태그에 따른 image, css, javascript와 같은 외부 리소스에 대한 추가적인 HTTP 요청을 한다. * HTML과 외부 리소스를 한번에 요청하지 않고 별도로 요청하는 이유는 병렬 다운로드로 ..