-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
54ce7c5
commit 19ed677
Showing
1 changed file
with
78 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
|
||
![숏캡 썸네일](https://github.com/user-attachments/assets/4c40e92d-38a2-4363-bf7b-a5dd250b3514) | ||
|
||
|
||
# 📲 About ShortCap | ||
|
||
> 2024학년도 홍익대학교 컴퓨터공학과 창직종합설계프로젝트 | ||
대학생 IT 연합동아리 코테이토 9기 프로젝트 | ||
개발 기간 : 2024.03 ~ 2024.08 | ||
> | ||
<aside> | ||
💡 기존의 숏폼 플랫폼에서 제공하는 ‘저장하기’ 기능은 단순히 숏폼의 썸네일만을 나열하여 보여주며 분류, 검색과 같은 사용자 친화적인 기능을 제공하지 있지 않습니다. 이로 인해 사용자는 저장했던 영상 중 원하는 영상을 찾기 위해 무한정 스크롤을 내리며 영상들을 일일이 확인해야합니다. | ||
|
||
이러한 불편함을 해소시켜주기 위해 사용자가 저장한 숏폼을 자동으로 요약 및 분류해주는 ‘숏폼 동영상 자동 요약 및 분류 앱’, `숏캡(ShortCap)`을 개발하게 되었습니다. | ||
|
||
</aside> | ||
|
||
# Tech Stack | ||
|
||
### Backend | ||
|
||
![Untitled](readme%20md%20f2c3eea381f94c79a236eb251786d906/Untitled.png) | ||
|
||
### DB | ||
|
||
![Untitled](readme%20md%20f2c3eea381f94c79a236eb251786d906/Untitled%201.png) | ||
|
||
### Infra | ||
|
||
![Untitled](readme%20md%20f2c3eea381f94c79a236eb251786d906/Untitled%202.png) | ||
|
||
### Dev/Ops | ||
|
||
![Untitled](readme%20md%20f2c3eea381f94c79a236eb251786d906/Untitled%203.png) | ||
|
||
# 아키텍처 | ||
|
||
![Frame 1.png](readme%20md%20f2c3eea381f94c79a236eb251786d906/Frame_1.png) | ||
|
||
- 크게 스프링 애플리케이션, 파이썬 애플리케이션이 존재합니다. | ||
- 스프링 애플리케이션은 클라이언트와의 통신을 담당합니다. | ||
- 파이썬 애플리케이션은 숏폼의 요약을 담당합니다. | ||
- 컨테이너 기반으로 작동되는 여러 컴포넌트들의 관리의 위해 Docker Compose를 사용했습니다. | ||
|
||
## Key Features | ||
|
||
### 숏폼 요약 | ||
|
||
- 숏폼을 시청 중 ‘숏캡’으로 공유하여 내보내기하면 해당 숏폼을 자동 요약할 수 있습니다. | ||
- **Asynchronous Request-Reply Pattern**을 적용하여 사용자 경험을 개선하였습니다. | ||
- RabbitMQ를 사용하여 요약을 담당하는 별도의 파이썬 모듈로 영상의 url을 전송합니다. | ||
- url을 전달받은 후 Whisper API를 사용하여 음성을 텍스트로 추출 후 Gpt API를 사용해 요약합니다. | ||
- `json mode`를 활용하여 일관된 응답을 받을 수 있도록 구현하였습니다. | ||
|
||
### 숏폼 상세정보 | ||
|
||
- 숏폼에 대한 상세 정보를 볼 수 있습니다. | ||
- 숏폼에 등장하는 장소에 대한 주소가 존재할 경우, Reverse Geocoding하여 주소에 해당하는 위경도 좌표를 함께 응답합니다. | ||
|
||
### 숏폼 목록 | ||
|
||
- 요약된 숏폼 목록을 카테고리별로 분리하여 볼 수 있습니다. | ||
- 사용자 편의성을 고려하여 ‘전체’ 카테고리에서는 숏폼이 어떤 메인 카테고리로 분류되었는지 보입니다. | ||
- 사용자가 검색한 단어가 숏폼의 제목, 내용, 태그, 주소 등에 존재할 경우 나타나게 구현했습니다. | ||
- 사용자가 삭제한 숏폼 요약을 일정 기간내에 복구할 수 있도록, 요약 삭제를 soft delete로 구현했습니다. | ||
|
||
### 숏폼 통계 | ||
|
||
- 사용자가 지금까지 또는 일정 기간동안 저장했던 숏폼의 통계를 보여줍니다 | ||
- 상위 2위 메인 카테고리와 비율을 보여주며, 저장한 메인 카테고리가 1개 이하일 경우에도 그에 맞게 결과를 반환합니다. | ||
|
||
# 백엔드 팀원 | ||
|
||
| 김민욱 | 박윤하 | | ||
| --- | --- | | ||
| 프사 | 프사 | | ||
| 깃허브 주소1 | 깃허브 주소2 | |