Perplz
로그인

정기 업데이트 6차

5명 참여 중

프로젝트 멤버만 피드를 작성할 수 있습니다.

피드

태스크: QA 100% 완료하기
혜린
8개월 전

첨부파일 테스트입니다. 수빈 님 에그타르트 정말 맛있어욥

히포수빈
8개월 전

'새로 생겼어요' 화면을 위한 구현사항

[요약]

  • 캐싱을 위해 projects 테이블에 컬럼 추가
  • 어떤 프로젝트의 메시지인지 추적을 위해 chatrooms 테이블에 컬럼 추가
  • 매우 잦은 변경이 일어나는 message 테이블에 대해 스로틀링 적용으로 부하 감소

[캐싱하기]
프로젝트의 활동 정보를 알기 위해서는
유저가 '새로 생겼어요'를 조회하거나 새로고침할 때마다 n개의 데이터에 대해서 매번 message 테이블과 feed 테이블을 조회해주어야 합니다.
이는 db부하를 유발합니다.

따라서 projects 테이블에 마지막 활동 시간, 마지막 활동 타입이라는 2개의 컬럼을 만들어 활동 정보를 캐싱했습니다.
(projects 테이블만 보도록!)

[그렇다면 어떤 정보를 어떻게 캐싱하는가?]
-> message 테이블과 feeds 테이블에 각각 트리거 삽입
두 테이블에 새로운 정보가 생길 때마다, 프로젝트 테이블의 컬럼을 업데이트 하도록 구현했습니다.

채팅방의 경우 project_id가 없어서 메시지의 연관관계를 추적해도 어떤 프로젝트에 해당하는지 알 수가 없었습니다.
따라서, chatrooms 테이블에 project_id 컬럼을 추가하고 채팅방 생성 시 해당 컬럼의 값을 설정해주는 로직을 추가해주었습니다.

[채팅은 짧은 시간에 매우 자주 생길 수 있는데 그것도 부하 아닌가?]
피드는 새로 생성되는데에 어느 정도 시간 간격이 있는 데이터이지만,
채팅은 1초에 몇 백 몇 천 건이 생성될 수 있는 데이터입니다.
따라서, 채팅 메시지 트리거에는 스로틀링 제한을 걸어두었습니다.

  • 스로틀링 : 시간 당 요청량 제한 (예 : 1분에 5건의 요청까지만 받아줄게)

[스로틀링을 건 이유]
프로젝트가 활동 중임을 보여주고 싶은 것이지 실시간성이 중요한 부분이 아니라고 판단,
실시간의 정확성이 조금은 떨어져도 괜찮기 때문에 스로틀링을 적용했습니다.
-> 현재는 5분마다 최신 상태가 업데이트 되도록 설정되었있습니다.
Update 문보다 가벼운 SELECT 쿼리를 먼저 사용해 5분 이내에 변경된 이력이 있으면 PASS
-> 시간 설정은 언제든 변경이 가능합니다.

스로틀링을 통해 message 테이블과 project 테이블의 부하를 감소시켰습니다.

혜린
8개월 전

정기 업데이트 6차에 대한 QA가 종료되었습니다. 지금까지 진행해 왔던 정기 업데이트 중에서, 모든 QA 항목이 반영된 건 처음이네요 👍 1. 홈-새로 생겼어요 추가 홈에서 유저가 프로젝트 트렌드를 탐색할 수 있는 공간으로 마련되었습니다. '방금 대화'. '새로운 피드' 등을 통해 활발한 소통 또한 확인할 수 있습니다. 2. 피드/댓글/채팅 url 연결 인앱 브라우저를 통해, 피드/댓글/채팅에서 url 연결이 가능해졌습니다. 또한 내 동료가 아닌 유저가 공유한 url은 연결이 안전한 링크인지 확인하는 알럿을 추가하여, 신뢰할 수 있는 링크에 접속할 수 있도록 안전한 환경을 만들었습니다. 3. 피드/댓글 좋아요 PUSH 알림 내가 작성한 피드나 댓글에 좋아요가 생기면 PUSH로 안내 받을 수 있습니다. 반복적인 알림이 수십회 발송되는 것을 방지하지 위하여, PUSH 발송 최적화도 처음으로 도입하게 되었습니다. 대표적으로 반영된 3가지 업데이트 사항 외에도 사용성 개선을 위한 업데이트의 심사가 금일 제출될 예정입니다. 새로 생겼어요 화면을 작업해 주신 예진 님, QA 항목의 일정을 앞당겨 진행해 주신 수빈 님, 그리고 이 프로젝트를 이끌어 주신 건 님께 감사드립니다. 그리고 저와 함께 QA 잡아주시는 인규 님도 고마워요! 앱스토어, 플레이스토어의 앱 심사 완료 여부는 차주에 공유해 드리도록 하겠습니다.

혜린
8개월 전

시간 진짜 빠르져 벌써 내일이 6차 정기 업데이트날이네여 ㅇㅅㅇ 오늘 중으로 내일 업데이트를 위한 작업이 잘 진행되고 있는지 서로 공유해보면 좋을 것 같아요. 업데이트 날짜 조정이 필요한지 등등 자유롭게 공유해 주세요~!

이 프로젝트의 기록 2개를 더 볼 수 있어요

퍼플즈는 함께 만들 팀을 찾는 곳이에요