"Vision"의 두 판 사이의 차이
(→이론적 계산 및 시뮬레이션) |
(→1. AUTO_ENCODER) |
||
264번째 줄: | 264번째 줄: | ||
◇ auto_encoder 모델이 위의 특성을 가지고 있어 auto_encode 기본 모델(AUTO_ENCODER)과 간단하면서도 성능이 좋은 모델(EASE)을 선정하였다.<br> | ◇ auto_encoder 모델이 위의 특성을 가지고 있어 auto_encode 기본 모델(AUTO_ENCODER)과 간단하면서도 성능이 좋은 모델(EASE)을 선정하였다.<br> | ||
=====1. AUTO_ENCODER===== | =====1. AUTO_ENCODER===== | ||
− | [[ 파일:Image00005.png ]] | + | [[파일:Image00005.png]] |
===상세설계 내용=== | ===상세설계 내용=== |
2023년 6월 24일 (토) 00:04 판
프로젝트 개요=
기술개발 과제
국문 : 코테고리 서비스 - 알고리즘 유형분류 퀴즈 및 문제 추천 서비스
영문 : Cotegory Service - Algorithm type classification quiz and problem recommendation sevice
과제 팀명
Vision
지도교수
황*수 교수님
개발기간
2023년 3월 ~ 2023년 6월 (총 4개월)
구성원 소개
서울시립대학교 컴퓨터과학부 20189200** 류*욱(팀장)
서울시립대학교 컴퓨터과학부 20179200** 김*
서울시립대학교 컴퓨터과학부 20184300** 김*철
서울시립대학교 컴퓨터과학부 20189200** 임*욱
서울시립대학교 컴퓨터과학부 20189200** 한*한
서론
개발 과제의 개요
개발 과제 요약
◇ 사용자 수준에 맞춘 알고리즘 문제 유형 분류 퀴즈 제공
◇ 오답률이 높은 문제 유형의 알고리즘 분야 파악 및 문제 추천 기능 제공
◇ 퀴즈 결과를 기반으로 한 프로필 요약 제공
◇ 취업 및 자기계발이 서비스의 주 목적으로 취준생이 주요 타겟층
개발 과제의 배경
◇ IT 분야의 기업에 취업을 희망하는 경우, 다수의 기업이 알고리즘 코딩테스트를 기업의 전형에 포함하고있어, 알고리즘 학습에 대한 수요가 많은 상황이다.
◇ 알고리즘 문제를 읽고 접근방식에 대한 충분한 검토 없이 바로 풀이에 들어가는 사용자가 있다.
개발 과제의 목표 및 내용
◇ 알고리즘 대회 또는 코딩테스트를 준비하는 사용자가 쉽게 자신의 알고리즘 역량을 확인하고, 향상시킬 수 있는 웹 플랫폼을 개발한다.
◇ 퀴즈 결과를 통해 요약 프로필을 제공하고 이를 통해 자신의 알고리즘 풀이 능력을 한 눈에 확인할 수 있게 한다.
◇ 퀴즈 결과를 통해 취약한 알고리즘 유형의 문제를 추천하여 자연스럽게 구현까지 이어지게 한다.
◇ 사용자가 서비스를 활용할 수록 알고리즘 풀이에 흥미를 갖게하여 꾸준하게 Cotegory 서비스를 이용할 수 있도록 한다.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
- 전 세계적인 기술현황
내용
- 특허조사 및 특허 전략 분석
- ◇ (주)뤼이드. 인공 지능 학습 기반의 학습 컨텐츠 추천 시스템 및 그것의 동작 방법. 10-2021-0014455. 2021년 2월 2일, 2022년 4월 29일
- ◇ (주)뤼이드. 온라인 학습에서 적응형 사용자 인터페이스를 제공하는 방법 및 장치. 10-2020-0024119. 2020년 2월 27일, 2021년 2월 2일
- ◇ (주)뤼이드. 교육 컨텐츠를 제공하는 방법, 장치 및 컴퓨터 프로그램. 10-2019-0024272. 2019년 2월 28일, 2021년 2월 2일
- 기술 로드맵
시장상황에 대한 분석
- 경쟁제품 조사 비교
- ◇ Baekjoon
- 대표적인 알고리즘 문제 해결 서비스
- 알고리즘 문제를 코드를 작성하여 직접 해결 할 수 있으나 알고리즘 문제에 대한 카테고리를 맞추는 문제는 제공하지 않음.
- 사용자에게 문제를 추천해주는 서비스는 제공해주지 않음.
- 대표적인 알고리즘 문제 해결 서비스
- ◇ Programmers (스킬체크)
- 사용자가 스스로 생각하는 레벨별로 알고리즘 문제를 제공 후 평가해주는 서비스
- 사용자의 코드의 정확성과 효율성을 판단할 수 있음
- 사용자가 스스로 생각하는 레벨별로 알고리즘 문제를 제공 후 평가해주는 서비스
- ◇ Solved.ac (프로필 제공 측면)
- Baekjoon 사이트의 기록을 기반으로 문제와 사용자의 프로필을 제공해주는 서비스
- 사용자의 수준과 문제의 난이도를 파악할 수 있음.
- 직접적인 문제를 풀 수 있는 서비스르 제공해주지는 않음.
- Baekjoon 사이트의 기록을 기반으로 문제와 사용자의 프로필을 제공해주는 서비스
- ◇ 산타 토익
- 사용자가 푼 문제 결과를 기반으로 토익 문제를 추천해주는 영어 공부 서비스
- 첫 12문제의 결과 값을 이용하여 사용자에게 적합한 문제를 추천해준다.
- 토익 시험 응시생을 대상으로 한다.
- 사용자가 푼 문제 결과를 기반으로 토익 문제를 추천해주는 영어 공부 서비스
서비스 타겟 | 추천 서비스 | 문제 제공 서비스 | 프로필 제공 | |
---|---|---|---|---|
백준 | 알고리즘을 해결하고자 하는 사용자 | 존재하지 않음. | 알고리즘 문제 제공 | 간단한 정보 제공 |
solved.ac | 백준을 사용하는 사용자 | 존재하지 않음. | 제공하지 않음 | 사용자 맞춤형 정보 제공 |
programmers | 알고리즘을 해결하고자 하는 사용자 | 존재하지 않음. | 알고리즘 문제 제공 | 간단한 정보 제공 |
산타 토익 | 토익을 준비하는 사용자 | 사용자의 수준에 맞는 문제 추천 | 토익 문제 제공 | 사용자 맞춤형 정보 제공 |
코테고리 | 취업을 준비하는 사용자 | 사용자의 수준에 맞는 문제 추천 | 알고리즘 카테고리 문제 제공 | 사용자 맞춤형 정보 제공 |
- 마케팅 전략 제시
- ◇ 코딩테스트 준비를 시작하려는 취업 준비생들에게 본인의 알고리즘 역량을 쉽게 파악할 수 있는 점 을 강조한다.
- ◇ 기존 서비스에는 존재 하지 않던 "카테고리"를 맞추는 문제를 제공해 준다는 점을 강조한다.
- ◇ 사용자가 어려워하는 유형의 문제를 추천하여 문제 해결에 대한 취약점 개선 가능성을 강조한다.
- ◇ 사용자에게 설문조사를 실시한다.
개발과제의 기대효과
기술적 기대효과
◇ 알고리즘 유형 분석 능력 증진
◇ 취약한 분야의 알고리즘 문제를 추천받을 수 있다
◇ 기업 코딩테스트 대비
경제적, 사회적 기대 및 파급효과
◇ 알고리즘 접근 난이도 하향
◇ 알고리즘 풀이에 대한 흥미 유발
◇ 교육 자료로 활용
기술개발 일정 및 추진체계
개발 일정
기술 로드맵 구성 | 진행 순서 (월단위) | |||
---|---|---|---|---|
3 | 4 | 5 | 6 | |
프로젝트 구상 및 구체화 | ||||
DB 설계 | ||||
UI 설계 | ||||
추천 모델 데이터 수집 및 학습 | ||||
AI 서버 제작 | ||||
API 서버 제작 | ||||
웹 제작 | ||||
설문 조사 | ||||
릴리즈 버전 테스트 |
구성원 및 추진체계
◇ Front-end (류병욱)
UI/UX 프론트 페이지 HTML 작성 Back-end와의 통신코드 작성
◇ Back-end (김준)
mmr시스템 로직 구현 mmr시스템을 통한 Quiz 추천 기업문제 추천
◇ Back-end (김형철)
크롤링 로직 구현 JWT 로그인 구현 어드민 페이지 API 개발 비정상적 문제 검열 로직
◇ Back-end (김준, 김형철 공통)
서비스 로직 API 개발
◇ AI (한수한)
모델 학습 평가 & 비교(EASE, AUTO_ENCODER)
◇ 아마존 배포 (임재욱)
main 머지 시 자동 배포 (CI/CD)
설계
설계사양
제품의 요구사항
◇ R1: 알고리즘 퀴즈를 풀고 이력을 확인할 수 있다.
◇ R2: 취약한 알고리즘 분야에 대한 추천을 받을 수 있다.
◇ R3: 다양한 알고리즘 문제를 추천받을 수 있다.
◇ R4: 요약 프로필을 제공받을 수 있다.
설계 사양
◇ F1:
- 기능: 알고리즘 퀴즈를 하나씩 제공하고 정답 여부가 기록되어 마이페이지에서 제공한다.
- 정량 목표:
- - AI: AUTO_ENCODER 모델을 적용하여 추천 문제를 선별하여 Back-end 서버에 제공한다.
- - Back-end: 알고리즘 퀴즈를 Front-end 서버에 전달하며, 정답 여부를 db에 저장한다.
- - Front-end: Back-end 서버로부터 전달받은 추천 문제와 알고리즘 퀴즈 문제를 화면에 보이고 문제를 풀수 있는 UI를 제공한다.
◇ F2:
- 기능: 유저로부터 전달받은 정보를 활용하여 AI 모델을 통해 적합한 문제를 추천한다.
- 정량 목표:
- - AI: 유저가 취약한 알고리즘 분야의 문제를 추천받고자 하는 경우, AUTO_ENCODER 모델을 적용하여 추천 문제를 선별하여 Back-end 서버에 제공한다.
- - Back-end: 추천 문제를 Front-end 서버에 전달한다.
- - Front-end: Back-end 서버로부터 전달받은 추천 문제를 화면에 보이고 문제를 풀 수 있는 링크또한 제공한다.
◇ F3: 랜덤 문제, 유저가 취약한 알고리즘 분야의 문제, 기업 문제를 추천한다.
- 기능: 유저로부터 전달받은 정보를 활용하여 AI 모델을 통해 적합한 문제를 추천한다.
- 정량 목표:
- - AI: AUTO_ENCODER 모델을 적용하여 추천 문제를 선별하여 Back-end 서버에 제공한다.
- - Back-end: 추천 문제를 Front-end 서버에 전달하며, 오늘의 추천 문제와 기업 문제 또한 Front-end 서버에 전달한다.
- - Front-end: Back-end 서버로부터 전달받은 추천 문제를 화면에 보이고 문제를 풀수 있는 링크 또한 제공한다.
◇ F4: 문제 히스토리와 요약 프로필을 제공한다.
- 기능: 퀴즈 결과와 알고리즘 대분류별 MMR을 제공한다.
- 정량 목표:
- - Back-end: 퀴즈 결과와 알고리즘 대분류별 MMR 점수를 Front-end에 전달한다.
- - Front-end: Back-end 서버로부터 전달받은 데이터를 화면에 보이고 데이터를 가공하여 100점 만점을 기준으로 점수를 보여주며 능력치를 progress bar 형태로 보여준다.
개념설계안
1. EC2 Instance와 Docker Container: EC2 인스턴스에서 Docker를 실행하고, Docker 컨테이너를 생성하여 애플리케이션을 실행합니다.
2. Dockerfile과 Docker Image: Dockerfile은 Docker 이미지를 작성하는데 사용됩니다. Docker 이미지는 애플리케이션과 애플리케이션 실행에 필요한 모든 종속성을 포함하는 실행 가능한 패키지입니다.
- Dockerfile은 총 3개로, 각각 AI, Front-end, Back-end 도메인을 의미합니다.
- Dockerfile은 총 3개로, 각각 AI, Front-end, Back-end 도메인을 의미합니다.
3. Docker Compose.yml과 Docker Compose: Docker Compose는 여러 개의 Docker 컨테이너를 정의하고 관리하는 데 사용되는 도구입니다. Docker Compose.yml 파일은 Docker Compose가 사용하는 설정 파일입니다.
4. AWS S3와 EC2 Instance: EC2 인스턴스는 AWS S3에 접근하여 데이터를 읽거나 쓸 수 있습니다. 이를 통해 EC2 인스턴스와 S3 버킷 간에 파일 공유 또는 데이터 저장 등의 작업이 가능합니다.
5. AWS RDS와 EC2 Instance: EC2 인스턴스는 AWS RDS(Relational Database Service)에 접근하여 데이터베이스에 연결하고 데이터를 읽거나 쓸 수 있습니다. 이를 통해 애플리케이션과 데이터베이스 간의 상호작용이 가능합니다.
6. 현재 Dockerfile, docker-compose.yaml의 내용이 변경된 것은 쉽게 적용이 가능하지만, 프로젝트의 내용이 바뀐 경우도 고려하여 GitHub Actions를 사용하여 CI/CD를 적용하였습니다.
이론적 계산 및 시뮬레이션
AI 추천 모델
◇ 기본적으로 훈련에 쓰인 데이터외의 데이터를 통해서도 문제를 추천해줄 수 있는 모델을 선정하였다.
◇ auto_encoder 모델이 위의 특성을 가지고 있어 auto_encode 기본 모델(AUTO_ENCODER)과 간단하면서도 성능이 좋은 모델(EASE)을 선정하였다.
1. AUTO_ENCODER
상세설계 내용
◇ AI
- Amazon EC2 환경에서 서버 배포
- 모델 성능 비교 및 도메인을 고려하여 모델 선정
- AUTO_ENCODER, EASE 모델 업로드 및 모델 적용을 통한 문제 추천
◇ Back-end
- Amazon EC2 환경에서 서버 배포
- Amazon RDS로 Maria DB 인스턴스 관리
- Front-end에게 필요한 데이터 전달
- - Amazon S3를 활용하여 이미지 리소스 전달
- - Swagger를 활용하여 API 명세서 공유
◇ Front-end
- Amazon EC2 환경에서 서버 배포
- Back-end로부터 전달받은 데이터를 CLIENT에게 전달하며 구현한 화면에 포함시킴
◇ Infra
- AI, Back-end, Front-end 서버를 Docker Compose를 활용하여 배포
- GitHub Actions를 활용하여 CI/CD 적용
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
내용
포스터
내용
관련사업비 내역서
내용
완료작품의 평가
내용
향후계획
내용
특허 출원 내용
내용