시스템 개요
- 영화 취향 설문 form 페이지.
- 설문 결과를 DB에 저장하는 Express.js 기반의 API.
- 취향 유사성 결과를 계산하고 출력하는 관리자 페이지.
역할과 기여
학우들의 개발 능력이 아직 모자라서, 많은 영역에서 기초를 잡아 주었다.
구체적으로, 프로젝트 성공을 위해 내가 수행한 작업은 다음과 같다.
- DB 설계 및 구축. (MariaDB)
- Express.js를 사용한 POST 요청 처리 방법 강의.
- 설문 form 페이지의 초안 구현.
- 취향 유사성 분석 알고리즘 고안.
- PM으로서 작업 일정 관리.
- Linux 서버 구축 및 운용 방법 강의.
작업 시작일은 2024-05-01, 작업 종료일은 2024-05-21.
기술 스택
- HTML/CSS/JS
- React
- Express.js
- CSS Pico
- MariaDB
Source Code
Download
취향 유사성 계산 알고리즘 소개
- 서로가 원하는 성별이 상대방의 성별과 일치하는지 확인. (나이 차이가 5세 이하인 경우만.)
- 영화 장르, 팝콘 종류, 영화 결말에 대하여 1.33, 1.33, 1.0 의 가중치로 '취향 차이 값'을 산출. (이때 '취향 차이 값'은 작을 수록 취향이 가까운 것. 개별 차이는 form에서 전하는 변수 값이 0에서 100 사이의 값으로 지정되어 있으므로, 단순히 뺄셈으로 계산한다.)
(이때 form에 있는 라디오 버튼은, 각 선택지의 유사성에 따라 배치되었다. 예를 들면, 영화 장르의 경우 로맨스==0, 액션==100 으로 두고, 로맨스와 액션 사이에 다섯 가지의 영화 장르를 배치한다.)
- 가장 낮은 '취향 차이 값'을 가진 쌍을 매칭시키고, 목록에서 제거한다.
- 더 이상 매칭이 불가능 할 때 까지 반복한다.
시스템 이미지
다음은 시스템의 일부 모습이다.
Form Page.
Fail Page.
Success Page.