SOOJLE
수즐 커뮤니티
수즐 커뮤니티
  • SOOJLE Document
  • 프로젝트 요약
  • Untitled
  • 프로젝트 개요
    • 프로젝트 소개
    • 추진 배경 및 필요성
    • 프로젝트 내용
      • 기능적 요구사항
      • 비기능적 요구사항
    • 개발환경 및 팀 구성
    • 워크플로우
      • 계획 수립 & 설계
      • 데이터 수집 및 정규화
      • 인공지능 개발
      • 서비스 모듈 개발
      • 성능 평가 및 보고
    • 프로젝트 예산 내역
  • 사전조사 & 의사결정
    • 사전조사
      • 재학생 대상 사전조사
      • 수집 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
  • 개요
  • 통계 기능 명세
  • 사용자 접근 통계
  • 실시간&누적 인기 검색어
  • 워드 클라우드
  • Word Cloud Example

Was this helpful?

  1. BackEnd

통계 기능 설계

개요

본 항목에서는 SOOJLE 서비스가 운영되는 동안 수집된 데이터를 시각화하여 사용 자에게 보여줄 통계 기능에 대하여 다룬다. 본 문서에서 다루는 내용은 통계 기능으로 표출한 대표적인 아이디어의 프로토 타이핑이며, 아이디어(즉, 통계로써 제시할 항목)는 지속적으로 갱신될 수 있다.

통계 기능 명세

사용자 접근 통계

회원/비회원을 포함하여, 해당 서비스를 이용한 방문자 수를 조회한다. 방문자 수는 시간/일/월 단위로 표시되며, 사용자가 지정한 항목에 따라 원하는 기간 사이의 값을 표출할 수 있어야 한다.

통계 반영 조건: 각 사용자(비회원/회원)에 대하여 모든 템플릿 페이지 호출, API 호출에 대한 사용 기록을 저장해야 한다

통계 표출 단위: 표출할 단위는 시간/일/월이며, 최대 한 그래프 내에서 시간(24시 간전까지), 일(7일전까지), 월(6월전까지)의 정보를 출력한다.

실시간&누적 인기 검색어

DB에 저장된 데이터 중, 최근에 특정 구간 내에서 모든 사용자가 검색한 키워드의 빈도수 순위를 출력한다. 해당 검색어는 띄어쓰기 단위로 구분한 Split Token만을 통해 도출한다. 토크나이저의 성능으로 봤을 때, 잘못된 형태소 분석으로 인해 전 혀 다른 결과가 출력될 수 있기 때문이다.

통계 반영 조건: 각 사용자(비회원/회원)에 대하여 수행한 검색 기능 수행에 사용된 키워드를 저장한다.

통계 표출 단위: 가장 최근 순으로 수행된 검색 기록 중, 특정 기간만을 선정하여 해당 기간 내의 모든 키워드를 합쳐 빈도수를 계산한다.

실시간 키워드 도출 알고리즘

해당 키워드는 단순한 단일 키워드의 빈도수 계산이 아닌, 한 Set의 키워드 집합 내에서 항상 함께 나타나는 인접 단어가 존재할 경우, 해당 경우를 함께 카운트하 여야 한다.

Input Example

  • 검색어1: IT 공모전

  • 검색어2: IT 공모전

  • 검색어3: IT

  • 검색어4: 컴퓨터 공모전

Output Example

  • 1위 IT (빈도수:3)

  • 2위 공모전(빈도수:3)

  • 3위 IT 공모전 (빈도수:2)

  • 4위 컴퓨터 공모전 (빈도수:1)

즉, 위와 같이 IT 자체의 빈도수는 물론이고, “IT 공모전” 이라는 키워드 자체가 많 이 호출된다면 해당 키워드 set도 높은 순위를 주어야 한다는 것이다. 그러나 본래 5위로써 “컴퓨터” 키워드가 빈도수 1로써 순위에 포함되어야 하지만 상위 순위에 해당 토큰을 모두 포함하는 키워드가 존재하며, 해당 키워드가 상위의 키워드보다 빈도수가 높지 않을 경우 순위에서 제외한다.

  • 누적 인기 검색어 순위 또한 위의 알고리즘과 완전히 일치하며, 특정 구간이 아

    닌, 전체 검색 단어를 대상으로 한다.

  • 실시간 인기 검색어의 경우, 구간 자체를 짧게 하고 자주 백그라운드 캐싱 작업

    을 수행해야 한다.

  • 누적 인기 검색어의 경우, 전체 구간을 대상으로 하므로, 최소 1주 정도의 백그

    라운드 캐싱 작업 수행한다.

워드 클라우드

상단의 실시간 인기 검색어의 모든 키워드와 DB 내의 전체 포스트에 대한 Title Token, Tag, Token 정보를 모두 추합하여 전체 단어 빈도수를 통해 워드 클라우드 를 생성한다. 해당 워드 클라우드가 표출하는 각 단어의 color, size는 디자이너 자 율적으로 결정한다.

  • 각 단어의 빈도수와 무관하게, "SOOJLE", "세종대학교"라는 키워드는 항상 공동 1

    위의 빈도수로 취급하여 고정시킬 것

  • 백그라운드 캐싱 작업은 실행 시간을 고려하여 최소 월별 단위로 진행한다.

Word Cloud Example

Previous세종 Auth APINextIssue & Exception

Last updated 5 years ago

Was this helpful?