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
  • 실시간 검색어 반환
  • 시간별 사용자 접근 log 반환
  • 특정 사용자 Log 반환
  • 특정 사용자 + 시간별 Log 반환
  • 유사한 단어 추출
  • 통계 통합 반환
  • 날짜별 통계 반환(X일 전 버전)
  • 날짜별 통계 반환(특정 날짜 반환형)
  • 디바이스 입력
  • 디바이스 통계 반환

Was this helpful?

  1. BackEnd
  2. API 목록

Analysis

실시간 검색어 반환

GET https://soojle.io/get_search_realtime

실시간 검색어 순위를 반환한다.

1. 성공
{
    result = "success",
    search_realtime = <list>
        [
            <list>
            [
                "검색어", "빈도수"
            ]
        ]
}

시간별 사용자 접근 log 반환

GET https://soojle.io/get_log_date/<int:months>/<int:days>/<int:hours>/<int:limit>

각 Path Parameter에는 limit을 동반하여 한개만 사용 가능합니다. 예시) get_log_date/4/0/0/100 = 최근 4개월 간의 기록을 100개 가져온다. 예시) get_log_date/0/3/0/100 = 최근 3일 간의 기록을 100개 가져온다.

Path Parameters

Name
Type
Description

months

string

달 (최대 6개월)

days

string

일 (최대 7일)

hours

string

시간 (최대 24시간)

limit

string

최대 X개 반환

Headers

Name
Type
Description

Authorization

string

"Bearer " + <Token>

1. 성공
{
    result = "success",
    log = <json_list>
        {
            user_id:<string>
        }
}

특정 사용자 Log 반환

GET https://soojle.io/get_log_user/<string:user_id>/<int:limit>

Path Parameters

Name
Type
Description

user_id

string

사용자 id

limit

string

최대 X개 반환

Headers

Name
Type
Description

Authorization

string

"Bearer " + <token>

1. 성공
{
    result = "success",
    log = <json_list>
        {
            user_id:<string>
        }
}

특정 사용자 + 시간별 Log 반환

GET https://soojle.io/get_log_user_date/<string:user_id>/<int:months>/<int:days>/<int:hours>/<int:limit>

Path Parameters

Name
Type
Description

user_id

string

사용자 id

months

string

달 (최대 6개월)

days

string

일 (최대 7일)

hours

string

시간 (최대 24시간)

limit

string

최대 X개 반환

Headers

Name
Type
Description

Authorization

string

"Bearer " + <token>

1. 성공
{
    result = "success",
    log = <json_list>
        {
            user_id:<string>
        }
}

유사한 단어 추출

POST https://soojle.io/get_similarity_words

연관 검색어 용도

Request Body

Name
Type
Description

search

string

검색어

1. 성공
{
    result = "success",
    similarity_word = <json_list>
        {
            word: <list> - key값: 검색어의 Token
            [
                "XXXX": 0.XXXX - key: 단어, value: 유사도
            ]
        }
}

통계 통합 반환

GET https://soojle.io/get_analysis

1. 성공
{
    result = "success",
    analysis = <json>
        {
            day_avg_visitor: <int> //하루 평균 방문자
            highest_day_visitor: <int> //하루 최고 방문자
            posts_count: <int> //DB POSTS 총 개수
            search_count: <int> //검색 총 개수
            communication_avg: <int> //총 소통 횟수
            today_visitor: <int> //하루 방문자 수
            total_fav: <int> //총 좋아요 수
            total_view: <int> //총 조회수
            total_visitor: <int> //총 방문자 수
        }
}

날짜별 통계 반환(X일 전 버전)

GET https://soojle.io/get_everyday_analysis_days_ago/<int:days>

Path Parameters

Name
Type
Description

days

number

몇일 전 날짜의 통계를 입력

1. 성공
{
    result = "success",
    analysis = <json_list>
        {
            today_visitor: <int> //방문자 수
            today_time_visitor: <array>
            [
                 {
                     time: <int> //00 ~ 23
                     visitor: <int> //방문자 수
                 }   
            ]
            today_view: <int> //이날 포스트들의 조회수
            today_fav: <int< //이날 좋아요 된 수
            today_student_visitor: <array>
            [
                {
                    student_num: <string> //학번
                    count: <int> //방문자 수
                }
            ]
            //당일별 groupby인지라 방문한 학번들만 반환됨.
            //+비로그인자는 guest 로 표시됨.
        }
}

날짜별 통계 반환(특정 날짜 반환형)

GET https://soojle.io/get_everyday_analysis_specific_days/<int:year>/<int:month>/<int:day>

Path Parameters

Name
Type
Description

year

number

년

month

number

월

day

number

일

1. 성공
{
    result = "success",
    analysis = <json>
        {
            today_visitor: <int> //방문자 수
            today_time_visitor: <array>
            [
                 {
                     time: <int> //00 ~ 23
                     visitor: <int> //방문자 수
                 }   
            ]
            today_view: <int> //이날 포스트들의 조회수
            today_fav: <int< //이날 좋아요 된 수
            today_student_visitor: <array>
            [
                {
                    student_num: <string> //학번
                    count: <int> //방문자 수
                }
            ]
            //당일별 groupby인지라 방문한 학번들만 반환됨.
            //+비로그인자는 guest 로 표시됨.
        }
}

디바이스 입력

GET https://soojle.io/insert_device/<string:device>

Path Parameters

Name
Type
Description

device

number

device_pc device_mobile device_tablet 이 셋중 하나를 입력해야함.

1. 성공
{
    result = "success"
}

디바이스 통계 반환

GET https://soojle.io/get_device

1. 성공
{
    result = "success"
    pc = <int>
    tablet = <int>
    mobile = <int>
}
PreviousAPI 목록NextAuth API

Last updated 5 years ago

Was this helpful?