Django에 대하여
Django는 파이썬 기반 웹 프레임워크로, 빠르고 깔끔한 개발, 실용적인 디자인을 동려합니다.
MVT-(Model,View,Template) 아키텍처이며, Model의 경우 데이터베이스와 연동이 쉽게 만들어져 있다.
ORM(Object Relational Mapper)이 프로젝트의 객체들을 데이터베이스 테이블과 매핑을 도와주어 복잡한 데이터 기반 웹사이트 개발이 쉬워질 수 있다.(Admin페이지를 통해 모델들을 조회할 수 있다.)
ORM은 데이터베이스와 객체 지향 프로그래밍 언어간의 호환되지 않은 데이터를 변환하는 프로그래밍 기법이다. 객체 관계 매핑이라고도 한다. ORM 개념이 나온 이유는 코딩의 반복적인 부분을 줄일 수 있고, SQL의 의존적인 코딩에서 벗어나 생산적인 코딩이 가능하며 유지보수가 편의하기 때문이라 할 수 있다.
깨알지식 : Instagram은 세계에서 제일 큰 규모의 장고 웹사이트이다.
위 사진은 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으로 수많은 모듈을 사용하여 웹 기능을 확장할 수 있다.