본문 바로가기

CS

Django 장단점

Python으로 웹서비스를 만들기 위해서 사용할 수 있는 프레임워크들은 많다.

하지만 Django를 선택해서 웹서비스를 구현하는 이유는 무엇일까?

 

Flask와 Django를 비교해보면,

Flask매우 가볍고 심플한 Framework를 지향하는 것이 특징이다. 접근성이 좋고 빠르게 구현할 수 있지만, 웹에 필요한 다양한 기능을 전부 구현하기 위해서는 많은 라이브러리를 가져와야하기 때문에 숙련도를 요구하게 된다.

반면에 Django는 템플릿부터 데이터베이스까지 웹을 구현하는데 필요한 기본적인 기능을 전부 제공하는 프레임워크이기 때문에 숙련도가 없더라도 쉽고 빠르게 구현할 수 있다.

 

Django의 장점

Django는 ORM을 지원하기 때문에 복잡한 쿼리문을 사용하지 않아도 되고, admin 기능을 제공하기 때문에 쉽게 데이터베이스에 접근 할 수 있다. 또한 웹 구현에 필수적인 로그인, 회원가입 기능이나 기본 유저모델, 비밀번호 해싱기능 등을 제공하기 때문에 반복적으로 해야하는 작업은 미리 구현이 되어있어 빠른 개발이 가능하다. 마지막으로 XSS(cross-site scripting), CSRF(cross-site request forgery), SQL 인젝션, 클릭재킹(clickjacking) 을 막기 위한 기본적인 보안기능을 제공한다.

 

Django의 단점

Django는 ORM기반이기 때문에 가끔 원하는 데이터를 가져오는데 어려움이 있을 수 있다.

ex) Django로 웹서비스를 만들때, ManytoMany 관계에서 중간테이블을 커스텀하여 설정하지 않으면 자동으로 중간테이블이 생성이 된다. 이때 중간테이블을 통해 데이터를 가져오려고 하면 엉뚱한 데이터를 가져올 수 있다.

Django는 python기반 프레임워크이기 때문에 python이 갖는 문제점을 그대로 가져온다. python은 느린언어에 속하는데, 사람은 이해하기 쉬운 언어이지만 이것을 기계어로 번역하는데 시간이 걸리기 때문이다. 따라서 웹서비스를 만들 때, 설계를 잘못하게 되면 웹사이트가 느려지는 단점이 있다. (최적화를 잘해야한다.)

'CS' 카테고리의 다른 글

[Python] init, self, super  (0) 2022.09.28
[Python] 매개변수, 인자 / 상속, 오버라이딩  (0) 2022.09.28
[Python] ASGI, WSGI  (0) 2022.09.27
웹서버 vs WAS ?  (0) 2022.09.27
관심사 분리, SOLID 원칙  (0) 2022.09.26