Skip to content

grrooom/GreenRoomServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📖 Greenroom (Plant Care App)

Image

소개 (Introduction)

Greenroom은 식물을 키우는 모든 순간을 기록하고, 작은 성장을 함께 축적해 나가는 식물 관리 플랫폼입니다. 초보자부터 숙련자까지, 누구나 자신만의 방식으로 식물과 함께 성장하는 즐거움을 경험할 수 있도록, Greenroom은 다양한 기능과 정보를 제공합니다.

주요 기능 (Features)

회원가입 및 인증/인가

  • 어플리케이션 딥링크를 활용한 이메일 본인 인증
  • JWT 토큰 + RTR 방식 인증/인가 처리

식물 캐릭터 관리

  • 사용자가 키우는 식물을 캐릭터로 등록
  • 다양한 아이템으로 캐릭터와 공간 꾸미기

식물 관리 및 알림

  • 키우는 식물 종에 대한 키우기 정보 제공
  • 물주기, 가지치기, 분갈이 등의 주기를 등록
  • 주기가 도래하면 푸시 알림 전송
  • 식물 관리 활동 완료 시 씨앗 포인트 획득을 통한 레벨업과 꾸미기 아이템 구매

식물 사전 제공

  • 식물별 키우기 정보를 조회할 수 있는 식물 사전 기능 지원

화면 예시 (Screenshots)

메인 화면 식물 사전 화면

기술 스택

Backend : Java&Spring Boot,Spring Data Jpa, Mysql,Firebase

Documentation : Restdocs-api-spec : Restdcos + Swagger

Infrastructure : AWS (EC2, S3, RDS, Lambda, Cloud Front), Docker, GitHub Actions (CI/CD)


프로젝트 전체 구조 및 클라우드 인프라

  • AWS 환경에서 EC2와 RDS를 하나의 VPC로 구성하고, EC2에는 Public IP를 RDS에는 Private IP를 할당
  • Docker와 Github Actions를 활용한 CI/CD 파이프라인 구축
  • Cloud Front와 Lambda@Edge 기반 이미지 썸네일 로딩

security 구조

  • JwtFilterExceptionHandler 내부에서 CustomJwtFilter를 호출
  • CustomJwtFilter에서 Exception 발생 시 JwtFilterExceptionHandler에서 API 공통 응답 형태로 예외값 반환
  • API 문서 및 에러 코드 문서는 별도의 Longin을 통해 접근 가능하도록 Security Filter를 분리

어플리케이션 딥링크 기반 이메일 인증

Image
  • 이메일 인증 요청 수신 후 사용자 고유 토큰을 생성해 딥링크 쿼리 파라미터로 추가 & 딥링크를 본문에 추가하여 이메일 전송
  • 클라이언트에서 토큰을 파싱하여 이메일 검증 요청을 전달 -> 토큰 값을 검증하여 이메일 인증 진행

S3 & DB 정합성 문제 처리

Image 이미지 삭제 처리 로직 Image 이미지 업로드 처리 로직
  • 이미지 삭제 : 트랜잭션 commit 이후 s3에 이미지 삭제 요청
  • 이미지 업로드 : 트랜잭션 내에서 s3에 이미지 업로드 요청 & 트랜잭션 rollback 이후 s3에 올라간 이미지 삭제 요청

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages