Skip to content

💻 인공지능을 활용한 알고리즘 복습 서비스 re:code

Notifications You must be signed in to change notification settings

team-SSAYFclover/re-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍀나만의 작은 알고리즘 복습 서비스, re:code

  • 삼성 청년 SW 아카데미(SSAFY) 10기 자율 프로젝트
  • 구미 2반 10팀 : 팀 SSAYFclover
  • 2024.04.08. ~ 2024.05.20.
  • 프로젝트 노션

Hits

목차

  1. 웹 서비스 소개
  2. 기술 스택
  3. 시스템 구조
  4. 주요 기능
  5. 서비스 화면
  6. 운영 과정
  7. 팀원 소개
  8. 디렉터리 구조
  9. 산출물

✨ 웹 서비스 소개

re:code는 사용자가 등록한 알고리즘 문제 코드를 기반으로, 등록한 코드에 대해 AI를 사용하여 해당 코드의 주요 로직을 분석하고 주기적으로 해당 코드에 빈칸을 제공함으로써, 사용자에게 해당 알고리즘을 상기시키고 스스로 점검을 가능하게하여 사용자의 알고리즘 학습을 돕는 서비스입니다.


🛠️ 기술 스택

🎨 FrontEnd

💾 BackEnd

💻 Infra

💬 Cooperation


⚙️ 시스템 구조



💡 주요 기능

기능내용
문제 등록 re:code 크롬 익스텐션을 다운로드하고 서비스와 연동하여 온라인 저지 사이트 백준에서 자신이 맞춘 문제를 re:code 서비스에 등록할 수 있습니다.
리마인드 알림 re:code 서비스에서 해당 날 복습할 문제가 있다면 사용자에게 알림을 전송합니다.
사용자 설정 사용자는 알림 전송 시간, 복습 난이도 설정을 변경할 수 있습니다.
복습 리스트 등록 사용자가 re:code 서비스에 등록한 코드를 대상으로 1일 뒤, 3일 뒤, 일주일 뒤 간격으로 복습리스트에 해당 코드의 복습 문제를 등록합니다.
문제 풀기 복습 리스트에 등록된 문제를 풀 수 있습니다. 각 복습 문제를 완료할 때마다 사용자의 네잎클로버가 성장하고 통계량이 증가합니다.
문제 조회 사용자가 re:code 서비스에 등록한 문제와 코드를 조회할 수 있습니다.
복습 등록 사용자가 등록한 코드를 복습 리스트에 등록하여 복습할 수 있습니다.

🖥️ 서비스 화면

re:code 메인 화면

  • re:code에서 제공하는 다양한 통계를 확인할 수 있습니다.

Untitled


시작 가이드

  • 직관적이고 사용자 친화적인 서비스 이용 가이드 제공

Untitled


사용자 설정 변경

  • 알림 수신 설정, 시간 설정, 복습 난이도 설정을 변경할 수 있습니다.

Untitled


크롬 확장 프로그램을 통한 문제 생성

  • 크롬 웹 스토어에 등록된 확장 프로그램 다운 가능
  • 백준 사이트에서 자신이 맞춘 문제의 코드를 가져와 문제 생성

Untitled


리마인드 알림

  • 복습리스트에 풀 문제가 있다면 사용자가 설정한 시간대에 알림을 받을 수 있습니다.

Untitled


문제 조회

  • 등록한 코드와 문제를 조회
  • 알고리즘, 난이도 등 다양한 검색 기능

Untitled


문제 풀기

  • 등록한 코드에 ai를 통한 빈칸을 생성

Untitled


🧐 운영 과정

주요 서비스 API 성능테스트

동시접속자 100명, 각 사용자 요청횟수 10회를 기준으로 함

APITPS응답시간 평균응답시간 표준편차
레코드 가져오기(GET) 89.9/sec 801/ms 286/ms
레코드 복습완료(PUT) 117.8/sec 550/ms 199/ms
메인화면 통계 조회(GET) 159.6/sec 344/ms 164/ms
오늘의 복습문제 갯수 조회(GET) 160/sec 21/ms 11/ms
랜덤문제 업데이트(PATCH) 95/sec 351/ms 178/ms
보충문제 업데이트(PATCH) 90/sec 381/ms 162/ms
오늘의 복습문제 조회(GET) 107.6/sec 262/ms 134/ms
사용자 문제조회(GET) 126.2/sec 498/ms 195/ms
문제 상세 조회(GET) 289.3/sec 57/ms 20/ms
코드 삭제(DELETE) 293.6/sec 61/ms 21/ms
코드 수정(PATCH) 306.9/sec 25/ms 13/ms
코드 등록(POST) 238.5/sec 155/ms 74/ms
사용자 정보 조회(GET) 109.1/sec 271/ms 127/ms

지속적인 메트릭, Error 로그 모니터링


## 🧑‍🤝‍🧑 팀원 소개
정경리
@gyeongri
이승준
@tmdwns7809
배성연
@bae2019
전찬혁
@ChaNyeok1225
이수화
@rosielsh
오은아
@eunalove
Leader, BE BE, Infra FE BE, FE, Extention FE BE, Infra

📁 디렉토리 구조

FrontEnd

📁 SRC
├─apis
├─assets
│  ├─clover
│  │  └─star
│  │      ├─css
│  │      └─scss
│  ├─guide
│  ├─lotties
│  └─tier
├─components
│  ├─@common
│  ├─alarm
│  ├─home
│  │  └─cloverbgComp
│  ├─login
│  ├─my
│  ├─problem
│  └─recode
│      ├─Modal
│      └─Tooltip
├─hooks
│  ├─@common
│  ├─alarm
│  ├─home
│  ├─problem
│  ├─recode
│  └─user
├─mocks
│  └─api
│      ├─data
│      └─handlers
├─pages
│  ├─error
│  ├─guide
│  ├─home
│  ├─private
│  ├─problem
│  ├─recode
│  └─redirect
├─services
│  ├─alarm
│  ├─home
│  ├─problem
│  ├─recode
│  └─user
├─stores
├─types
│  └─model
└─utils

BackEnd

📁 MAIN
├─java
│  └─com
│      └─clover
│          └─recode
│              ├─domain
│              │  ├─auth
│              │  │  ├─dto
│              │  │  └─service
│              │  ├─fcmtoken
│              │  │  ├─entity
│              │  │  ├─repository
│              │  │  └─service
│              │  ├─problem
│              │  │  ├─controller
│              │  │  ├─dto
│              │  │  ├─entity
│              │  │  ├─repository
│              │  │  └─service
│              │  ├─recode
│              │  │  ├─controller
│              │  │  ├─dto
│              │  │  │  ├─code
│              │  │  │  ├─gpt
│              │  │  │  └─prompt
│              │  │  ├─entity
│              │  │  ├─repository
│              │  │  └─service
│              │  ├─statistics
│              │  │  ├─controller
│              │  │  ├─dto
│              │  │  │  └─response
│              │  │  ├─entity
│              │  │  ├─repository
│              │  │  ├─scheduler
│              │  │  └─service
│              │  └─user
│              │      ├─controller
│              │      ├─dto
│              │      ├─entity
│              │      ├─repository
│              │      └─service
│              └─global
│                  ├─config
│                  ├─jwt
│                  ├─oauth
│                  ├─redis
│                  └─result
│                      └─error
│                          └─exception
└─resources

산출물