Skip to content

Commit

Permalink
Merge pull request #202 from TravelLaboratory/dev
Browse files Browse the repository at this point in the history
배포 [리드미 작성 및 수정]
  • Loading branch information
k9want authored Nov 26, 2024
2 parents 64e7083 + f5cc2de commit df79272
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
[![CI (feat. Java CI with Gradle)](https://github.com/TravelLaboratory/travel-laboratory-was/actions/workflows/ci.yml/badge.svg)](https://github.com/TravelLaboratory/travel-laboratory-was/actions/workflows/ci.yml)
[![Deploy to Production](https://github.com/TravelLaboratory/travel-laboratory-was/actions/workflows/main-deploy.yml/badge.svg)](https://github.com/TravelLaboratory/travel-laboratory-was/actions/workflows/main-deploy.yml)

![20240905_170038](https://github.com/user-attachments/assets/0b35cbf0-4099-4662-8508-fad514e19d0f)
## 📑 Introduction
Trablock은 사용자가 여행 계획을 작성하고 리뷰를 추가하며 이를 다른 사용자들과 공유할 수 있는 여행 계획 및 일정 공유 플랫폼입니다. 이 플랫폼을 통해 여행자들은 자신의 여행 경험을 기록하고, 다른 사용자들과 소통하며 여행 정보를 나눌 수 있습니다.

Trablock이라는 이름은 Travel과 Block의 합성어로, 사용자가 개별 일정들을 마치 블록처럼 조립하여 하나의 완성된 여행 계획을 만드는 것을 의미합니다.

## ⭐ Architecture
![트래블록 아키텍처](https://github.com/user-attachments/assets/dd77f494-9593-4c16-9bfe-3a913df92016)
![모니터링서버 구축](https://github.com/user-attachments/assets/661f70f6-d2b3-4048-8b9d-09a1ea732d51)

## 🛠 Backend Tech Stack

Expand All @@ -19,6 +22,7 @@ Trablock이라는 이름은 Travel과 Block의 합성어로, 사용자가 개별
- **배포:** AWS EC2
- **CI/CD:** GitHub Actions, AWS CodeDeploy
- **성능 테스트:** nGrinder
- **모니터링:** Prometheus, Grafana


## 🧶 What I learn
Expand All @@ -41,7 +45,7 @@ Trablock이라는 이름은 Travel과 Block의 합성어로, 사용자가 개별
**AWS CodeDeploy**를 사용해 CD(Continuous Deployment)를 구현하고, 배포 자동화를 경험했습니다. CI(Continuous Integration)는 프로젝트 초기에 도입되었지만, 개발 일정에 맞추기 위해 테스트 코드 작성을 생략하는 결정을 내렸습니다. 하지만 이는 장기적으로 좋지 않은 판단임을 깨달았고, 이후 CI를 통해 테스트 자동화를 구축하여 코드 품질을 높이고, 배포 전 검증의 중요성을 절실히 느꼈습니다.


### [개발 후 테스트 과정에서]
### [개발 후 테스트 및 배포 과정에서]

#### 1. **인덱싱의 중요성**

Expand All @@ -60,6 +64,14 @@ Trablock이라는 이름은 Travel과 Block의 합성어로, 사용자가 개별

이미지 리사이징을 통해 이미지 품질에 큰 영향을 주지 않으면서도 S3 저장 공간을 절감할 수 있었고, 결과적으로 비용 절감에도 큰 효과를 보았습니다. 이 과정을 통해 리소스 최적화의 중요성을 실감하게 되었으며, 이미지 처리 및 저장 공간 관리에서 최적화를 적용하는 것이 얼마나 중요한지를 깊이 이해하게 되었습니다.

현재는 API 서버 내에서 이미지 리사이징을 처리 중이지만, 추후 성능 및 확장성을 고려해 별도의 이미지 서버를 구축할 계획도 세우고 있습니다.

#### 5. 모니터링 서버 구축과 서버 안정성

서버의 성능과 안정성을 모니터링하기 위해 Prometheus와 Grafana를 사용해 별도의 모니터링 서버를 구축하였습니다. 이를 통해 서버 상태를 실시간으로 모니터링하고, 주요 경고나 에러 발생 시 디스코드를 통해 알림을 받아 빠른 대응이 가능하도록 했습니다.

이를 통해 시스템 장애 발생 시 즉각적인 조치가 가능해져 시스템 안정성이 크게 향상되었습니다. 더불어 시스템 유지보수와 운영 효율성에 큰 기여를 했습니다.



## ⛓ Link
Expand Down

0 comments on commit df79272

Please sign in to comment.