공간을 통해 일상을 연결하는 플랫폼
진행 기간: 2022.10.05 ~ 2022.12.01

- SorHive Unity
- [SorHive BackEnd]
- [SorHive AI]
- 자신의 일상을 담을 수 있는 페이지
Unity(XR) 기술과 사용 이유
- Unity Enterprise
- 전체 UI 및 3D공간
- Photon
- 다중사용자 환경
- Blender
- 아바타 및 프리셋
AI 기술과 사용 이유
-
공간 분류모델 네이버, 구글에서 술집, 노래방, 카페등 공간에 대한 이미지 크롤링후 전처리, 약 12,000개의 데이터셋을 Resnet50모델에 전이학습하여 사용자가 일상의 사진을 올리면 분석하여 그와 맞는 공간에 대한 카테고리를 분류해 준다.
-
아바타 생성모델 사용자의 얼굴 사진으로 아바타를 생성해주는 시스템을 설계하고 구현, 데이터 셋은 https://www.kaggle.com/datasets/niten19/face-shape-dataset를 사용한다. 얼굴이 이미 나누어져 있는 kaggle의 Face Shape Dataset 중 약 2500개를 사용해 눈모양과 눈썹모양을 라벨링 한 후, yolo5로 학습시켰다. yolo5의 detect.py와 data.yaml 수정해 얼굴형, 눈모양, 눈썹모양 별로 모델을 만든 뒤, 각 클래스마다 높은 값을 뽑아내 사용자의 얼굴사진을 분석해 아바타를 만든다.
-
Insightface의 Detection모델 공간분류 모델에 사용될 사용자들의 이미지 데이터의 초상권 보호를 위해 Insightface의 Detection모델인 RetinaFace-10GF를 사용하여 얼굴인식 후 모자이크 처리를 해주는 모델을 만들었다. 모자이크 처리한 데이터셋으로 공간분류 모델을 학습한 결과 성능의 차이는 없었고, 이후에도 사용자들에게 사진을 받으면 Insightface의 Detection모델을 거쳐 모자이크 처리되어 초상권이 보호된 데이터셋으로 활용할 계획이다.
-
추천 시스템 사용자 기반 협업 필터링을 통해 사용자 간 친밀도를 측정해 잠재적인 관계가 가깝지만 아직 팔로워 하지 않은 사용자를 추천해 주는 시스템을 설계하고 구현. 친구 친밀도 도출 시스템은 사용자에게 얼마나 관심이 많은지 클릭해서 본 빈도(룸인, 라이핑, 채팅 등)등 사용자 행동 양식을 수집하여 얼마나 친밀한지 판별하고, 이를 토대로 사용자에 대해 친밀도 순위를 결정한다.
Backend(NET) 기술과 사용 이유
- SpringBoot
- 자바 기반의 웹 어플리케이션을 만들 수 있는 프레임워크인 스프링을 더 쉽게 사용할 수 있어서 사용
- JPA
- 객체와 관계형 데이터베이스를 매핑하여 데이터베이스에 대한 의존성을 줄이고 생산성을 높이고 유지보수 향상, 성능 등의 장점 때문에 사용
- AWS RDS - MySQL
- 정규화를 통해 데이터의 일관성과 무결성을 확보하기 위해 사용
- MongoDB - Atlas
- 방대한 데이터 처리, 수정 필요없는 데이터들만 저장하여 빠르게 조회가 가능해서 사용
- AWS S3
- 이미지 저장, 호스팅, 뛰어난 보안성 때문에 사용
-
- 클라우드 환경의 가상 서버를 구축하기 위해 사용
-
- 서버에서 개발된 웹 애플리케이션 및 서비스를 간단하게 배포하려고 사용한 서비스
- 로드밸런싱, 오토스케일링 기능 함께 사용
-
- ACM 과 ElasticBeanstalk 를 연결하여 사용
- Domain은 sorhive.shop 을 통해 접속 가능
-
- 로드밸런서에 SSL 인증서를 연결하여 사용
- HTTP에 SSL 인증서를 사용하여 더 안전한 보안용 프로토콜인 HTTPS를 통해 더 안전한 SNS를 위해 사용
- Spring Security
- 스프링 어플리케이션의 보안을 담당하는 스프링 하위 프레임 워크이고, 인증과 권한 부분을 담당
- JsonWebToken과 함께 사용하여 보안성은 떨어지지만 토큰 기반으로 접근을 통제
- Spring Batch
- 스프링 어플리케이션에서 일괄적인 데이터 처리를 담당하는 스프링 하위 프레임워크
- 메인 서버의 부하를 줄이기 위해 사용
- 라이핑(스토리)의 특성인 24시간 이후 안보이게 하는 기능
- 추천배열(AI에 회원 * 회원에 대한 데이터를 통해 받아온 코사인 유사도 기반 추천 정렬)을 받아오고 몽고 DB에 저장하는 기능 2 가지를 위해서 사용
- Spring-Boot-Starter-Mail
- 이메일 처리를 하기 위해 사용










