Django에 대하여

  22 Oct 2019


Django에 대하여

Django는 파이썬 기반 웹 프레임워크로, 빠르고 깔끔한 개발, 실용적인 디자인을 동려합니다.
MVT-(Model,View,Template) 아키텍처이며, Model의 경우 데이터베이스와 연동이 쉽게 만들어져 있다. ORM(Object Relational Mapper)이 프로젝트의 객체들을 데이터베이스 테이블과 매핑을 도와주어 복잡한 데이터 기반 웹사이트 개발이 쉬워질 수 있다.(Admin페이지를 통해 모델들을 조회할 수 있다.)

ORM은 데이터베이스와 객체 지향 프로그래밍 언어간의 호환되지 않은 데이터를 변환하는 프로그래밍 기법이다. 객체 관계 매핑이라고도 한다. ORM 개념이 나온 이유는 코딩의 반복적인 부분을 줄일 수 있고, SQL의 의존적인 코딩에서 벗어나 생산적인 코딩이 가능하며 유지보수가 편의하기 때문이라 할 수 있다.

깨알지식 : Instagram은 세계에서 제일 큰 규모의 장고 웹사이트이다.

Image
위 사진은 Django가 웹브라우저의 요청을 받았을 때 요청에서 응답까지의 흐름을 잘 나타낸 다이어그램이다.

Django 장단점

Django는 파이썬 기반 웹 프레임 워크이기 때문에, 파이썬의 장단점이 Django의 장단점이 될 수 있다.

Python 장단점

장점
  • 다양하고 강력한 라이브러리가 많다.
  • 스크립트 언어(Python)로, 비교적 쉽고 간결하다. (개발시간 단축)
  • 다양한 운영체제 활용
  • 높은 생산성
단점
  • 모바일 컴퓨팅에 취약해 파이썬으로 개발된 스마트폰 어플리케이션이 거의 없다.
  • 언어 설계면에서 파이썬이 동적 입력 형태를 띄기 때문에, 더 많은 테스트가 필요하고 실행했을 때 드러나는 오류가 있다.
  • 들여쓰기가 문접적으로 중요하다.

Django의 장단점

장점
  • 파이썬 기반 웹 프레임 워크
  • 파이썬의 라이브러리를 사용할 수 있다.
  • 오픈소스
  • 기본적인 기능들을 미리 만들어 제공해 쉽고 빠르게 개발할 수 있음
  • Full Stack Framework로 Front, Backend등 서버가 필요로 하는 것을 모두 Django가 맡아서 한다.
단점
  • 수많은 만들어진 기능을 제공하지만, 그만큼 세세샇ㄴ 설정 변경이나 자세한 조정이 힘들다.
  • 모든 것이 Django ORM을 기반으로 한다.
  • 작업하는데 Full system의 지식이 필요하다.

다른 웹프레임워크에는 뭐가 있을까?

1. Laravel

웹 어플리케이션과 모바일 어플리케이션을 개발하는데 사용되는 PHP 개발 프레임워크이다. 권한 부여기능, 객체 지향 라이브러리, Artisan, MVC 지원 등의 기능을 제공한다.

2. Ruby on Rails

Ruby 프로그래밍 언어로 작성된 서버 측 웹 개발 프레임워크이다. MVC와 RESTFul 디자인을 사용한다. Github, Airbnb 등이 이 프레임워크로 개발되었다.

3. Express JS

Node.js에서 개발된 웹서버 개발 프레임 워크이다. API 서버를 굉장히 쉽게 개발할 수 있다. npm으로 수많은 모듈을 사용하여 웹 기능을 확장할 수 있다.

...