Skip to content

2023년 1학기 공개SW프로젝트01 1조 전과6범입니다.

Notifications You must be signed in to change notification settings

rladpskoa/2023-1-OPPS1-criminal6-01

 
 

Repository files navigation

2023-1-OSSP1-전과6범-01

2023년 1학기 공개SW프로젝트01 1조 전과6범입니다.

About Team


이름 학과 역할 개인 레포
이하늘 컴퓨터공학과 팀장, Backend https://github.com/cie10
김예나 컴퓨터공학과 Backend https://github.com/rladpskoa
박서연 컴퓨터공학과 Backend https://github.com/LucaSeoyoun
박선유 컴퓨터공학과 Backend https://github.com/sunyu0216
이준희 컴퓨터공학과 Frontend https://github.com/l2zh
최지현 컴퓨터공학과 Backend https://github.com/ch8930

1. 프로젝트 주제

기존의 방탈출 메이트 매칭 App 고도화

2. 기술스택 & Workflow




3. 개선사항

(1) 알고리즘의 고도화

새로운 알고리즘 다이어 그램

KakaoTalk_20230619_151026083

기존 프로젝트의 알고리즘 다이어그램을 최대한 유지하되

추가적으로 장르와 난,공,활에 해당하는 property 유사도 결과값 처리 과정을 개선하여주었다.

- 장르 유사도 할당 과정

genre_mapping = {
    'Adventure': 0,
    'Comedy': 1,
    'Fantasy': 2,
    'Romance': 3,
    'Thriller': 4,
    'Drama': 5,
    'Horror': 6,
    'Sci-fi': 7,
    'Mystery': 8,
    'Action': 9
}

genre_similarity=[[1,0,0.6604,0,0,0,0,0.5007,0,0.7116],
[0,1,0,0.3459,0,0,0,0,0,0],
[0.6604,0,1,0,0,0,0.042,0.1507,0.0503,0.1823],
[0,0.3459,0,1,0,0.2879,0,0,0,0],
[0,0,0,0,1,0,0.6037,0.2711,0.7465,0.4714],
[0,0,0,0.288,0,1,0,0,0.0855,0]
[0,0,0.042,0,0.6037,0,1,0.365,0.3394,0],
[0.5007,0,0.1507,0,0.2711,0,0.365,1,0.0564,0.6076],
[0,0,0.0503,0,0.7465,0.0855,0.3394,0.0564,1,0],
[0.7116,0,0.1823,0,0.4714,0,0,0.6076,0,1]
]

위의 배열은 장르-장르간 유사도를 저장한 10*10 크기의 배열

1. 사용자와 각 방의 장르에 해당하는 숫자로 mapping
2.사용자의 장르에서 mapping된 숫자가 행의 값, 방으로부터 mapping된 숫자가 열의 값
3. 사용자-방간의 genre_similarity 할당

- 난이도, 공포도, 활동성 유사도 할당 과정

  • 난이도, 공포도, 활동성의 경우 기존의 일치 판단 여부에서 유클리드 거리 를 통해서 유사도를 측정함
  • 유클리드 거리의 경우 사용자-방간의 난,공,활 property가 유사할수록 0에 가까우며 유사하지 않을수록 값이 커진다.
  • 1/(1+유클리드 거리)를 통해서 두 데이터간 유사도에 따라 0-1 사이의 값이 부여된다.

정량적 성능평가

  • 데이터간 중복 정도를 나타낼 수 있는 지표인 지니 계수(Gini coefficient)를 통해 기존 알고리즘대비 개선 알고리즘의 성능평가를 실시함

테스트 케이스 결과

  • 정량적 평가 결과
    • 테스트 케이스및 지니 계수 결과 엑셀 파일의 경우 깃허브에 업로드 되어 있음 정량적 평가

(2)백엔드 수정 및 개선 사항

추천 알고리즘의 위치를 프론트에서 백엔드로 이동 image

데이터베이스 ERDiagram
데이터베이스 ERD

- 빠른 프로세싱 속도로 데이터 처리와 성능을 향상
- 알고리즘 유지 보수성 개선
- 알고리즘의 유연성과 확장성을 높임

(3)프론트엔드 수정 및 개선 사항

수정사항 (매칭 알고리즘에 영향을 미치는 오류들을 고침)

- 캘린더 날짜 선택 오류
- 방찾기 진행 시 앱 비정상 종료      
- 활동성 선택 항목 부분 오류

개선사항 (사용자 친화적 UI/UX)

기존 UI/UX 개선 UI/UX 추가 레이아웃 (매칭 실패시 화면)
image image image

서버통신

-api 명세서를 토대로 Retrofit2 라이브러리 사용하여 기능별로 서버통신 구현 (서버통신 pr 올려놓았습니다.)


4. SW 개발 보안

HTTPS 웹 보안 서버주소 감추기 사용자 정보 보안 강화
image
image
image image
설명 설명 설명
AWS가 제공하는 ACM 서비스로 인증서 발급​

Application load balancer 생성 후 이를 routing하는 레코드 추가 생성
서버 주소를 local.properties에 두어​ 서버 주소가 노출되는 것 방지​ 프론트엔드에 모두 저장되어 있던 추천 알고리즘을 ​백엔드에 저장해 유지보수 및 보안 강화​​

5. 시연 영상

방찾기 및 채팅방 입장 시연영상

default.mp4

방 생성 시연영상

default.mov

방 찾기 시 매칭될 방 없을때 시연영상

default.mov

6. 노션 링크

Notion


About

2023년 1학기 공개SW프로젝트01 1조 전과6범입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 96.3%
  • C 1.1%
  • JavaScript 0.8%
  • HTML 0.6%
  • CSS 0.3%
  • Kotlin 0.3%
  • Other 0.6%