해결된 질문
작성
·
3.5K
0
안녕하세요 강사님 퀄리티 높은 강의와 디테일좋은 강의 감사드립니다.
머신러닝에도 관심이 있어 공부를 하던와중에 내가직접 서비스를 하려면 백엔드의 지식도 필요할듯하여 감사하게 강의를 듣고있습니다. 머신러닝/딥러닝 서비스를 사용하기위한 백엔드 서비스가 Django 가 좋은것같은데 현업에서도 많은 사용을 하고있나요? (아마 강사님께서도 많은 컨설팅을 해주셔서 아실거라 생각이 들어 질문을 드립니다.)
딥러닝 모델을 웹에서 돌리기위해서는 병렬처리?가 필요할듯한데 Django 에서는 이러한 부분에대한 솔루션이 있는지 또한 궁금합니다.
감사합니다.
답변 2
2
안녕하세요.
웹 백엔드에서는 다양한 언어/프레임워크가 사용되어지고 있습니다. Java/Spring, Node.js, Python/Django, FastAPI, Flask, Ruby/RubyOnRails 등이죠. 팀의 문화와 선호에 의해서 선택이 되어질 것입니다.
포털이나 대형 쇼핑몰의 경우에는 웹초창기부터 사용되어져온 Java를 사용하고 있는 비율도 높구요. 장고도 다양한 회사들에게서 사용되어지고 있습니다.
하지만 하나의 회사/서비스에서 하나의 언어/프레임워크만 사용되는 것은 아니구요. 밖에서 보기에는 하나의 서비스지만, 서비스 안으로 들어가보면 다양한 서비스가 연계되어있습니다. 각각의 서비스가 다양한 언어/프레임워크로 개발이 되어질 수 있는 것이죠. 다음과 같이 대략적으로 분류를 해볼 수 있을 듯 하구요.
위에서 언급한 회사 외에도 많은 곳에서 사용이 되어지고 있습니다.
딥러닝 모델은 웹백엔드에서도 돌릴 수 있구요. 심지어 웹프론트엔드에서도 돌릴 수 있습니다. 말씀하신 병렬처리가 다수의 웹요청에서 하나의 모델을 사용하는 것을 말씀하시는 것일까요.
모델을 장고 프로세스에 같이 탑재해서 돌려볼 수도 있구요. 하지만 이는 각 장고 프로세스마다 모델을 따로 가지고 있게 되어 경우에 따라 메모리 소모가 많을 수 있구요. 별도의 프로세스에서 모델을 돌리고, 장고 View를 처리하는 프로세스에서 모델 프로세스에 요청을 하는 방식도 웹 일반적으로 많이 사용하는 패턴입니다. Task Queue라고 하구요. 보통 오래 걸리는 작업을 별도의 서버에서 돌리는 것을 이야기합니다. 장고에서는 Celery를 많이 사용합니다.
Celery : https://docs.celeryproject.org
충분한 답변이 되었을 지 모르겠습니다. 보시고 또 질문 주세요. :-)
1
답변감사합니다 강사님~! 각회사마다의 모집인원에 대해 보면 조금더 잘 알수 있을것을... 감사합니다. 다른 댓글 답글에서 Celery 에 대한강의도 고민중에 있으시다고 하신것같은데 ㅎㅎ 기대하겠습니다.