Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

(스파르타 코딩클럽) 최종 프로젝트 Challengers-BOD 본문

프로젝트

(스파르타 코딩클럽) 최종 프로젝트 Challengers-BOD

H.S-Backend 2024. 8. 21. 21:06

 

 

 

 

🗣️ 프로젝트 개발 환경 선택의 이유

우리의 챌린지 플랫폼을 위한 최적의 환경

프로젝트 비즈니스 모델 개요

우리의 비즈니스 모델은 사용자가 목적성 있는 챌린지에 신청하고, 매일 사진으로 인증하며 포인트를 쌓고 랭킹을 올리는 구조입니다. 이를 통해 사용자가 꾸준히 도전할 수 있도록 유도하는 것이 목표입니다.

이 과정에서 사용자 경험을 극대화하고, 안전하며 확장 가능한 플랫폼을 제공하기 위해 아래와 같은 개발 환경을 선택했습니다.

  • 🌐 AWS (IAM, EC2, 로드밸런서, S3, Route 53): 안정성과 확장성의 핵심
    • ⚙️ 확장 가능한 인프라: 사용자가 늘어날 때 EC2 인스턴스를 통해 서버 자원을 신속히 확장할 수 있어요. 이렇게 하면 트래픽 급증에도 서비스가 끊기지 않고 원활하게 운영됩니다.
    • 🔒 보안성 강화: IAM을 사용해 각 사용자에게 적절한 권한을 부여합니다. 예를 들어, S3에 저장된 챌린지 인증 사진은 특정 사용자만 접근할 수 있도록 관리해요.
    • 🛡️ 고가용성: 로드밸런서를 통해 서버 간 트래픽을 분산시켜 서버가 과부하에 걸리는 것을 방지하고, S3로 인증 사진을 안전하게 저장하고 빠르게 제공합니다.
    • 🚀 Route 53: 전 세계 어디서든 빠르고 안정적인 도메인 서비스로, 사용자 인증 과정이 끊김 없이 진행되도록 지원합니다.
  • 🕸️ NginX (1.24.0): 빠르고 안정적인 요청 처리
  • 🔗 리버스 프록시와 로드밸런싱: NginX는 사용자의 요청을 서버에 안전하게 전달하고, 서버 간 부하를 효율적으로 분산시켜 안정적인 서비스 제공을 보장합니다.
  • JDK 17: 안정성과 성능
    • 🛡️ 안정성과 신뢰성: JDK 17은 LTS 버전으로, 장기적인 업데이트와 보안 패치를 통해 안정적인 운영을 지원합니다.
    • ⚡ 검증된 성능: 최신 버전은 아니지만, 필요한 기능이 포함되어 있어 안정적이고 성능이 우수합니다. 복잡한 로직 처리에도 적합합니다.
    • 🛠️ 현실적인 선택: 최신 버전보다 안정성이 더 중요한 경우, JDK 17은 리스크를 줄이면서도 충분한 성능을 제공합니다.
    • 🔄 호환성: Spring Boot와 같은 주요 프레임워크와 완벽하게 호환되며, 많은 기업들이 사용하고 있어 실무에 적합합니다.
  • 🐳 Docker (27.1.1) & Docker-Compose (2.29.1): 일관된 개발 및 배포 환경
    • 📦 컨테이너화된 환경: Docker를 통해 모든 개발자들이 동일한 환경에서 작업할 수 있습니다. 덕분에 로컬 환경과 서버 간의 불일치를 줄여, 개발과 배포가 더욱 신속하고 안정적입니다.
    • 🛠️ 손쉬운 서비스 관리: Docker-Compose를 사용해 Spring Boot 애플리케이션, MySQL, Redis 등을 쉽게 설정하고 관리할 수 있습니다. 인증, 랭킹, 사용자 관리 서비스를 각각 컨테이너로 관리하여 유연성을 높였습니다.
  • 🛡️ Spring Boot 3.3.0 & Spring Security: 빠른 개발과 강력한 보안
    • 🚀 빠른 애플리케이션 개발: Spring Boot는 간편한 설정으로 빠르게 애플리케이션을 개발할 수 있어, 빠른 MVP 출시가 가능합니다.
    • 🔒 보안: Spring Security를 사용해 사용자의 인증 데이터와 챌린지 인증 사진을 안전하게 보호합니다. 강력한 인증 및 권한 관리로 보안을 강화했습니다.
  • 🗄️ MySQL 8.0.39: 신뢰성 높은 데이터 저장소
    • 💾 트랜잭션 처리와 데이터 무결성: MySQL은 챌린지 참여 이력, 포인트, 랭킹 데이터를 안정적으로 관리합니다. 대규모 데이터를 효과적으로 처리할 수 있어 신뢰할 수 있는 데이터베이스입니다.
    • ⚙️ 복잡한 데이터 처리: 쿼리 최적화로 랭킹 시스템을 효율적으로 운영하고, 포인트 시스템의 실시간 업데이트를 신속하게 처리합니다.
  • 🚀 Redis 7.4.0: 고속 데이터 처리와 실시간 피드백
    • ⚡ 캐싱: 자주 조회되는 데이터(예: 랭킹, 포인트)를 캐싱하여 데이터베이스 부하를 줄이고, 빠른 응답을 제공합니다. 사용자는 최신 정보를 즉시 확인할 수 있습니다.
    • 🔄 세션 관리: Spring Security와 연동하여 사용자 세션을 Redis에 저장, 빠르고 안정적인 인증 시스템을 구현했습니다.

 

 

Wireframe

Architecture

ERD Diagram

 

 

https://www.youtube.com/watch?v=5H8R5DnKvtI

 

 

https://github.com/Hyungs0703/Challengers-BOD

 

GitHub - Hyungs0703/Challengers-BOD

Contribute to Hyungs0703/Challengers-BOD development by creating an account on GitHub.

github.com

https://github.com/Hyungs0703/Challengers-front

 

GitHub - Hyungs0703/Challengers-front

Contribute to Hyungs0703/Challengers-front development by creating an account on GitHub.

github.com

반응형