flutter

Flask vs Django vs NodeJs

햎피 2022. 6. 29. 23:12
반응형

나는 주로 파이썬을 사용해서 개발을 한다.
그래서 서버를 만들 때 큰 고민 없이, 편하게 만들 수 있는(코드 줄이 적은) Flask를 사용하곤 했다.
하지만, Flask를 이용했을 때는 사실 유저가 많을 때를 고려하지 않은, MVP를 만들 때 사용했던 것이었다.

하지만 Flask는 쓰레드를 1개밖에 사용하지 못하고, 유저가 많으면 아주 느려지는 단점이 있다.
그래서 유저가 많을 때는 멀티 쓰레드 코딩을 하는 등 다른 노력이 더 필요하고, 보안 문제 등의 단점이 있다.

그렇다면 유저가 많은 python 프로그램을 어떤 서버에 올려야할까?

일단, Flask, Django, Nodejs의 장단점을 비교해 볼 것이다.

  Flask Django NodeJS
특징 - 프로젝트마다 1개의 어플리케이션 개발

- DB 접근 : ORM이 없어서 SQLAlchemy 이용

-작성해야하는 코드가 매우 단순함(Django와 비교했을 때 10%밖에 안되는 가벼운 프레임워크)

-원하는 기능 쉽게 추가 가능 (확장과 커스터마이징이 편함)

-WSGI를 사용하고있어서 한번에 많은 트래픽을 처리하기 어려움

-규모가 커질수록 프레임워크에 대한 지식이 많이 필요함

- 한 프로젝트 내에 다양한 어플리케이션 존재

- DB 접근 : Django ORM 존재

-내장된 기능을 이용해 빠르게 개발 가능 (보안, DRF, ORM, 서드파티 연계 등)

-원하는 기능이 있을 때 추가하는것이 Flask 보다 힘듦

-컨텐츠 전송 네트워크 (CDN, CMS)가 잘 갖추어져서 대용량 멀티미디어 전송하는 서비스에 많이 이용됨

-URL 맵핑을 위해 정규표현식 사용해야함

-작은 프로젝트에 적합하지 않음

-커뮤니티가 매우 큼

-속도가 느리고 무거움
- 싱글스레드 프레임워크(장점 :서버가 터지지 않음, 단점 : 성능 저하)

- event-driven 방식이므로 많은 callback 함수 공부해야함

- 보안문제



node js는 java script이기 때문에 python 프로그램을 실행하려면 다른 라이브러리가 필요하다.
그럴때는 child-process, python-shell 사용하면 된다고 한다.

파이썬 프로그램을 올리려면 어떤 프레임워크를 사용하는것이 좋을까..? 🤔

반응형