일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 토네이도
- mariadb
- API
- r
- 파이썬
- Judge
- r script
- OrientDB
- 설치
- Framework
- 자료형
- BAEKJOON
- ubuntu
- Tornado
- Python
- 이클립스
- online
- 오픈한글
- 연동
- Java
- 백준
- AWS
- 프레임워크
- MongoDB
- 배열
- 알고리즘
- 저지
- spring
- 자바스크립트
- 연결
- Today
- Total
맛동산
토네이도 프레임워크, 니 정체가 궁금해 본문
저는 java기반 웹 개발을 하다가 현 회사에서 python web을 처음 만져봤는데, Django 기반의 웹 어플리케이션을 운영하던 중 병목현상에 대한 이슈가 생겨서 해결책을 알아본 결과, 대다수가 celery라는 것을 사용하여 비동기 통신을 통한 분산처리로 리소스 관리를 한다는 것을 알게 됐습니다.
하지만! 제 눈에 띄었던 것은 바로! 비동기 통신을 염두하여 설계된, tornado framework였습니다.
django에 celery를 붙이는 것으로 문제를 해결할 수 있을 것 같은데, 어차피 구조의 변화는 불가피하고, celery를 적용하는 것보다 tornado framework의 구조를 공부하는 것이 더 매력적일 것 같아서 tornado를 적용해보기로 계획했습니다.
(제가 받아들이기에 celery는 라이브러리에 가깝고, tornado는 포괄적인 웹 프레임워크라고 생각했습니다.)
검색해보시면 아시겠지만 특히 tornado는 celery에 비해 자료가 극히 부족합니다. 심지어 제가 찾아본 바로는 관련 서적도 기껏해야 한 권이더군요.
이렇듯 tornado framework 자체가 주는 희소성 역시 tornado를 선택한 이유 중 하나 입니다.(저는 비주류를 좋아합니다)
사실 celery를 tornado에서도 사용할 수 있는데 tornado에서 주장하는 비동기 통신이 framework 내부에서 제공을 하는 것인지 celery를 불러와서 사용하는 구조인지는 아직 잘 모르겠습니다.
또한, tornado는 하나의 스레드를 사용하는 것으로 구현되어있고 celery는 각 요청별 프로세스를 할당하는 것으로 되어있는 것으로 아는데, 서비스가 '단순 I/O를 처리하는지' 혹은 '장기 할당이 필요한 작업을 처리하는지'에 대한 부분으로 필요성이 갈릴 것 같습니다.
저도 처음부터 시작하는 입장이라 추후에 정보를 얻는대로 반영하겠습니다.
(저도 파이썬 웹은 처음입니다..)
잠시 다른 소리를 하자면, 글쓰기의 가장 큰 매력은 '어떤 한 분야에 대해 자세히 알아봐야 하는 점, 장단점을 비교하기 위해서는 관련된 것 까지 자세히 알아봐야 한다는 점' 인 것 같습니다.
그럼 지금부터는 tornado docs와 celery docs를 읽어보면서 장기적으로 한 땀, 한 땀 파헤쳐보며 각각 퍼포먼스를 발휘할 수 있는 분야와 장단점을 비교하는 시간을 가져보겠습니다.
'파이썬 > Tornado Framework' 카테고리의 다른 글
Tornado Docs를 읽어보자 : User's guide - Coroutines (0) | 2017.12.30 |
---|---|
Tornado Docs를 읽어보자 : User's guide - Asynchronous and non-Blocking I/O (0) | 2017.12.16 |
Tornado Docs를 읽어보자 : User's guide - Introduction (0) | 2017.12.15 |