_won_
wonprogrammer
_won_
전체 방문자
오늘
어제
  • 분류 전체보기
    • woncoding
      • TIL
      • WIL
    • source Code
      • Python
      • Programmers
      • BAEKJOON

블로그 메뉴

  • 방명록

티스토리

Github · Wonprogrammer
hELLO · Designed By 정상우.
_won_

wonprogrammer

TIL | 1.16.월 [CS 기초지식 | Django 질의응답]
woncoding/TIL

TIL | 1.16.월 [CS 기초지식 | Django 질의응답]

2023. 1. 16. 20:12

Django 질의 응답

 

- Django 란?

  • 파이썬이라는 개발언어에서 웹을 개발하기 위해 만들어진 프레임워크이다.

[프레임워크 란?]

프레임워크는 프로그래밍언어에서 복잡한 기능을 수행하기 위해 만들어진 틀이며, 다양한 기능을 구현하기 위해 사용합니다

 

[프레임워크와 라이브러리 차이점?]

프레임워크와 라이브러리의 차이 라이브러리는 어플리케이션의 흐름을 사용자가 직접 제어하지만 프레임워크는 흐름을 제공해준다.

 


- 백엔드 스택 | Django

  • Django는 템플릿부터 데이터베이스까지 웹을 구현하는데 필요한 기본적인 기능을 전부 제공하는 프레임워크이고, 쉽고 빠르게 구현이 가능하다
  • Python 기반 웹프레임워크이기 때문에 파이썬에서 가능한 모든 동작들이 가능하며, 다양한 라이브러리가 있다.
  • 웹 사이트 로그인, 회원가입, 인증, CORS 등 라이브러리를 이용해 반복적으로 구현해야 하는 부분들은 이미 만들어져 있어 편리하게 개발이 가능하다.
  • 웹 개발시 프론트와 관련된 프레임워크(React, Vue, angular)를 사용하지 않고 Django Template Language를 이용하여 개발이 가능하다.
  • 데이터 베이스 테이블을 models.py에 클래스로 작성하기 때문에 DB 설계가 간단하다.
  • admin 기능을 제공하고 장고 ORM을 이용해 DB를 조작한다.

👉 위와 같은 기능들로 인해 개발시간이 크게 단축된다.

 

 

+) python의 장점

 

  • 사용이 쉽다.
  • 개발 속도가 빠르다(생산성이 높음.쉽고 간결한 문법).
  • 높은 확장성 및 이식성(다른 언어나 라이브러리에 쉽게 접근하고 연동 가능)

[특징]

  • 스크립트 언어 - 컴파일 과정 없이 인터프리터에 의해 실행 결과를 바로 확인하고 수정하며 코드를 작성할 수 있다.
  • 동적 타입 언어 - 변수의 자료형을 지정하지 않고 선언하는 것만으로도 값을 지정할 수 있다.
  • 플랫폼 독립적 언어 - 대부분의 운영체제에서 컴파일이 필요없이 어떤 환경에서도 활용 가능하다.

 

 

 

-  Django vs Flask

상대적으로 Flask는 접근성이 좋고 빠르게 구현할 수 있지만, 웹에 필요한 다양한 기능을 전부 구현하기 위해서는 많은 라이브러리를 가져와야 하기 때문에 숙련도를 요구하게 됩니다.

 

 


 

- Django의 프로세스

  1. 클라이언트로 부터 요청(Request)를 받으면 URLconf 모듈을 이용하여 URL을 분석한다.
  2. URL 분석 결과를 통해 해당 URL에 매칭되는 View를 실행한다.
  3. View는 자신의 로직을 실행하고, 데이터베이스 처리가 필요하면 Model을 통해 처리하고 그결과를 반환 받는다.
  4. View는 자신의 로직 처리가 끝나면 Template을 사용하여 클라이언트에 전송할 HTML 파일을 생성한다.
  5. View는 최종 결과로 HTML 파일을 클라이언트에게 보내 응답(Response)한다.

 


 

- Django | MTV 패턴

 

  • M(Model) - 데이터베이스의 모델 
  • T(Template) - 사용자에게 보여지는 부분 
  • V(View) - 실질적으로 프로그램이 동작하는 부분 request에 대해 처리하고 response해주는 역할

👉 MTV 패턴의 장점은 자신이 하려는 작업이 무엇인지 파악하면 어느 부분을 작업해야하는지 명확히 알 수 있다. 

 

[이 외의 패턴]

  • MVC 패턴 : Model, View Controller로 이루어진 패턴. 리액트, 플라스크가 사용
  • MVP 패턴 : Model, Presenter, View로 이루어진 패턴, MVC 패턴보다 더 강한 결합을 지닌 패턴
  • MVVM 패턴 : Model, View Model, View 로 이루어진 패턴, 뷰모델은 뷰를 더 추상화한 계층이고, MVC 패턴과는 다르게 커맨드와 데이터 바인딩을 가지는 것이 특징.

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'woncoding > TIL' 카테고리의 다른 글

TIL | 1.18.수 [CS 기초지식 | 트랜잭션]  (0) 2023.01.25
TIL | 1.17.화 [CS 기초지식 | Index]  (0) 2023.01.25
TIL | 1.6.금 [CS 기초지식 | 우선순위 큐]  (0) 2023.01.07
TIL | 1.5.목 [CS 기초지식 | 해시 테이블]  (0) 2023.01.05
TIL | 1.4.수 [CS 기초지식 | 배열 / 링크드리스트]  (0) 2023.01.05
    'woncoding/TIL' 카테고리의 다른 글
    • TIL | 1.18.수 [CS 기초지식 | 트랜잭션]
    • TIL | 1.17.화 [CS 기초지식 | Index]
    • TIL | 1.6.금 [CS 기초지식 | 우선순위 큐]
    • TIL | 1.5.목 [CS 기초지식 | 해시 테이블]
    _won_
    _won_
    Coding Practice blog

    티스토리툴바