Skip to content

Kim-soung-won/DjangoWeb

Repository files navigation

기획 의도

AI 모델을 활용한 웹 서비스를 구현하는 과정을 이전 프로젝트에서 경험했었다.

이전 프로젝트, CNN모델을 활용해 음료 이미지 분석을 통한 이미지 라벨링

이전 프로젝트에서는 SpringBoot 서버를 단독으로 사용했다.

때문에 Python 기반의 AI 관련 라이브러리를 활용하기 어려운 Java 환경에서 AI를 활용함에 어려움을 겪었다

그에 대한 대책으로 .keras 모델을 Tensorflow.js 형태로 변환해 클라이언트 측에 모델을 적재하는 방식을 채택했다.

기능 구현에는 성공했지만 몇가지 문제가 있었다.

  1. AI 모델이라는 정적 리소스는 클라이언트가 매번 로딩 받아 사용하기에 크기가 너무 컸다.
  2. 크기가 크니 네트워크를 많이 사용하게 되었고 그에 대한 비용도 발생했다
    (구현 과정에서 테스트만 수행했을 뿐인데 AWS 프리티어 사용량을 초과해 약 2만원 정도의 지출이 발생했다..)
  3. 굳이 위와 같이 실행할 필요가 전혀 없었다. 클라이언트에 적재하는 방식의 장점을 스스로 찾지 못했다.

이런 문제를 겪고 다음 프로젝트에서는 꼭 Python과 함께 AI 모델을 활용해보겠다는 결심을 했었다.
그리고 다음 프로젝트의 주제가 쇼핑몰이 되었을 때
최근 다양한 온라인 서비스에서 필수적인 빅데이터 기반의 컨텐츠 추천 AI가 떠올라 구현에 도전해보게 되었다.

기능 요약

AI를 기반으로 추천을 수행하기 위해서는 그에 맞는 유저 개인의 데이터가 필요하다. 큰 규모로
그래서 데이터의 개인의 활동 기록을 Log로 찍어 데이터로 활용한다. 상품 조회, 좋아요 누르기, 구매 등을 Log로 남긴다.
하지만 Log가 찍힐 때 마다 학습 결과에 대한 데이터를 Refresh해주는 작업은 너무 많은 Resource를 요구하기 때문에
학습 데이터, 추천 데이터를 새로 만드는 작업은 배치 프로그램으로 수행하는게 좋을 것 같았다.
배치 프로그램을 통해 매일 사이트 이용자가 적은 새벽 시간대에 전날 Login 기록이 있는 사용자에 대한 Log를 긁어서 해당 유저들의 새로운 Log에 맞는 새로운 상품들을 추천 List에 담아준다. 외에 새로 등록된 상품에 대한 학습, 이벤트, 쿠폰 등 유효기간이 존재하는 컨텐츠, 너무 오랜 기간 쌓여있는 로그 등의 데이터를 삭제하는 작업들을 배치로 구현한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages