2조감자탕

cdc wiki
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 나만을 위한 아티클 요약 및 추천 서비스.

영문 : Article Summarize Memorize Recommend.

과제 팀명

2조감자탕

지도교수

황혜수 교수님

개발기간

2024년 3월 ~ 2024년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 20199200** 이*운(팀장)

서울시립대학교 컴퓨터과학부 20199200** 김*욱

서울시립대학교 컴퓨터과학부 20199200** 정*우

서울시립대학교 컴퓨터과학부 20209200** 바**르


서론

개발 과제의 개요

개발 과제 요약

◇ 요약하고 싶은 아티클의 URL을 웹으로 전송하면 해당 주소의 아티클의 내용을 추출한 후, Open AI와 프롬프트를 활용하여 내용을 요약하고 관련 태그를 선정한다.
◇ 추가로 해당 사용자는 범용 classifier를 이용한 아티클 관련 태그 추출 및 관리가 가능하게 하여 사용자로 하여금 아티클을 효과적으로 보관 및 정리할 수 있게 한다.
◇ 나아가 해당 사용자는 개인 classifier에 기반한 맞춤형 태그 관리를 가능하게 한다.

개발 과제의 배경

평상시에 블로그들의 아티클들을 자주 저장해놓지만 읽지 않고 방치하는 주변 사례가 많았다. 따라서 이러한 문제를 해결하기 위해서 해당 프로젝트를 기획하게 되었다.

개발 과제의 목표 및 내용

해당 서비스를 이용하게 하여 사용자가 유저 친화적으로 아티클을 요약해서 정리하는 것을 목표로 한다. 요약하고 싶은 아티클의 URL을 웹으로 전송하면 웹 크롤링을 통해 해당 주소의 아티클의 내용을 추출한다. 그 후, LLM을 이용하여 아티클을 요약하고 관련 태그를 선정한다. 최종적으로는 관련 태그 중심으로 유사한 주제의 아티클을 사용자에게 추천해주는 것을 목표로 한다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황
◇ LLM(Large Language Model)의 경우 OpenAI에서 개발한 ChatGPT가 대표적이며, 자연어 처리와 생성에 탁월한 성능을 보이며 다양한 분야에서 인공지능 기반의 대화형 서비스와 자동화 작업을 지원한다.
◇ React는 페이스북에서 개발한 오픈소스 자바스크립트 라이브러리로, UI를 구축하는데 사용되며, 컴포넌트 기반 구조와 가상 DOM을 통해 효율적이고 빠른 웹 애플리케이션 개발을 가능하게 한다.
  • 특허조사 및 특허 전략 분석
◇ 시중에 텍스트 요약 서비스가 제공되고 있지만 대부분의 텍스트 요약 서비스의 경우, 요약된 내용을 바탕으로 추가적인 접근 시도를 하는 것이 아닌 단순 요약에 그친다. 따라서 메모 추가 기능을 통해 요약본의 활용성을 높이고 아티클을 분류할 때, 범용 classifier 외에도 개인 맞춤형 classifier를 이용하여 사용자들의 선호도에 맞는 맞춤형 태그 중심의 분류가 가능하게 한다. 
  • 기술 로드맵

해당 서비스의 Frontend는 React로 구성되었다. 3개의 Micro Service들로 구성된 Backend는 Node(Typescript) + Express + Mongo DB의 Tech Stack을 차용하였다. 해당 서비스에서 Tagging 기능을 제공하는 ML은 Python 기반으로 구성되었다.

시장상황에 대한 분석

  • 경쟁제품 조사 비교
◇ Clovar Summary의 경우, Open API 기반 요청시 요약된 내용을 제공한다. 
◇ 구글 어시스턴트나 Apple siri의 경우 간단한 음성 명령으로 웹페이지 텍스트를 요약한다.
◇ surfit은 IT분야 관심 카테고리 기반 아티클을 제공한다.
◇ 문헌 관리 도구 Zotero는 논문이나 책 등의 참고문헌을 정리하고, 폴더와 태그를 이용하여 자료를 관리한다.


  • 마케팅 전략 제시

여러 아티클들을 많이 읽는 개발자 및 근래에 아티클들 및 지속적인 성장을 원하는 젊은 세대의 직장인들을 대상으로 무료 체험을 가능하도록 하여, 실제 사용해보도록 한다. 해당 시용은 인지도 향상 뿐 아니라 추천을 위한 초기 데이터 모집, 실 사용자 데이터 확보로도 이어진다. 이들을 대상으로 무료 사용 기간이 지난 후에는 주변의 지인을 초대하여 지인이 안착할 경우 무료 사용 기간을 늘려주며, 또는 과금을 통해 추가 사용을 가능하도록 하여 BM을 구축한다.

개발과제의 기대효과

기술적 기대효과

◇ 사용자의 선호도와 관련된 태그를 자동으로 추출하여 사용자 맞춤형 정보 관리르 가능하게 한다.
◇ 수집되는 요약 데이터가 늘어날수록 사용자 선호도 기반의 태그 추천의 정확도가 증가하고 그에 따른 사용자 참여도를 높일 수 있다.
◇ 피드백을 지속적으로 반영하는 적응형 학습 모델이므로 시간이 지남에 따라 더욱 정교한 태그 추출 및 요약 기능 제공이 가능하다.

