본문 바로가기

웹/Django

(Django) 1. Django Framework

Django

  • 파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크이다.
  • MTV (Model, Template, View) 패턴으로 이루어진다.
  • ORM(Object Relational Mapper)을 기반으로 한다.
    • 프로젝트의 객체들을 데이터베이스 테이블과 매핑을 도와주어 복잡한 데이터 기반 웹 사이트 개발이 쉬어질 수 있음

MTV (Model, Template, View)

  • Model
    • 애플리케이션에서 사용될 데이터에 대한 정의를 담고 있는 클래스
    • Django는 ORM 기법을 이용하여 데이터베이스를 클래스로 매핑하여 코딩한다.
    • 하나의 모델 클래스는 하나의 테이블에 매핑되고, 모델 클래스의 변수는 테이블의 컬럼에 매핑된다.
  • Template
    • HTML로 구현되며 화면에 보여주기 위한 프리젠테이션 로직
    • View에게 받은 데이터를 템플릿에 동적으로 적용
  • View
    • Model과 View를 중개하며 비즈니스 로직을 처리한다.

ORM (Object Relational Mapper)

객체와 관계형 데이터베이스를 연결해주는 역할을 한다.기존에는 데이터베이스에 접근하려면 SQL를 작성해 데이터를 요청해야 했지만 ORM에서는 데이터베이스 대신 객체를 사용해 데이터를 관리하고 객체를 대상으로 필요한 작업을 실행하면서 ORM이 적절한 SQL 구문이나 데이터베이스 API를 호출하여 처리한다.

ORM 장점

  • 재사용 및 유지보수의 편리성
    • ORM은 독립적으로 작성되어 객체들을 재활용할 수 있음
  • DBMS에 대한 종속성이 줄어듬
    • 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하기 때문에 RDBMS의 데이터 구조와 객체지향 모델 사이의 간격을 좁힐 수 있음

ORM 단점

  • 프로젝트의 복잡성이 커질수록 난이도가 올라감
  • 잘못 구현된 경우 속도 저하 및 일관성이 무너질 수 있음
  • 프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하기 어려움


' > Django' 카테고리의 다른 글

(Django) 3. Django와 PostreSQL 연동  (0) 2020.04.21
(Django) 2. Django 설치 및 설정  (0) 2020.04.21