해결된 질문
작성
·
373
0
안녕하세요. 강의 잘보고 있습니다.
유저에게 텍스트파일, 카테고리를 입력받아 핵심 키워드와 주제 유사도를 보여주는 웹을 만들려고 합니다. 그런데 어떻게 만들어야하는지 막막해서 질문 글 올려봅니다.
DB는 유저에게 텍스트파일과 카테고리를 입력받기 위해 User에 content와 category를 만들었습니다.
유저가 입력한 데이터를 바탕으로 핵심키워드를 보여주기 위해서 MachineKeywordCategory에서 user_id를 외래키로 받았고 핵심 키워드는 keyword에 저장하려고 합니다.
질문
유저가 입력한 텍스트 파일과 카테고리를 받아서 ML에서 결과물을 받아서 유저에게 보여주려고 합니다. 장고로 어떻게 만들어야 하는지 전체적인 흐름을 설명해주실수 있을까요?
MachineKeywordCategory라는 ML의 결과물을 저장하는 DB를 굳이 만들어야 하나요?
아래 로직은 UserViewSet에서 @action을 이용해서 커스텀으로 만드는 것이 맞나요?
MachineLearning.py에서 얻어온 키워드를 저장하는 로직은 MachineKeywordCategoryViewSet에 구현하는 것이 맞나요?
답변 1
1
안녕하세요.
1. "ML에서 결과물을 받아서" 라는 부분도 ML이 만들어준 함수(function)을 활용하여 그 반환값이 ML이 예측한 값이 되는 것입니다. 그러니 결국 함수를 호출하는 것일테구요. // 이 ML이 만들어준 함수를 장고 뷰 단에서 로딩하여 호출하실 수도 있고, 별도의 서버를 두어 장고 뷰 단에서 호출하여 처리하실 수도 있습니다. // 결국 함수일 뿐이고, 함수 호출일 뿐입니다. 이를 구성하는 것은 구성하기 나름일 것입니다. 뭔가 특별한 아키텍처가 있는 것은 아닙니다.
2. ML결과물을 DB에 저장하시는 것이 필요하시다면, 직접 SQL문을 작성하여 저장하실 수도 있지만, 장고 모델을 활용하신다면 보다 수월하게 저장하실 수 있겠죠.
3. DRF의 viewset에서는 커스텀 endpoint를 action장식자를 통해서 만듭니다. DRF나 viewset에 아직 익숙하지 않으시다면, 함수 기반 뷰로 API를 만드시는 것이 보다 간결하게 구현하실 수 있으실 것입니다.
https://www.django-rest-framework.org/api-guide/views/#api_view
4. ViewSet은 단순히 하나의 모델에 대해 list/get/create/update/delete 등의 작업을 하나의 모델/쿼리셋으로 수행할 때, 모델/쿼리셋 지정 만으로 list/get/create/update/delete API를 생성해주는 기능일 뿐입니다. // MachineLearning.py에서 얻어온 키워드를 저장하는 것이 어떤 것을 말씀하시는 것인지 잘 모르겠습니다만, MachineKeywordCategory에 대한 create를 수행하다면 단순히 MachineKeywordCategoryViewSet의 구현 만으로도 API가 동작하지 않을까요?
살펴보시고 질문 남겨주세요. :-)
화이팅입니다