Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ziiyouth authored Jun 5, 2024
1 parent 120a0d2 commit 0342e82
Showing 1 changed file with 138 additions and 0 deletions.
138 changes: 138 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,141 @@
<img src="https://img.shields.io/github/issues-closed-raw/Ha-dam/hadam-backend-spring?color=176842">
</div>

![표지](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/0a4549f3-d2a0-4cb4-b960-56830916e305)


## ✍🏻 프로젝트 개요
> 2023-2024 가천대학교 졸업작품 5조
바쁜 삶에서 일기를 매일매일 기록하기란 쉽지 않습니다.

이러한 어려움을 겪는 사람들을 위해, 하담은 간단한 키워드 입력으로 생성형 AI를 이용해 일기를 생성하고,

생성형 이미지를 통해 시각적으로도 하루의 기록을 담아주는 서비스입니다.

<br />

## ✨ 팀원 소개
<div align="center">

| [**박지영(ziiyouth)**](https://github.com/ziiyouth)|
| :--------: |
| <img src="https://github.com/ziiyouth.png" width="200px"/> |
| **🚀 Back-end Developer** |

</div>

## 📔 핵심 기능

### 소셜 로그인 기능
> 카카오톡 소셜 로그인을 통해 간편한 회원가입이 가능합니다.
![개발핵심기능 1](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/ad871630-13c7-4751-9b46-63890006fe96)

### 일기 생성 기능
> 날짜, 시간, 장소, 사람, 감정, 경험을 키워드 형식으로 간편하게 입력받아 gpt 모델을 이용한 일기를 생성합니다.
![개발핵심기능 2-1](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/2f90f758-7b97-407c-bebb-fb0d5b6f6168)
![개발핵심기능 2-2](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/beca8e11-ddde-41b7-ace0-baf976d9f6fb)


### 일기에 어울리는 이미지 생성 기능
> 작성된 일기에 어울리는 생성형 이미지를 볼 수 있습니다.
![개발핵심기능 2-3](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/c9898e4b-1854-434e-816e-173f1dbedbd3)

### 날짜별 조회 기능
> 달 별 대표 일기를 메인 화면에서 슬라이드 형식으로, 일 별 일기를 원하는 정렬 순으로 검색하고 조회할 수 있습니다.
![개발핵심기능 3](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/66321154-9e89-41bf-aed7-a8497d7cf8e9)


### 일기 재발견 기능
> 달력을 통해 N년 전 나의 하루를 돌아볼 수 있고, 현재 나의 감정을 통해 오늘과 비슷한 과거의 일기를 조회할 수 있습니다.
![개발핵심기능 4-2](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/751a469b-2a7f-4491-ba50-8f08b7ac53ab)

### 일기 좋아요 기능
> 모아보고 싶은 일기에 좋아요를 눌러 별도로 보관할 수 있습니다.
![개발핵심기능 4-1](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/9b76ee1e-caf0-46e9-833b-bdbee5d73cf2)

### 마이페이지 기능
> 자신의 정보를 설정할 수 있습니다.
![개발핵심기능 5](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/e2a59349-1c7d-4b7c-b881-922bf5d53e0d)


## 🍪 기술 스택
### 🖥 Backend

|역할|종류|
|-|-|
|Framework|<img alt="RED" src ="https://img.shields.io/badge/SPRING-6DB33F.svg?&style=for-the-badge&logo=Spring&logoColor=white"/> <img alt="RED" src ="https://img.shields.io/badge/SPRING Boot-6DB33F.svg?&style=for-the-badge&logo=SpringBoot&logoColor=white"/>|
|Database|<img alt="RED" src ="https://img.shields.io/badge/Mysql-003545.svg?&style=for-the-badge&logo=Mysql&logoColor=white"/>|
|Database Service|<img alt="RED" src ="https://img.shields.io/badge/Amazon Rds-527FFF.svg?&style=for-the-badge&logo=AmazonRds&logoColor=white"/>|
|Programming Language|<img alt="RED" src ="https://img.shields.io/badge/JAVA-004027.svg?&style=for-the-badge&logo=Jameson&logoColor=white"/>|
|API|![REST](https://img.shields.io/badge/Rest-4B3263?style=for-the-badge&logo=rest&logoColor=white)
|Version Control|![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white) ![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white) |
|CICD|<img src="https://img.shields.io/badge/Docker-2496ED?&logo=Docker&style=for-the-badge&logoColor=white"> <img src="https://img.shields.io/badge/GitHub Actions-000000?logo=github-actions&style=for-the-badge">|
<br />


### 🖥 Common
|역할|종류|
|-|-|
|협업 관리|<img alt="RED" src ="https://img.shields.io/badge/Notion-000000.svg?&style=for-the-badge&logo=Notion&logoColor=white"/> |
|디자인|<img alt="RED" src ="https://img.shields.io/badge/Figma-F24E1E.svg?&style=for-the-badge&logo=Figma&logoColor=white"/>|
|소통|<img src="https://img.shields.io/badge/Discord-5865F2?logo=Discord&style=for-the-badge&logoColor=ffffff">

<br />

## 🦾 시스템 아키텍처

### 📂 폴더 구조
```
📂 src
┣ 📂 java.com.hadam.hadam
┃ ┣ 📂 domain
┃ ┃ ┣ 📂 sample
┃ ┃ ┃ ┣ 📂 controller
┃ ┃ ┃ ┣ 📂 domain
┃ ┃ ┃ ┣ 📂 dto
┃ ┃ ┃ ┃ ┣ 📂 request
┃ ┃ ┃ ┃ ┣ 📂 response
┃ ┃ ┃ ┣ 📂 service
┃ ┃ ┃ ┣ 📂 repository
┃ ┣ 📂 global
┃ ┃ ┣ 📂 common
┃ ┃ ┣ 📂 check
┃ ┃ ┣ 📂 error
┃ ┃ ┃ ┣ 📂 dto
┃ ┃ ┃ ┣ 📂 exception
┃ ┃ ┃ ┣ 📂 handler
┃ ┃ ┣ 📂 external
┣ 📂 resources
┃ ┣ application.yml
┣ HadamApplication.class
```

<br />

### 📂 아키텍처 구조
![아키텍처](https://github.com/Ha-dam/hadam-backend-spring/assets/101448999/57feb74d-d64d-46f2-b52a-bb2a1c7fc8f9)

- 안드로이드와 EC2 내에 올라간 서버가 Restful API를 통해 통신합니다.
- 스프링과 fast api 서버가 같은 RDS에 접속하게 되며, mysql 기반의 DB를 사용합니다.
- 일기 생성에 대한 request가 들어올때는 fast api 서버를 통해 모델이 작동하게 됩니다.
- 일기의 글은 GPT를, 이미지는 Stable Diffusion을 통해 생성한 뒤 s3에 업로드하여 사용하게 됩니다.

- 백엔드 서버는 자바17 기반의 스프링부트3을 이용해 개발했습니다.
- 스프링 데이터 JPA를 사용해 객체-관계 매핑의 장점을 살리고 UI 디자인을 기반으로 한 ERD를 구상했습니다.
- 이로 RESTful한 API를 개발하며 트랜잭션 관리로 DB 작업에 대한 일관성을 보장했습니다.
- 깃허브 액션과 도커 컴포즈를 사용해 CICD를 구축하고 블루-그린 무중단 배포를 구현하였습니다.

<br />

### 📢 실행 방법
1. git clone을 진행한다.
2. resources 폴더에 application.yml을 추가한다.
3. build/libs 디렉터리로 이동해 java -jar hadam-0.0.1-SNAPSHOT.jar 명령어를 실행한다.

0 comments on commit 0342e82

Please sign in to comment.