Skip to content

Latest commit

 

History

History
264 lines (197 loc) · 14.1 KB

README.md

File metadata and controls

264 lines (197 loc) · 14.1 KB

💡 알고리즘 문제 추천 및 취약점 분석 서비스 ALGOPULZA 💡

1일 1알고리즘을 하는데 매일 무슨 문제를 풀지 모르겠는 A양
부족한 알고리즘 역량이 무엇인지 궁금한 B군
실력에 맞는 문제를 풀고싶은 C양


Algopulza를 통해 내 실력에 맞는 문제를 추천받고
내 실력을 분석해보아요~!

막 풀지 말고 ❌ 알고 풀자❗️


📎  프로젝트 목차



1️⃣ 프로젝트 소개

📆  일정 : 22.04.11 - 22.05.20 (총 6주)


👨‍👨‍👦‍  인원 (총 5인)

🧑 박상현 : 팀장, Frontend

🧑 강동원 : Frontend, Data Analysis

🧑 장준범 : Frontend

👩 김혜지 : Backend, Server

👩 이민정 : Backend


🎨  컨셉 : 차분한 느낌을 주는 흑색계열의 색을 메인컬러로 사용 / 눈에 띄는 노란색을 포인트컬러로 사용

  • 메인컬러1 : #FDC33E (로고, 버튼, 글씨색 등)

  • 메인컬러2: #282828 (버튼, 배너, nav바 등)

  • 컬러1 : #FFFFFF (배경, 글씨 색 등)

  • 컬러2 : #AD5600, #435F7A, #EC9A00, #27E2A4, #00B4FC, #FF0062, #444444 (카드 배경)

  • 컬러3 : #FFC94D, #FFFFFF, #F4F4F4, #FFCF62 (분석 버튼)


‼️ 기획 배경

  • 알고리즘 문제 뭐 풀지 고민하는데 소요되는 시간 아까움

  • 실력에 맞는 문제를 풀고 싶음

  • 현재 내 알고리즘 실력을 분석받고 싶음


⚙️ 주 기능

  • 백준 사이트 알고리즘 문제 리스트 + 검색 기능

  • 많이 푼 주요유형 문제 추천

  • 적게 푼 주요유형 문제 추천

  • 풀었던 문제 랜덤 추천

  • 유사티어유저가 푼 문제유형 추천

  • 실력에 맞는 문제 랜덤 추천

  • 전체 문제 중 랜덤 추천

  • 태그별 문제 랜덤 추천

  • 취약점 및 태그별 해결 문제 그래프로 시각화


🧐  추천 알고리즘

  • 많이 푼 주요유형 문제 추천
    1. 8개 문제 유형을 주요 유형으로 지정
    2. 문제유형 선택
      • 8개 주요유형 중 유저가 많이 푼 유형 4개 선택
    3. 해결여부 필터링
      • 해당 유형 문제 중 이미 해결한 문제 제외
    4. 난이도 필터링
      • 해결한 문제들의 평균 난이도 계산
      • 해당 난이도와 비슷한 난이도를 가진 문제 필터링
    5. 문제추천
      • 필터링된 문제 중 랜덤으로 5개 추천

  • 적게 푼 주요유형 문제 추천
    1. 8개 문제 유형을 주요 유형으로 지정
    2. 문제유형 선택
      • 8개 주요유형 중 유저가 적게 푼 유형 4개 선택
    3. 해결여부 필터링
      • 해당 유형 문제 중 이미 해결한 문제 제외
    4. 난이도 필터링
      • 해결한 문제들의 평균 난이도 계산
      • 해당 난이도와 비슷한 난이도를 가진 문제 필터링
    5. 문제추천
      • 필터링된 문제 중 랜덤으로 5개 추천

  • 풀었던 문제 랜덤 추천
    • 유저가 해결한 문제 조회
    • 문제 추천
      • 조회된 문제 중 랜덤으로 5개 추천

  • 유사티어유저가 푼 문제유형 추천
    • 협업 필터링 기반 추천
    1. 하루 한번 티어별 모델 생성 후 추천 데이터 MongoDB 저장
      • 해당 티어 내 유저가 2명인 이하인 경우 제외
      • 해당 티어 내 풀이기록에 1명의 유저 기록밖에 없는 경우 제외
      • 풀이기록이 10개 미만인 유저 제외
    2. 문제추천
      • 유저 티어에 해당하는 모델에서 추천 정보 획득
      • 랜덤으로 5개 추천

2️⃣  기술 스택

Communication

Frontend

Backend

BigData

CICD

상세 기술스택 및 버전
구분 기술스택 버전
이슈관리 Jira -
형상관리 Gitlab -
커뮤니케이션 Mattermost -
Gathertown -
Notion -
Figma -
OS Window10 -
Mac -
IDE IntelliJ -
Visual Studio Code 1.67.1
Frontend HTML5 -
CSS3 -
TypeScript 4.6.3
Next.js 12.1.5
React 18.0.8
Recoil 0.7.2
styled-components 5.3.5
apexcharts 3.35.0
slick-carousel 1.8.1
mui/material 5.6.3
Backend Java 11
SpringBoot 2.6.x
Swagger 3.x.x
QueryDsl-JPA 5.x.x
JWT 0.9.
Lombok -
Security 2.5.5
Validation 2.6.2
AWS 2.2.6
Gradle 7.4.2
BigData Python 3.9.6
Flask 2.1.1
Numpy 1.22.3
Pandas 1.4.2
Scikit-learn 1.0.2
Scipy 1.8.0
Sklearn 0.0
Database MySQL Workbench 8.0.x
Mongo DB -
AWS S3 -
AWS RDS -
CI/CD AWS EC2 -
Jenkins -
Docker -
Ngnix -

3️⃣  파일 구조


4️⃣  산출물


5️⃣  프로젝트 빌드