Django
-
Django - 03 Model 코딩Django 2021. 3. 31. 17:02
모델 작업은 데이터베이스에 테이블을 생성하는 작업이다. 다음 순서대로 진행한다. >notepad models.py // 테이블을 정의함 >notepad admins.py // 정의된 테이블이 Admin 화면에 보이게 함 >python manage.py makemigrations // 데이터베이스에 변경이 필요한 사항을 추출함 >python manage.py migrate // 데이터베이서에 변경사항을 반영함 >python manage.py runserver // 현재까지 작업을 개발용 웹 서버로 확인함 테이블 정의 앞에서 설계한 것처럼, polls 애플리케이션은 Question과 Choice 두 개의 테이블이 필요하다. 테이블은 models.py 파일에 정의한다. 장고에서는 테이블을 하나의 클래스, 테이..
-
Django - 02 애플리케이션 설계 / 프로젝트 뼈대 만들기Django 2021. 3. 29. 23:01
애플리케이션 설계하기 프로젝트란 전체 프로그램을 의미하며, 프로젝트를 몇 개의 기능 그룹(프로그램)으로 나누었을 때, 하위 프로그램을 애플리케이션이라고 한다. 이런 개념으로 프로젝트 디렉터리와 애플리케이션 디렉터리를 구분하고, 코딩하는 파일도 프로젝트 파일인지 애플리케이션 파일인지 구분해서 저장해야 한다. 이런 개념에서 중요한 점은 하나의 애플리케이션이 여러 프로젝트에 포함될 수 있기 때문에, 애플리케이션을 한 번만 개발하고, 이를 다른 프로젝트에 재사용해서 개발의 생산성을 높일 수 있다. 또한 애플리케이션 단위로 모아서 프로젝트를 만들고, 프로젝트를 모아서 더 큰 프로젝트를 만드는 방식으로, 계층적인 개발이 가능하다는 장점이 있다. 다음 그림은 설문에 해당하는 질문을 보여준 후 질문에 포함되어 있는 답..
-
Django - 01 애플리케이션 개발 방식Django 2021. 3. 29. 20:15
웹 사이트를 설계할 때 가장 먼저 해야 할 일은 프로그램이 해야 할 일을 나누어서 모듈화 하는 것이다. 웹 사이트의 전체 프로그램 또는 모듈화된 단위 프로그램을 애플리케이션이라고 한다. 즉, 코딩할 대상을 애플리케이션이라고 부른다. 장고에서는 애플리케이션의 개념을 웹 서버 개발 측면에서 좀 더 구체화 한다. 웹 사이트에 대한 전체 프로그램을 프로젝트라 하고, 모듈화된 단위 프로그램을 애플리케이션이라 부른다. 즉, 애플리케이션 프로그램들이 모여서 프로젝트를 개발하는 개념이다. MVT 패턴 MVC(Model-View-Controller)패턴은 데이터, 사용자 인터페이스, 데이터를 처리하는 로직을 구분해서 한 요소가 다른 요소들에 영향을 주지 않도록 설계하는 방식이다. 이런 방식으로 개발하면 디자이너는 데이터..
-
Django - 장고의 특징Django 2021. 3. 29. 20:07
MVC 패턴 기반 MVT 장고는 MVC(Model-View-Controller)를 기반으로 한 프레임워크다. Model은 데이터베이스에 액세스하는 컴포넌트이고, View는 데이터를 가져오고 변형하는 컴포넌트인 반면에 Template은 데이터를 사용자에게 보여주는 컴포넌트다. 그래서 장고를 흔히 MVT(Model-View-Template) 프레임워크라고 부른다. (용어는 다르지만 개념은 동일하다.) 객체 관계 매핑 객체 관계 매핑(ORM, Object-Relational-Mapping)은 데이터베이스 시스템과 데이터 모델 클래스를 연결시키는 다리 역할을 한다. ORM 기능 덕분에 SQL 문장을 사용하지 않고도 데이터베이스 테이블을 조작할 수 있다. 자동으로 구성되는 관리자 화면 웹 서버의 콘텐츠(데이터베이..
-
Django - 웹 서버Django 2021. 3. 29. 14:42
웹 클라이언트의 요청을 받아서 처리하는 서버를 웹 서버와 웹 애플리케이션 서버로 분류할 수 있다. CGI 방식의 단점 CGI는 프로그래밍 언어나 스크립트가 아닌 규격을 의미한다. 규격을 준수한다면 언어에 상관없이 구현이 가능하다. 전통적인 방식은 웹서버가 Python, C++등으로 만들어진 CGI 프로그램을 직접 호출하여 개별 프로세스를 생성하는 방식이다. CGI 방식은 각각의 클라이언트 요청에 대하여 독립적인 프로세스가 생성된다. 프로세스에 비례해 메모리 요구량도 커져서 시스템에 많은 부하를 줄 수 있다. 이런 이유로 현재는 거의 사용하지 않는다. CGI 방식의 대안 기술 스크립트 엔진(인터프리터)을 웹 서버에 내장시켜 오버헤드를 줄이는 방식이 있다. 파이썬의 경우 mod_wsgi 모듈을 사용하고 있다..