이불 밖은 위험해!
메타버스의 시대가 펼쳐지면서 방구석 모임이 늘어났습니다.
좋아하는 취미생활을 방구석에서 공유하고 싶은 사람들을 위한 모임
2022.12.30 ~ 2023.02.10
-
온라인 모임 약속을 만들어 함께할 사람들을 모으는 모임 생성 기능
-
원하는 모임을 찾을 수 있는 검색 및 카테고리 기능
-
원하는 모임을 참석 예약하기 및 참석한 모임 시작을 잊지 않도록 알림 받기
-
내가 참석한 모임들을 한눈에 볼 수 있는 나의 모임 달력
-
모임 방장에게 모임의 신규 인원 참석 및 댓글에 대한 실시간 알림 전송
-
내가 원하는 사람을 팔로우하여 해당 유저의 모임이 생기면 알림 받기
-
참석/입장했던 모임에 대해 좋아요/싫어요 후기 남기기
- 문제 상황
- 인기모임 조회 속도향상을 위해 커버링인덱스를 적용하였음에도, 실행계획 확인결과 Total Cost 가 매우 높게 발생
- 문제 원인
- 참여자수 비교를 위해 attendant테이블과 left join, group by가 필요하여 meeting table의 full index scan을 통해 전체 컬럼에 대해 join이 실행되어 total cost가 높게 나타는 것
- 해결 방법
- meeting 테이블에 참여자수 컬럼을 새로 추가하여 join없이 바로 인기순 정렬이 가능하도록 변경하고, 참석자수 + id 인덱스테이블을 생성하여 최초 actual rows 9126 > 5 로 감소, jmeter 로 테스트해본 결과 평균응답시간은 60% 감소, 초당 처리건수의 경우 260%가 증가
- 문제 상황
- 모임검색의 경우 like 쿼리를 이용하여 검색을 진행하였는데, 5개의 limit와, 커버링인덱싱을 적용하여 속도를 높였으나, 최초 Actual Rows가 모임 전체수만큼 나오는것을 확인
- 문제 원인
- like 쿼리의 경우 검색할 단어의 인덱싱적용이 되지않아 전체 모임을 조회
- 해결 방법
- like보다 인덱스를 효율적으로 사용할 수 있는 Full Text Search engine을 적용하였으며 그결과 최초 Actual Rows 1/100 으로 감소, total cost : 1/3로 감소
- jmeter 테스트 결과 평균응답시간은 60% 감소, 초당 처리건수의 경우 244%가 증가한것을 확인
🧩swagger LINK
⭐ API 명세서 LINK
BE 😶장영주, 😶김지민, 😶윤덕현
FE 😀박선영, 😀정소영
- FE 프론트엔드 깃허브로 이동 https://github.com/MoyeoProject/moyeo-FE
