Skip to content

MoyeoProject/moyeo-BE

Repository files navigation

짤방

모여 | Moyeo

이불 밖은 위험해!
메타버스의 시대가 펼쳐지면서 방구석 모임이 늘어났습니다.
좋아하는 취미생활을 방구석에서 공유하고 싶은 사람들을 위한 모임

스크린샷_20221229_051305

스크린샷_20221229_051305

스크린샷_20221229_051305

🔗 배포 링크 Hosting URL

https://moyeo.vercel.app

✨ 개발기간

2022.12.30 ~ 2023.02.10

⭐ 주요기능

  1. 온라인 모임 약속을 만들어 함께할 사람들을 모으는 모임 생성 기능

  2. 원하는 모임을 찾을 수 있는 검색 및 카테고리 기능

  3. 원하는 모임을 참석 예약하기 및 참석한 모임 시작을 잊지 않도록 알림 받기

  4. 내가 참석한 모임들을 한눈에 볼 수 있는 나의 모임 달력

  5. 모임 방장에게 모임의 신규 인원 참석 및 댓글에 대한 실시간 알림 전송

  6. 내가 원하는 사람을 팔로우하여 해당 유저의 모임이 생기면 알림 받기

  7. 참석/입장했던 모임에 대해 좋아요/싫어요 후기 남기기

⭐ 트러블 슈팅

1. 인기순조회 트러블슈팅

  1. 문제 상황
  • 인기모임 조회 속도향상을 위해 커버링인덱스를 적용하였음에도, 실행계획 확인결과 Total Cost 가 매우 높게 발생
  1. 문제 원인
  • 참여자수 비교를 위해 attendant테이블과 left join, group by가 필요하여 meeting table의 full index scan을 통해 전체 컬럼에 대해 join이 실행되어 total cost가 높게 나타는 것
  1. 해결 방법
  • meeting 테이블에 참여자수 컬럼을 새로 추가하여 join없이 바로 인기순 정렬이 가능하도록 변경하고, 참석자수 + id 인덱스테이블을 생성하여 최초 actual rows 9126 > 5 로 감소, jmeter 로 테스트해본 결과 평균응답시간은 60% 감소, 초당 처리건수의 경우 260%가 증가

2. 검색조회 트러블슈팅

  1. 문제 상황
  • 모임검색의 경우 like 쿼리를 이용하여 검색을 진행하였는데, 5개의 limit와, 커버링인덱싱을 적용하여 속도를 높였으나, 최초 Actual Rows가 모임 전체수만큼 나오는것을 확인
  1. 문제 원인
  • like 쿼리의 경우 검색할 단어의 인덱싱적용이 되지않아 전체 모임을 조회
  1. 해결 방법
  • like보다 인덱스를 효율적으로 사용할 수 있는 Full Text Search engine을 적용하였으며 그결과 최초 Actual Rows 1/100 으로 감소, total cost : 1/3로 감소
  • jmeter 테스트 결과 평균응답시간은 60% 감소, 초당 처리건수의 경우 244%가 증가한것을 확인

🧩swagger LINK

⭐ API 명세서 LINK

🛠 기술스택

자바 스프링부트 시큐리티 JPA JWT GRADLE INTELLIJ MYSQL 아마존 RDS 아마존 AWS EC22 UBUNTU 아마존S3 CODEDEPLOY REDIS GIT GITHUB GITHUB ACTIONS KAKAO LOGIN 소스트리 POSTMAN NOTION

⭐ Member

BE 😶장영주, 😶김지민, 😶윤덕현

FE 😀박선영, 😀정소영

⚙️ ERD

스크린샷_20221229_051305

⚙️ Service Architecture

스크린샷 2023-01-20 오후 2 36 01

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •