[T.I.L]Django Introduction

재운·2021년 3월 28일
0
post-thumbnail
post-custom-banner

About Django

📌 장고(Django)란?

파이썬 기반의 오픈소스 웹 애플리케이션 프레임워크(Open Source Web Application Framework)

라고 사전적 의미가 나와있다.

여기서,

👉 오픈소스: 코드를 온라인상으로 언제든 참조할 수 있다.
👉 프레임워크: 개발할 수 있도록 만들어 놓은 작업장

한마디로 웹 어플리케이션을 만들때 맨땅에 헤딩하지 않고 개발에만 집중할 수 있도록 만들어놓은 작업장이다.

Framework vs Library

그렇다면 프레임워크와 라이브러리의 차이점은 무엇일까?

어플리케이션의 Flow(흐름)를 누가 쥐고 있느냐에 달려 있다.

프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그 안에서 필요한 코드를 짜 넣는 거라면
라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이라고 할 수 있다.

Workflow of Django

일반적으로 장고는 MVT(Model-View-Template) pattern 으로 작동하게 된다.
위의 그림을 풀어 설명하자면,

    1. 장고 서버로 들어온 이벤트에 대해 URL dispatcher가 URL을 분석해서, 적합한 VIEW로 이 요청을 보낸다.
    1. VIEW는 사용자 요청을 받아 데이터 베이스 어디에 접근해서 어떤 데이터를 가공할것인지 MODEL에게 알려준다.
    1. MODEL은 DB와 커넥션을 해서 필요한 DB 연산을 처리한다.DB가 다시 모델로 결과값을 보내주면 MODEL이 이것을 뷰로 전달한다. 여기서 MODEL은 ORM사용하여 DB와 통신한다.
    1. VIEW는 우리에게 보내줄 데이터를 다시 TEMPLATE에게 전달해준다.
    1. TEMPLATE는 .js나 .html과 같은 페이지를 만들어서 웹브라우저에게 넘겨준다.
      👉 여기서 Template 부분은 프론트로 대체되었고, 백엔드는 Views,Model 쪽을 담당하게된다.

ORM(Object Relation Mapping)이란?

객체(Object)와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.

객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하는데, 객체 모델과 관계형 모델 간에 불일치가 존재한다. ORM은 마치 통역사같은 역할로 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.

profile
Life is memory
post-custom-banner

0개의 댓글