프레임워크/Django

장고를 왜 사용할까?(특징, 장단점)

멍토 2020. 8. 14.

나는 서버를 만들때 django를 이용해서 만들고 있다.

그렇지만 한국에서는 대부분 spring을 이용한 서버를 만들고 있다.

왜 장고를 선택해 서버를 만들고 있는지 말해야 하는 일이 생길때를 대비하여 작성했다.


장고의 홈페이지에 처음 들어가면 나오는 화면이다.

마감일이 있는 완벽주의자를 위한 웹 프레임워크라고 적혀있다.

 

엄청나게 어려운 기능까지는 아니지만 장고를 이용하여 전체적인 웹도 만들어 보았고

API 서버를 만들어 본 경험을 토대로 생각하면 맞는말이라고 생각한다.

 

장고를 사용하면서 생각한 장점은 아래와 같다.

1. 장고는 Python 기반 웹프레임 워크이다.
- 따라서 파이썬에서 가능한 모든 동작이 가능하며, 강력한 라이브러리들이 많다.


2. 반복적으로 구현해야 하는부분은 이미 만들어져 있다.
- 로그인, 회원가입, 인증, CORS, data parsing 등 라이브러리를 이용해 간단하게 사용이 가능하다.


3. 웹을 만들어야 할때 프론트와 관련된 프레임워크(React, Vue, angular)와 같은것을 사용하지 않고도 만들 수 있다.

- template에 html을 넣어 연동이 가능하며 특정 조건은 DTL(Django Template Language)를 이용하여 조작이 가능하다.


4. 데이터베이스 테이블을 models.py에 클래스로 작성하여 작업량을 줄인다.

- 한번 작업하면 테이블까지 생성되어 매핑되기 때문에 편하게 작업이 가능하다.


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

 

그렇다면 단점은 어떤것들이 있었을까?

1. 파이썬이 가지는 단점을 그대로 가져오게 된다.

- 인터프리터 언어이기 때문에 생기는 문제점(가장크게 보는것은 속도와 실행될때까지 걸리지 않는 에러)이 있다.


2. 한국에서 많이 사용되지 않기때문에 한글로된 자료가 찾기 힘들다.

- 영어잘쓰면 해당되지 않는것 같다.


3. 이미 만들어진 기능을 사용하는 경우가 많기 때문에 원하는대로 커스텀을 하기가 힘들다.

- 이미 라이브러리를 사용하고 있는 상황에서 수정을 해야하는 경우가 많아서 해석해야 한다.
- 그렇지만 다른곳은 이해하고 적용해야 하기때문에 생각해보면 큰 단점이 아닐지도...


4. ORM 기반이기 때문에 내가 원하는 결과가 나오지 않을때가 있다.(문법적 어려움?)

- 익숙해지면 해결될 문제같지만 join을 하는경우가 힘들었다.
- 중계테이블을 따로 건드는것이 어렵다.
- 추천하지는 않지만 SQL을 작성하여 데이터를 가져오는 것도 가능하다고 한다.


 

마지막으로 장고의 특징에 대해서 정리

다른 프레임워크에서는 MVC모델이란 것을 사용한다.(특히 Spring)

그런데 장고는 MTV라는 패턴을 사용한다고 적혀있다.

MVC와 비교하여 적어본다.

Model(Model) : 모델은 같다고 생각한다. 데이터에 관한 정보를 다루게 되며 보통 DB쪽을 생각하면 된다.

View(Template) : 실제로 화면을 보여주는 인터페이스이다.

Controller(View) : Model과 View를 연결해주는 역할이다. 동작해야 하는 함수들이 정의되어 있으며,

urls.py에서 넘어온 요청을 토대로 model에서 데이터를 읽어봐 작업을 수행한후 template에서 html파일을 가져와

render한 후에 사용자에게 넘겨주게 된다.

 

 

 

참고 : https://www.djangoproject.com/

 

The Web framework for perfectionists with deadlines | Django

Django Django makes it easier to build better Web apps more quickly and with less code. Get started with Django

www.djangoproject.com

https://yonghyunlee.gitlab.io/python/about-django/

 

Django 특징 - 김땡땡's blog

파이썬 Django는 파이썬 기반이기 때문에 파이썬의 장단점이 곧 Django의 장단점이 될 수 있다. 장점 다양하고 강력한 라이브러리가 많다. 스크립트 언어로, 비교적 쉽고 간결하다. -> 개발시간 단축

yonghyunlee.gitlab.io

그외 여러 프레임워크를 비교한 곳:

https://elky.tistory.com/652

 

웹서버 중에서 Django를 선택한 이유

Django 장점 굉장히 쉽게 배울 수 있는 프로그램 언어인 Python을 기반으로 한다. 인증, 관리와 같이 거의 대부분의 사이트에서 사용하는 기능들이 기본 모듈로 제공된다. 성공적인 도입 사례가 있��

elky.tistory.com

 

'프레임워크 > Django' 카테고리의 다른 글

Django에서 mysql 연동하기  (0) 2020.09.13
AWS EC2 gunicorn을 이용한 django 배포하기  (0) 2020.09.12
Django 시작하기  (0) 2020.04.24

댓글

💲 광고입니다.