Skip to content

selab-hs/glass-bottle

Repository files navigation

🌊 Glass Bottle Project 🍶

우리 프로젝트는❓

mbti를 기반으로 한 유리병 편지 전송 서비스입니다.
나의 고민을 유리병 편지에 적어 원하는 mbti의 사용자에게 조언을 구할 수 있습니다.

Glass Bottle Web Application v1.0

  • 개발 참여 인원: 손장미, 황인준, 황하림
  • 개발 기간: 2023-05-30 ~ 2023-06-19

CI/CD 배포 구성도

배포 구성도

ERD

Glass bottle (1)

service flow

login

주요기능 시퀀스 다이어그램

mbti test 기능 시퀀스-mbti 테스트 시퀀스 다이어그램 drawio mbti test 기능 시퀀스-mbti round quiz 시퀀스 다이어 그램 drawio �letter 기능 시퀀스 다이어 그램 drawio

주요 기능

📑 member 기능

  • 로그인/회원가입
  • mbti 테스트
  • mbti 관련 테스트 참여/ 결과 통계 조회
  • mbti 별 관련 문제 결과 조회
  • mbti 랜덤 편지 발송/답변
  • 특정 편지 공유

📑 admin 기능

  • mbti 관련 문제 카테고리 생성
  • mbti 관련 문제 생성

📑 Slack 모니터링 기능

  • 서버 상태 1시간 마다 Slack 메시지 전달
  • 전일 회원가입 유저, 작성한 편지 Slack 메시지 전달
  • 에러 로그 발생시 Slack으로 메시지 전달

프로젝트 개발 전략

1. 브랜치 관리 전략

Git Flow 전략

  • Github PR을 이용한 Git Flow 전략
  • main(master): ec2 서버 release 브랜치
  • staging: 이후 배포하기 위한 통합 브랜치 (develop)
  • feature: 기능 구현 브랜치
  • fix: 버그 픽스 브랜치
  • docs: 문서화 구현 브랜치
  • submodule: 브랜치가 아닌 민감한 yml 정보를 다루는 private한 하위 저장소

📌 브랜치 관리 전략 참고 문헌 - 우아한 형제들 기술 블로그

2. CI

  • 깃 허브를 통하여 형상관리를 진행
  • staging branch PR을 통한 Merge 시 Git Action 실행

3. CD

  • Git Action을 통하여 staging, main branch push시 jdk 설치, submodule을 체크아웃하여 빌드, AWS 자격증명, S3에 빌드한 프로젝트 zip파일로 업로드, CodeDeploy 요청 진행
  • CodeDeploy가 S3에 저장된 zip 파일을 받아와 최근 배포된 프로젝트 EC2 인스턴스에 배포 진행

4. 테스트

기술 스택

⚙️ Environment

💻 Development

💬 Communication

🛜 Server

💿 DB

프로젝트를 진행하면서 생긴 고민

  • 프레임워크 없이 인증 인가 기능 이점 👉 click
  • 대량의 트래픽을 분산하고, DB 조회 성능을 개선하는 방법 👉 click
  • 특정 MBTI 대상, 전체 유저 대상 랜덤 편지 발송 구현 방법 👉 click
  • 유효시간 1일 중 답변자가 끝나기 직전에 편지를 쓸 경우 👉 click
  • 프로젝트 배포에 있어 CI/CD 구축 방법 👉 click
  • EC2 메모리 부족으로 Java Compiler 멈춤 현상 발생 👉 click
  • 애플리케이션의 상태를 모니터링 하는 방법 👉 click
  • 애플리케이션 에러 발생시 모니터링 하는 방법 👉 click
  • 민감한 데이터 관리 방법 👉 click
  • 문서화 방법 👉 click

회고록 모음

🌹 손장미 👉 click
🍻 황인준 👉 click
🍗 황하림 👉 click

About

유리병에 담긴 편지가 너에게 닿기를..

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published