Skip to content

kiwoook/DAWHEEN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

112 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

다흰 (DAWHEEN)

다흰은 1365 봉사활동 사이트를 기반으로 재설계된 봉사활동 모집 커뮤니티 플랫폼입니다. 사용자는 간편하게 봉사활동 정보를 탐색하고, 로그인 및 회원가입을 통해 커뮤니티에 참여할 수 있습니다.

프로젝트 목표

  • 데이터 시인성: 주변 봉사 기관과 봉사 활동 정보를 직관적으로 한눈에 볼 수 있도록 구현
  • 간편한 로그인/회원가입: 소셜 로그인을 활용해 사용자에게 간단한 회원가입 유도
  • 지도 서비스: 사용자의 위치를 활용해 주변에서 운영 중인 봉사활동과 봉사기관 정보 확인

개발 환경

FRONTEND

  • React

BACKEND

  • Spring Boot
  • Spring Security
  • QueryDSL

DATABASE

  • Redis
  • MySQL

CI/CD

  • GitHub Actions
  • Docker
  • AWS S3
  • AWS EC2
  • AWS CodeDeploy
  • Nginx

주요 기능

  • OAuth2 + JWT: OAuth2와 JWT를 사용해 간편한 회원가입과 로그인, 안전한 인증 및 인가 처리를 지원합니다.
  • CI/CD: GitHub Actions를 통한 지속적 통합(CI)과 AWS CodeDeploy를 활용한 지속적 배포(CD)를 지원합니다.
  • 블루/그린 배포: Nginx를 활용해 블루/그린 배포 방식으로 무중단 배포를 지원합니다.
  • 비밀번호 찾기: 일반 로그인 사용자는 이메일로 비밀번호 찾기 메일을 받아 안전하게 비밀번호를 변경할 수 있습니다.
  • Docker 인프라: Docker를 사용하여 안정적인 인프라 서비스 환경을 구축했습니다.
  • Redis 활용: Redis를 사용해 유저의 JWT 리프레시 토큰 저장과 랭킹 서비스 기능을 구현했습니다.
  • QueryDSL 사용: 동적 쿼리를 사용해 유연하면서도 안전한 쿼리를 구현했습니다.

개발 후기

  • Docker 활용: Docker를 사용하여 Kafka, Redis, MySQL을 안정적으로 운영하는 경험을 쌓았습니다.
  • 무중단 배포: Nginx를 활용한 블루/그린 배포로 무중단 배포를 구현했습니다. 하지만, 블루/그린 배포의 단점으로 인스턴스 수가 두 배로 증가하여 EC2의 비용 부담이 발생했기 때문에, 앞으로는 카나리 배포 방식도 고려할 필요가 있습니다.
  • 테스트 코드 작성: 테스트 코드를 사전에 작성하지 않고 나중에 한꺼번에 처리하려다 많은 오류와 시간 소모가 발생했습니다. 도메인 구현 후에는 테스트 코드를 작성하는 습관의 중요성을 깨달았습니다.
  • KAFKA 미활용 : KAFKA를 활용하여 운영해볼려 했으나 단일 서버에서는 사용할 이유가 없다는 것을 느끼고 활용하지 않았습니다. 해당 스택에 대해 장단점을 인지하고 사용해볼 필요가 있다는 것을 느꼈습니다.

About

봉사활동 모집 지원 웹사이트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages