SOOJLE
1.0.0
1.0.0
  • SOOJLE Document
  • 프로젝트 요약
  • 프로젝트 개요
    • 프로젝트 소개
    • 추진 배경 및 필요성
    • 프로젝트 내용
      • 기능적 요구사항
      • 비기능적 요구사항
    • 개발환경 및 팀 구성
    • 워크플로우
      • 계획 수립 & 설계
      • 데이터 수집 및 정규화
      • 인공지능 개발
      • 서비스 모듈 개발
      • 성능 평가 및 보고
    • 프로젝트 예산 내역
  • 사전조사 & 의사결정
    • 사전조사
      • 재학생 대상 사전조사
      • 수집 URL 대상 목록
        • 세종대학교 직할
        • 세종대학교 학과
        • 공식 공지사항
        • 세종대 평생교육원
        • 외부 웹사이트
      • 학습 모델 사전조사
        • LSA - 잠재 의미 분석
        • LDA - 잠재 디리클레 할당
        • Word2Vec - 워드투벡터
        • FastText - 패스트텍스트
    • 의사결정
      • 사용자 인증 방식 의사결정
      • 데이터베이스 의사결정
        • MySQL vs MongoDB 성능 분석
      • 토픽별 의사결정
      • 부가 기능 의사 결정
  • 프로젝트 설계
    • 시스템 구조 설계
    • 핵심 기능 설계
      • 데이터 크롤러 설계
      • 게시물 토픽 정의 및 분류
      • 사용자 관심분야 측정
      • 뉴스피드 설계
        • 사용자-문서 유사도(Recommendation Score)
        • FaS (관심 분야 및 유사도 측정 - 추가)
        • 토픽 뉴스피드 목록
      • 검색 알고리즘 설계
        • 검색 알고리즘 1차 설계
        • 검색 알고리즘 1차 개선안
        • 검색 알고리즘 2차 설계
    • 요구사항 목록
      • DB 요구사항
      • 기능 요구사항
      • 품질 요구사항
      • 관리 요구사항
  • DB
    • 구조 설계
    • 테이블 명세
  • 데이터 크롤러
    • 데이터 크롤러 개요
    • 크롤링 URL 선정
    • 크롤러 구현을 위한 사전조사
    • 크롤러 개발 과정
      • 크롤러 프로그램 설계
      • 크롤러 규격화
      • 크롤러 정규화
      • 데이터 정제 과정
      • 에러 핸들러 구현
      • 배포 환경 이식을 위한 Porting
    • Issue & Exception
    • 결과 보고
  • 인공지능 개발
    • 인공지능 개발 개요
    • NLP 스터디
      • Bag of Words(BoW)
      • Document Term Matrix(DTM)
      • TF-IDF(Term Frequency-Inverse Document Frequency)
      • 문서 유사도(Document Similarity)
    • 데이터 전처리 과정
    • 개발 과정
      • 토크나이저 구현
      • LDA 모델 학습 및 구현
    • LDA 학습 모델링
      • 1차 파라미터 튜닝 결과 (NUM_TOPICS)
      • 2차 파라미터 튜닝 결과 (NUM_TOPICS)
      • 3차 파라미터 튜닝 결과 (NUM_TOPICS)
      • NUM_TOPICS 파라미터 의사결정
      • 4차 파라미터 튜닝 결과 (PASESS, ITERATION)
      • 최종 학습 모델 명세
    • Word2Vec(FastText) 학습 모델링
    • Issue & Exception
    • 성능 분석 결과
  • BackEnd
    • 서버 구축 및 배포
      • SOOJLE 서버 구조
      • 상용 서버 (UWSGI + NGINX) 구축
      • HTTPS 서버 구현
    • API 문서 개요
    • API 목록
      • Analysis
      • Auth API
      • Newsfeed API
      • Post API
      • Search API
      • Admin API
    • 세종 Auth API
    • 통계 기능 설계
    • Issue & Exception
    • 성능 분석 결과
  • FRONTEND
    • 프론트엔드 설계 개요
    • 디자인 설계 의사결정
      • 디자인 컨셉 및 기능 정의
      • 컴포넌트 디자인
      • Logo Variation
    • 화면 흐름도
    • 페이지 UI 명세
      • Main Page
      • Header
      • Footer
      • Mobile Control Bar
      • Login Page
      • Timeline Page
      • Menu Page
      • Hyperlink Icons Page
      • Search Component & Mobile Search Modal
      • Search Page
      • Post Block
      • Snackbar
  • 프로그램 배포
    • 프로그램 개요
    • 시스템 아키텍쳐
    • 주요 기능 및 명세
    • 프로그램 테스트
    • 구현 결과물 배포
  • 마무리
    • References
  • SOOJLE AI
  • SEJONG AUTH
  • IML Tokenizer
  • SOOJLE Crawler
  • SOOJLE Frontend
  • SOOJLE Backend
Powered by GitBook
On this page
  • 개요
  • 기능적 모델링
  • 사용자
  • SOOJLE 서비스
  • SOOJLE 크롤러
  • SOOJLE 인공지능

Was this helpful?

  1. 프로젝트 설계

시스템 구조 설계

해당 프로젝트 서비스의 핵심 구조에 대해 기술한다.

Previous부가 기능 의사 결정Next핵심 기능 설계

Last updated 5 years ago

Was this helpful?

개요

SOOJLE 서비스의 가장 중요한 핵심은 세종대학교 관련 및 구성원이 관심을 가질 만한 모든 사이트의 정보를 수집하고 체계화하여 사용자가 원하는 정보에 접근하는 것을 용이할 수 있도록 돕는 것이다. 해당 문서에서는 SOOJLE 서비스가 구축되기 위한 전반적인 시스템 구조에 대하여 서술한다.

기능적 모델링

사용자

일반적으로 해당 서비스를 사용하는 사용자이다. 사용자는 서비스를 대상으로 다음과 같은 액션을 수행할 수 있다.

  • 뉴스피드를 확인한다 SOOJLE 서비스로부터 반환된 뉴스피드를 확인할 수 있다. 뉴스피드는 사용자의 관심도를 바탕으로 추천하는 "추천 뉴스피드", 게시물의 인기도를 바탕으로 선별한 "인기 뉴스피드", 구성원 모두가 관심을 가질 만한 몇 가지 토픽을 선별하여 보여주는 "토픽 뉴스피드"로 분류된다.

  • 뉴스피드 내의 게시물을 눌러 접속한다 해당 뉴스피드에서 사용자는 원하는 게시물 링크를 클릭하여 원본 포스트로 이동할 수 있다. 자신이 확인한 게시물들은 DB에 기록되며 언제든지 다시 접근할 수 있다.

  • 해당 게시물에 "좋아요" 버튼을 누른다 사용자는 특정 게시물에 대하여 "관심" 기능을 수행할 수 있다. "좋아요"가 등록된 게시물 또한 DB에 저장되며, 사용자는 언제든지 다시 확인할 수 있다.

  • 원하는 게시물을 검색한다 사용자는 SOOJLE에서 수집된 모든 게시물에 대하여 검색 기능을 수행할 수 있다.

SOOJLE 서비스

수즐 서비스는 사용자와 직접 통신을 주고받는 WAS(Web Application Server)이다.

  • 사용자의 모든 액션을 수집한다 사용자가 수행한 요청에 대한 응답을 수행하면서 사용자가 수행한 모든 액션을 기록한다. 해당 정보는 사용자의 관심 분야를 산출하는 데에 사용된다. 대표적으로 수집해야 하는 항목은 다음과 같다. - 사용자는 어떤 뉴스피드에 접근했는가 - 사용자는 어떤 게시물 정보에 접근했는가 - 사용자는 어떤 게시물에 "좋아요" 기능을 수행했는가 - 사용자는 어떤 키워드로 검색을 수행했는가 위 항목은 사용자의 관심 분야를 산출하기 위한 데이터 값이며, 그 외에 사용자에게서 보편적으로 수행하는 정보 수집 또한 병행해야 한다.

  • 요청받은 뉴스피드 Rule에 맞춰 적절한 게시물 리스트를 반환한다 추천 뉴스피드, 인기 뉴스피드, 토픽 뉴스피드에 대한 요청에 대하여 각 사용자에게 해당되는 적절한 결과를 반환한다.

  • 요청받은 검색 키워드에 따라 적절한 게시물 결과를 반환한다 입력된 검색 키워드에 해당되는 적절한 게시물 결과를 반환한다. 검색 과정에서 수행되는 연산에는 사용자의 관심 분야를 반영하지 않는다.

SOOJLE 크롤러

수즐 크롤러는 수즐 서비스에서 사용자에게 제공될 게시물 데이터를 수집하는 모듈이다.

  • 게시물을 수집한다 수즐 크롤러는 다음과 같은 조건이 충족되는 경우, 해당 사이트에 대하여 정보 수집을 수행한다. - 세종대학교 혹은 대학생 전반이 대상이 되는 관련 정보를 60% 이상 포함할 것 - 가장 최근 게시물이 3년 이내에 작성된 것일 것 - 복수의 재학생들에게 반드시 필요한 정보를 포함하고 있는 몇몇 사이트는, 상기의 조건을 충족하지 못하더라도 수집 대상에 포함시킬 것

  • 문서(게시물)의 형태소를 분석하여 토큰화한다 수집된 게시물은 각 문서의 토픽을 분석하는 과정을 수행해야 하며, 그를 위한 전처리 과정을 수행해야 한다. 전처리 과정중, 반드시 포함해여야 하는 과정은 다음과 같다. - 문자의 명사만을 선별할 것 - 영어 및 한글을 제외한 모든 문자를 제외할 것 - 불용어일 경우 제외할 것

SOOJLE 인공지능

수즐 인공지능은 SOOJLE의 핵심 모듈로 자연어 처리 과정을 통해 시스템의 전반적인 프로세스에 개입하여 분석을 수행한다. 수즐 인공지능이 수행하는 작업은 다음과 같다. - 수즐 크롤러로부터 수집된 각 문서에 대하여 토픽을 분석한다. - 사용자에게서 수집된 액션을 기반으로 해당 사용자의 관심 분야를 산출한다. - 사용자의 관심 분야와 특정 문서의 토픽을 바탕으로 두 객체 간 유사도를 측정한다. - 검색 키워드에 대하여 형태소 분석을 통해 명사를 추출한다.