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)을 가지고 있는 컴퓨터입니다.
  • 요청을 처리하고 응답하는 주체입니다.

 

  1. 구글.html 파일을 요청함
  2. 구글 서버가 요청을 받아서 구글.html 파일을 우리 컴퓨터에게 전달함
  3. 우리 컴퓨터의 웹 브라우저가 구글.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

+ Recent posts