Djano App
: 내가 생각하는 하나의 기능 덩어리
하나의 프로젝트는 여러 개의 앱으로 구성될 수 있음.
프로젝트와 앱
프로젝트(Project) : 어플리케이션의 집합체
앱(App) : 각각의 기능 단위 모듈
App 생성하기
python manage.py startapp <앱 이름>
ex) python manage.py startapp articles
앱이름은 복수형으로 짓는 것을 권장
App 등록하기
[setting.py]
INSTALLED_APPS 에 생성한 앱이름을 등록하면 됨.
Trailing commas
마지막에 콤마 까먹지 않도록 주의!
App 살펴보기
admin.py | 관리자용 페이지 관련 설정 |
apps.py | 앱 관련 정보 설정 |
models.py | DB관련 데이터 정의 파일 |
tests.py | 테스트 관련 파일 |
views.py | 요청을 처리하고 처리한 결과를 반환하는 파일 |
클라이언트 - 서버 구조
클라이언트(Client)
- 인터넷에 연결된 장치 특히, 웹 브라우저를 말합니다.
- → 서비스를 요청하는 주체 (사용자)
서버(Server)
- 자원(Resource)을 가지고 있는 컴퓨터입니다.
- 요청을 처리하고 응답하는 주체입니다.
- 구글.html 파일을 요청함
- 구글 서버가 요청을 받아서 구글.html 파일을 우리 컴퓨터에게 전달함
- 우리 컴퓨터의 웹 브라우저가 구글.html 파일을 해석해서 이쁘게 보여줌
→ 구글 서버 (Server) - 웹 브라우저 (Client)
요청과 응답
웹 브라우저란?
- 인터넷에서 내가 원하는 페이지를 찾아서 보여주고 하이퍼링크를 통해 다른 페이지로이동할 수 있도록 도와주는 프로그램입니다.
- HTML 파일을 우리가 보는 이쁜 화면으로 바꿔주는 프로그램입니다. (렌더링, Rendering)
웹 페이지(Web Page)란?
- 우리가 보는 모든 화면 하나하나가 바로 웹 페이지입니다.
정적 웹페이지와 동적 웹페이지
정적 웹페이지(Static Web Page)
- 작성한 상태를 그대로 제공하는 웹 페이지입니다.
- 모든 상황에서 동일한 내용을 전달합니다.
- 우리가 작성한 HTML을 말합니다.
동적 웹페이지(Dynamic Web Page)
- 요청에 따라 보여주는 모습이 달라지는(수정되어) 웹 페이지입니다.
- 포털사이트에 A유저가 로그인했을 때와 B 유저가 로그인했을 때의 화면은 다릅니다. (받은 메일의 갯수, 가입한 카페…)
- 요청을 받아서 적절한 응답을 만들어주는 주체가 필요합니다.
- ⇒ Django !
프론트엔드와 백엔드
🖥️ 백엔드 개발
- 보이지 않는 서버 측의 작업을 담당합니다.
- 데이터베이스와의 상호작용, 비즈니스 로직 처리, 보안, 사용자 인증 등을 처리합니다.
- 사용자가 요청한 데이터를 처리하고 그에 따른 결과를 생성합니다.
- 주로 서버 사이드 언어 및 프레임워크를 사용하여 개발되며, 데이터베이스와의 통신을 담당합니다.
- 주요 목표는 안정성, 보안성, 성능을 유지하면서 프론트엔드와의 원활한 데이터 교환을 지원하는 것입니다.
🖥️ 프론트엔드 개발
- 디자이너가 만든 웹 페이지를 기반으로 더 동적이고 상호작용적인 웹 애플리케이션을 개발합니다.
- 주로 JavaScript 프레임워크나 라이브러리를 사용하여 프론트엔드 기능을 개발하고, 데이터 처리와 상태 관리를 담당합니다.
- 백엔드와의 통신을 위한 API 요청 및 응답 처리, 데이터의 가공 및 표시, 사용자 입력에 대한 반응 등을 담당합니다.
- 주로 웹 애플리케이션의 비즈니스 로직과 상호작용적인 요소를 다루며, UI 컴포넌트의 상태 관리와 라우팅 등을 수행합니다.
- 프론트엔드 개발자는 보다 복잡하고 동적인 웹 애플리케이션을 만들기 위해 퍼블리셔와 협업하며, 웹 애플리케이션의 전체적인 아키텍처와 성능을 고려합니다.
요청과 응답
📚 요청(Request)
- 클라이언트(웹 브라우저, 모바일 앱 등)가 서버에게 특정한 작업을 요청합니다.
- 클라이언트의 정보, 요청의 형식, 인증 정보 등을 포함합니다.
- 데이터를 포함하며, JSON이나 HTML 폼 데이터와 같은 형식으로 전달합니다.
- 클라이언트가 요청하는 것이 무엇인지 URL을 보면 파악할 수 있습니다.
📚 응답(Response)
- 서버가 클라이언트의 요청을 받고 처리한 후에 클라이언트에게 결과를 전송합니다.
- 결과에는 여러 가지 부가적인 정보를 포함합니다.
- HTML, JSON, XML 등의 형식일 수 있으며, 클라이언트가 요청한 작업에 따라 다양한 형태로 전송합니다.
'Django' 카테고리의 다른 글
장고 폼(Form) / 모델폼(ModelForm) (1) | 2024.09.12 |
---|---|
장고 심화 (0) | 2024.09.02 |
Django_template (0) | 2024.08.27 |
Django_MTV Pattern (0) | 2024.08.23 |
장고_개발 환경 구성 및, 장고 설치 (0) | 2024.08.20 |