경제적, 사회적 기대 및 파급효과

◇ 방대한 양의 정보를 효율적으로 정리하고 분류함으로써 다양한 사용자들이 필요한 지식에 쉽게 접근할 수 있도록 돕고 지식의 확산과 공유를 촉진할 수 있다.
◇ 필요한 정보를 쉽고 빠르게 찾고 활용함으로써 업무 효율성을 증가시킨다.
◇ 다양한 사용자들에 맞는 최적화된 맞춤형 분류를 통하여 정보 접근의 형평성을 높인다.
◇ 많은 사람들이 디지털 정보를 효율적으로 탐색하고 활용할 수 있도록 지원한다.

기술개발 일정 및 추진체계

개발 일정

2조감자탕 개발일정.png

구성원 및 추진체계

◇ 이노운 (조장) : 프론트엔드 개발 업무 수행 및 서류 작성
◇ 김민욱 : 아티클 요약 및 분류모델 제작, 발표자료 작성
◇ 정인우 : 백엔드 및 데이터베이스 개발
◇ 바트쇼르 : 로그인페이지 개발 진행

설계

설계 사양

해당 서비스의 Frontend는 React 단일 Repo로 구성되었다.

해당 서비스의 Backend는 총 3개의 독립적인 Micro Service들로 구성되며 각각은 Node(Typescript) + Express + Mongo DB의 Tech Stack을 차용하였다.

◇ Auth - 사용자의 회원 가입, 로그인 및 탈퇴 등 계정 관련 담당

◇ Article - 아티클 스크래핑, 후술항 Open AI Service, ML 쪽의 Classifier 서버 호출 및 메모 등 아티클 관련한 총체적인 서비스

◇ OpenAI - OpenAI 관련 Prompt 및 요청 캐싱 등을 담당

해당 서비스의 ML은 Tagging 기능을 제공하며, Python 기반으로 구성되었다.

개념설계안

내용

이론적 계산 및 시뮬레이션

아래 내용은 실제 아티클에 대한 스크래핑과 Open AI 활용 요약 및 Classifer를 통한 태깅에 대한 시뮬레이션 값이다.

해당 값은 각각이 Newtwork에 대한 의존도 및 컴퓨팅 리소스에 대해 의존도가 높으므로, 상황에 따라 값이 튈 수 있다.

◇ 스크래핑 소요 시간 - 3.53s

◇ Open AI 요약 소요 시간 - 3 ~ 6s (입력 Token 길이에 정비례)

◇ Classifier를 활용한 태깅 소요 시간 - 5s

상세설계 내용

2조감자탕 상세설계.png

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

2조감자탕 로그인.png 사용자는 웹페이지에 접속해서 로그인을 한다. Archive 페이지에서는 이제까지 요약했던 요약본들을 볼 수 있고, Mypage에서는 관심사에 기반한 태그 편집이 가능하다. Summary 페이지에선 원하는 아티클의 주소를 입력할 수 있다. 2조감자탕 스크랩.png 내가 요약본을 보기 원하는 아티클의 url을 입력하면 2조감자탕 입력하기.png 해당 아티클의 요약본이 Archive에 생성되고 해당 페이지에서는 2조감자탕 요약본제시.png 요약본의 내용을 확인할 수 있으며 메모추가, 태그 생성, 원문으로의 링크 역시 제공하고 있다.

관련사업비 내역서

2조감자탕 비용내역.png

완료작품의 평가

아티클의 url을 입력하여 자동으로 아티클을 요약하고 메모를 첨부하여 관리하여 시간이 없어서 아티클 전문을 읽지 못하는 사람들의 수요를 충족시킨다. 또한 개개인에게 적합하게 맞춤형 태그 추천을 해주는 적응형 학습 모델이 사용자의 지속적인 선호도 반영에 따라 서비스 이용이 늘어날수록 이용자에게 최적화된 태그 추천이 가능할 것이다.

아쉬운 점

◇ Cloud 관련 비용의 지불이 어려워 Public하게 접근 가능한 서비스의 형태를 갖추지 못하였다.

◇ 현재 Classifier의 생성 및 스크래핑, 요약 등 대부분의 서비스가 부하 및 컴퓨팅 리소스의 사용률이 높고 시간이 오래 걸려 이에 대해 이벤트 기반의 아키텍처를 강화할 필요가 있다.

◇ UI의 접근성이 떨어지며, 현재 로그인 Access Token 관련하여 클라이언트 단 관리가 미흡하여 API의 정상적 사용이 어렵다.

◇ 계획 이상으로 시간이 많이 소요되어 Container Orchestration Tool 기반의 현대적인 인프라 구성이 미흡하였다.

향후 계획

◇ 프론트 단에서 Component 기반으로 코드 개선 및 전반적인 UX를 개선한다.

◇ 프론트 단을 CDN을 활용하여 Public하게 배포한다.

◇ 서버 단은 EKS, ECS 등의 클라우드 Container 관리 도구를 활용하여 Micro Service들을 배포한다.

◇ GPU를 활용하는 Classifier의 경우 최적화 및 적정 스펙의 컴퓨팅 머신을 활용하여 Response Time을 최소화한다.