반응형
나는 주로 파이썬을 사용해서 개발을 한다.
그래서 서버를 만들 때 큰 고민 없이, 편하게 만들 수 있는(코드 줄이 적은) 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 사용하면 된다고 한다.
파이썬 프로그램을 올리려면 어떤 프레임워크를 사용하는것이 좋을까..? 🤔
반응형
'flutter' 카테고리의 다른 글
mongoose db schema reference (0) | 2022.07.21 |
---|---|
TypeError: Router.use() requires a middleware function but got a undefined (0) | 2022.07.20 |
flutter provider.of vs Consumer (1) | 2022.06.28 |
flutter dependencies vs dev dependencies (0) | 2022.06.24 |
flutter statelesswidget class key, const란? (0) | 2022.06.23 |