애플리케이션 프로그래밍 방식
웹 사이트를 설계할 때 가장 먼저 해야 할 일은 프로그램이 해야 할 일을 적당한 크기로 나눠서 모듈화 시키는 것 입니다.
이때 웹 사이트의 전체 프로그램 이나 모듈화된 단위 프로그램을 애플리케이션이라고 합니다.
다시 말하면 프로그램으로 코딩할 대상을 애플리케이션이라고 합니다.
장고에서는 애플리케이션의 개념을 더욱 구체화 시켜서 아래와 같이 정의 합니다.
- 웹 사이트에 대한 전체 프로그램을 프로젝트
- 모듈화 된 단위 프로그램을 애플리케이션
즉 애플리케이션 프로그램들이 모여서 프로젝트를 구성하는 개념입니다.
MTV 패턴
웹 프로그래밍 시 일반적으로 언급되는 MVC 패턴은 데이터(Model), 사용자 인터페이스(View), 데이터를 처리하는 로직(Controller)을 구분해서 한 요소가 다른 요소들에 영향을 주지 않도록 설계하는 방식을 의미합니다.
이렇게 각각을 분리하게 되면 개발을 진행할 때 UI 개발자는 데이터 관리나 애플리케이션 로직에 신경쓰지 않고 UI만 개발하거나 데이터 설계 개발자도 화면 디자인은 디자이너에게 맡기고 자신의 설계 및 개발 업무에만 집중하는 등
자신이 담당하는 파트에만 집중적으로 사용할 수 있다는 장점이 있습니다.
-2023.03.22 - [Django] - [Django]1. Django 웹 프레임워크의 특징
장고 프레임워크는 이전 장에서 설명한 대로 Controller와 Template을 결합해서 View라 부르며
MVT(Model - View - Template) 패턴이라고 합니다.
데이터 베이스에 저장할 데이터(Model),
사용자에게 보이는 UI(Template),
프로그램 로직이 동작하여 데이터를 가져오고 적절한 처리 결과를 템플릿에 전달하는 역활(View)
웹 클라이언트의 요청을 받아 장고에서 MVT 패턴에 맞게 처리하는 과정은 다음과 같습니다.
1. 클라이언트로부터 요청을 받으면 URL.conf를 이용해서 URL을 분석합니다.
2. URL 분석 결과를 바탕으로 해당 URL 처리를 담당할 뷰를 결정합니다.
3. 뷰는 자신의 로직을 실행하면서 만딜 데이터 베이스 처리가 필요하면 모델을 통해 처리하고 결과를 반환합니다.
4. 뷰는 자신의 로직 처리가 끝나면 템플릿을 사용해서 클라이언트에 전솔할 HTML 파일을 생성합니다.
5. 뷰는 최종 결과 HTML 파일을 클라이언트에게 보내 응답합니다.
Model - 데이터베이스 정의
모델이란 사용될 데이터에 대한 정의를 담고 있는 장고의 클래스입니다.
장고의 ORM(객체 관계 매핑) 기법을 바탕으로 애플리케이션에서 사용할 데이터베이스를 클래스로 매핑하여 코딩합니다. 즉 하나의 모델 클래스는 하나의 테이블에 매핑되고, 모델 클래스의 속성은 테이블의 컬럼에 매핑됩니다.
- ORM 관련 2023.03.22 - [Django] - [Django]1. Django 웹 프레임워크의 특징
매핑 : 키(key) 역할을 하는 데이터와 값(value) 역할을 하는 데이터를 짝 지어 저장하는 데이터 구조를 말한다
이렇게 ORM 모델을 사용하여 테이블을 클래스로 매핑하면 애플리케이션에서는 데이터베이스로의 엑세스를 SQL 없이도 클래스를 다루는 것처럼 할 수 있어 편리합니다.
또한 MySQL,PostgreSQL 등 데이터 베이스의 엔징이 변경하더라도 ORM 기법이 적용된 API는 변경할 필요 없으니 데이터 베이스 변경이 용의합니다.
가상환경 만들기 관련 https://wikidocs.net/72377
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 기초 (타입, 함수) (0) | 2024.09.05 |
---|---|
[Django] 2. 장고 개발 환경 만들기1 (가상 서버 만들기) (0) | 2023.03.22 |
[Django]1. Django 웹 프레임워크의 특징 (0) | 2023.03.22 |
[Django] 0. 파이썬 웹 표준 라이브러리 (0) | 2023.03.18 |