Django

[django]Django 소개 및 장단점

a-몬드 2022. 5. 24. 14:33
반응형

Djanog란?

  • Django는 파이썬으로 제작된 오픈소스 웹 프레임워크
  • 대표적인 사이트는 인스타그램, 핀터레스트, 딜리버리 히어로 코리아, 화해(버드뷰), SendBird(채팅 API)

 

Djanog의 특징 

  1. MTV 패턴
  • View는 Template, Controller는 View라고 표현
  • Model은 DB에 저장되는 데이터
  • Template는 유저에게 보여지는 UI
  • View는 데이터를 처리하고 Template에 데이터를 전달

 

 2. 강력한 ORM기능

  • ORM(객체 관계 매핑)은 객체와 관계형 DB를 연결해주는 개념
  • 생성한 클래스(객체)를 SQL문으로 자동 변환하여 데이터를 다룸
  • SQL을 사용하지 않고도 DB데이터를 관리
  • 관계형 DB를 객체처럼 볼 수 있게 해준다. 이는 개발자가 로직 작성에 집중하도록 도움

 

3. 소스코드의 변경 사항을 자동으로 반영

  • django는 자동으로 .py파일의 변동을 감시
  • 변경이 감지될 경우 변경 내역을 자동으로 반영
  • 코드를 변경할 때마다 수동으로 웹서버를 재시작할 필요가 없다.

 

4. python기반 웹 프레임 워크

  • python에서 가능한 모든 동작이 가능, 강력한 라이브러리들이 많다.

 

 

Flask VS Django

같은 Python 웹 프레임워크의 비교

Flask  Django
웹 개발을 위한 최소한의 기능 지원
높은 자유도
작은 프로젝트에 적합
웹개발을 위한 거의 모든 기능 지원
높은 생산성안정성 보장
프레임워크가 제시하는 틀을 벗어날 수 없다.

 

Django의 장단점

장점

1. 파이썬을 기반으로 한 만큼 진입장벽이 낮은 편

2. 생산성이 높고 개발 비용 절감

  • 스크립트 언어로 비교적 쉽고 간결하여 개발 시간 단축
  • 계정 생성, 로그인/아웃, 사용자 패널, 파일 올리고 내리기, 관리자, 다양한 공격 방지 기능들이 이미 구현
  • 데이터 베이스 테이블을 models.py에 클래스로 작성하여 작업량 감소, 한번 작업하면 테이블까지 생성되어 매핑되기 때문에 편하게 작업 
  • App 단위(독립성)로 구성되어 있어, App별로 독립적인 환경 구성
  • 독립적인 구성으로 각 App은 모델, 템플릿, 뷰로 구성되어 분업이 매우 용이
  • Django Extensions Debugger : Django Extensions의 runserver_plus를 이용하면 오류가 난 시점부터 브라우저 상에서 바로 Python 코드를 실행할 수 있다.

3. URL디자인이 매우 편리(정규표현식 사용가능, 함수와 URL을 1:1 매칭 가능)

4. Python기반 머신러닝, 데이터 분석 등 강력한 라이브러리와 융합하여 사용하기 편하다.

5. AWS, Google, Azure 등에서 전폭적으로 초기 단계부터 지원한 프레임 워크 deploy 및 운용에 개발 비용을 크게 아낄 수 있다.

6. Instagram처럼 성공적으로 도입된 사례가 많은 만큼 안정성과 기능이 충분히 검증

 

단점 

1. python의 단점 전부 포함

  • 들여쓰기가 매우 중요 (매우 짜증나는 부분)
  • 실시간 영상, 채팅 등에 약하다

2. 한글문서가 풍부한 편은 아님 (내가 공부하면 될일_1)

3. 이미 만들어진 기능을 사용하는 경우가 많아 세세한 설정 변경이나 자세한 조정이 힘들다

4. ORM기반이기 때문에 내가 원하는 결과가 나오지 않을때가 있다.(ORM 이해 필요 내가 공부하면 될일_2)

5. 다른 웹 프레임 워크에 비해 비교적 속도가 느리다.

7. 숙련되기 위해 장고 자체에 대한 이해도 뿐만 아니라 파이썬에 대해 높은 이해도 요구(내가 공부하면 될일;_3)

 

 

 
 

장점 > 단점

개발 환경에 빠른 변화를 겪고 이에대해 민첩하게 대응하는 스타트업 기업

대용량의 데이터를 다루는 기업들에게 매력적으로 다가오는 프레임워크

(지금 다니는 회사의 입장)

 

Spring이나 Laravel처럼 개발이 편하지도 않고 기능도 빈약하고 안전하지도 않고 빠르지도 않은 프레임워크가 널리 쓰이고 있는 것에 비하면 Django는 좋다. 

(전에 Spring 개발했던 나,,,뼈맞음)

꼭 경험을 해봐야

 

 

출 처

 

Django의 전반적인 개념과 Flask와 차이점

https://tibetsandfox.tistory.com/6?category=885920

Django의 장단점

https://mungto.tistory.com/302

Django의 쓰는 이유 쓰지 않는 이유

https://blog.lxf.kr/2018-11-19---why-or-not-django/

반응형