장고 복습&정리

수현·2024년 2월 13일

WEB

목록 보기
2/3

장고(Django)에 대한 요약

1. 정의 및 용도

  • 정의: Django는 파이썬으로 작성된 웹 프레임워크이다.
  • 용도: 웹사이트 개발을 위해 일반적으로 필요한 기능들을 제공한다. 프레임워크는 반복적으로 사용되는 특정 기술을 모아 놓은 도구 상자와 같은 기능을 한다.

2. 장고의 핵심 기능

  • 데이터 베이스 관리: 데이터베이스 설계, 조작, 관리를 용이하게 한다.
  • 강력한 관리자 기능: 개발자가 아니어도 웹사이트의 데이터를 쉽게 관리할 수 있게 하는 사용자 친화적인 인터페이스를 제공한다.
  • 보안: XSS, CSRF 등 웹 애플리케이션에서 흔히 발생할 수 있는 보안 취약점에 대한 기본적인 방어 기능을 내장하고 있다.

웹 페이지 요청 및 응답 과정 요약

1. 웹 페이지 요청 및 응답의 기본

  • 사용자가 브라우저를 통해 웹 페이지(예: python.org)에 대한 요청을 보낸다.
  • 인터넷을 통해 해당 요청은 python.org를 호스팅하는 서버로 전송된다.
  • 서버는 요청을 처리하고, 요청한 페이지의 내용을 담은 응답을 사용자에게 되돌려 보낸다.
  • 브라우저는 서버로부터 받은 응답을 해석하여 사용자에게 웹 페이지를 표시한다.

2. 요청 처리 과정

  • 기본 페이지 요청: URL에 추가 경로가 없는 경우(예: python.org), 서버는 기본 홈페이지를 반환한다.
  • 특정 페이지 요청: URL에 특정 경로가 포함된 경우(예: python.org/downloads), 서버는 해당 경로에 맞는 특정 페이지를 반환한다.

3. Django를 사용한 요청 처리

  • URL 수신: Django는 URL을 통해 사용자의 요청을 수신한다.
  • 요청 전달: 수신된 요청은 처리할 수 있는 함수(view)로 전달된다.
  • 처리 및 응답 생성: View는 요청을 처리하고, 적절한 응답을 생성한다.
  • 응답 전송: 생성된 응답은 요청자의 브라우저로 전송되어, 브라우저는 이를 해석하여 사용자에게 결과를 보여준다.

새 프로젝트 생성 및 가상 환경 설정, 터미널 사용법에 대한 요약

1. 새 프로젝트 생성 및 가상 환경 설정

  • 가상 환경 설치: pip install virtualenv 명령어를 통해 virtualenv를 설치한다. 이 과정은 시스템에 virtualenv가 없을 경우 한 번만 수행하면 된다.
  • 가상 환경 생성: virtualenv venv 명령어를 사용하여 'venv'라는 이름의 가상 환경 폴더를 생성한다. 여기서 'venv'는 가상 환경의 폴더 이름이며, 원하는 이름으로 변경 가능하다.

2. 터미널 사용법

  • pwd (Print Working Directory): 현재 작업 중인 디렉터리의 절대 경로를 출력한다.
  • cd [디렉터리명] (Change Directory): 현재 위치에서 지정된 디렉터리로 이동한다. 예를 들어, cd Documents는 Documents 디렉터리로 이동한다.
  • cd ~: 사용자의 홈 디렉터리로 이동한다.
  • ls -al: 현재 위치의 모든 디렉터리 및 파일을 상세 정보와 함께 출력한다. 여기서 -a 옵션은 숨겨진 파일을 포함하여 모두 보여주고, -l 옵션은 파일의 상세 정보를 리스트 형태로 보여준다.
  • mkdir [디렉터리명] (Make Directory): 새 디렉터리를 생성한다. 예를 들어, mkdir NewProject는 현재 위치에 'NewProject'라는 이름의 디렉터리를 생성한다.

django의 디자인 패턴

소프트웨어 디자인 패턴(software design pattern)은 소프트 웨어를 개발할 때 공통적으로 발생하는 문제들을 해결하기 위한, 재사용 가능한 해결책이다. 실제 코드를 말하는 것은 아니며 코드를 작성하기 위한 일종의 서식이다.

MTV(Model-Template-View) 패턴은 Django 웹 프레임워크에서 사용되는 디자인 패턴으로, 코드의 역할에 따라 분리하여 프로젝트의 구조를 관리한다. 이 패턴은 Django 특유의 접근 방식으로, 일반적인 MVC(Model-View-Controller) 패턴과 유사하나, Django에서는 View의 역할이 Controller와 비슷하며, Template이 View의 역할을 한다는 점에서 차이가 있다.

1. Model

  • 역할: 데이터베이스와의 인터페이스 역할을 하며, 데이터의 구조(스키마)를 정의한다.
  • 특징: 각 모델은 데이터베이스의 테이블에 해당하며, 필드와 동작을 포함한다.
  • 파일명: models.py
  • 예시: 사용자 모델을 정의하여 사용자의 이름, 이메일 등의 정보를 데이터베이스에 저장할 수 있다.

2. Template

  • 역할: 사용자가 웹 브라우저를 통해 볼 수 있는 웹 페이지의 구조와 레이아웃을 정의한다.
  • 특징: HTML을 기반으로 하며, Django 템플릿 태그와 필터를 사용하여 동적 데이터를 표현한다.
  • 위치: templates 디렉터리
  • 예시: 사용자 목록 페이지에서, 데이터베이스에서 가져온 사용자 정보를 표현하기 위해 반복문과 조건문을 사용한 템플릿을 작성할 수 있다.

3. View

  • 역할: 웹 애플리케이션의 비즈니스 로직을 처리하며, 사용자의 요청에 따라 데이터를 모델로부터 가져오거나 저장하고, 그 결과를 템플릿을 통해 사용자에게 전달한다.
  • 특징: 파이썬의 함수나 클래스를 사용하여 정의되며, 요청을 받아 처리한 후 응답을 반환한다.
  • 파일명: views.py
  • 예시: 사용자가 웹 사이트의 특정 페이지를 요청하면, 해당 요청을 처리하기 위해 관련 데이터를 데이터베이스에서 조회하고, 그 결과를 템플릿으로 전달하여 사용자에게 최종 페이지를 보여주는 로직을 구현할 수 있다.

MTV 패턴을 사용함으로써 Django 개발자는 코드를 체계적으로 조직하고, 유지보수를 용이하게 할 수 있다. 예를 들어, Streamlit과 같은 프레임워크에서 MTV 패턴을 적용하지 않아 코드가 한 파일에 중첩되어 유지보수와 협업이 어려웠던 경우, MTV 또는 MVC 패턴처럼 코드를 명확히 분할하여 작성함으로써 이러한 문제를 해결할 수 있다.

profile
데이터 분석 공부중:)

0개의 댓글