Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RELEASE] release 3.0.1 출석상태 polling 기능 추가 #153

Merged
merged 49 commits into from
Dec 5, 2024
Merged

Conversation

Klomachenko
Copy link
Collaborator

📌 관련 이슈

#132 #134 #135 #138 #140 #141 #144 #146 #149 #151

✨ PR 내용

3.0.1 업데이트를 실시합니다.

주요 변경 사항

저번 EEOS 사용자 대상으로 한 설문조사를 바탕으로 업데이트를 실시하였습니다.

아래의 기능이 추가되었습니다.

  • 사용자 출석 상태를 이제 새로고침 없이 바로바로 확인이 가능합니다.
  • 해당 출석 상태 변경 요청은 관리자(회장단)가 주간발표를 생성하고, 출석 상태로 변경시 polling으로 2초마다 요청됩니다.
  • 관리자(회장단)가 지각 상태로 변경시에 해당 polling 요청은 바로 중지되며, 이후 출석 상태는 지각으로 처리됩니다.

아래의 hook들을 수정하였습니다.

  • useProgramQuery.tsuseUpdateProgramAttendMode
  • useMemberQuery.tsuseUpdateMemberActiveStatus

geongyu09 and others added 30 commits November 1, 2024 15:34
조건문이 올바르게 되어있지 않아 당일날 출석중이지 않는 상태에서 출석하기 버튼이 활성화 되어있던 버그 수정
### 이전 상황
 프론트와 백엔드 모두 github url에 대하여 validation을 진행함

### 문제 상황
학기가 지나면서 기존의 validate와 맞지 않는 브랜치를 생성하게 될 수 있음. 이때 코드 변경의 비용을 줄이기 위하여 프론트에서는 해당 값에 대한 validation을 하지 않도록 함

### 변경 사항
github url의 validation로직을 주석처리
도메인 이전에 따른 테스트 코드를 변경하였습니다
member 상태에 따라 polling을 적용하는 것을 구현하고 머지합니다.
attendStatus에 따른 refetchInterval을 통한 polling 구현하고 머지합니다.
pollingm은 적용되었으나, admin에서 지각으로 변경해도 계속 polling이
받아와짐, 새로고침을 하면 더이상 polling이 되지 않으나 새로고침을 하지
않는 경우 주간발표가 끝날때까지 2초마다 요청 발생. 이를 해결하기 위해
useGetProgramId 의 staleTime을 5분에서 1분으로 변경
useGetProgramId의 staleTime을 변경하고 머지합니다.
멤버 상태의 polling에 대한 동시성 이슈를 해결하였습니다. cancelQueries를
통해 실행중이던 useGetProgramMembersByAttend 쿼리를 최초에 취소를 하여
동시성을 해결합니다.
멤버 상태 polling synchronicity race condition을 해결하고 머지합니다.
프로그램의 질문 게시판 section을 feature로 이동

#141
dashoaord에서 상태값이 서로 의존하는 관계가 생겨서 이를 facc만으로는 해결하지 못하는 경우가 생김
이에 불가피하게 전역상태를 사용하게됨

다만, 다른 전역상태를 사용할 때 도메인이 헷갈리지 않도록 객체로 구조화 하여 사용.

추가적으로 해당 atom이 다른 도메인에서 사용되지 않도록 하는 장치에 대한 고민 필요
상위에서 디자인을 수정할 수 있도록 className을 props에 추가
다만, 이는 이전에 다른 곳에서 사용하던 부분이 존재하며, 하위호환성을 위해서 옵셔널로 지정

#141
api가 변경되기 전의 설명이 들어있던 부분 수정

#141
답변의 경우 부모 id와 동일한 id를 가지는 객체의 answer에 넣어주도록 수정
넣어주는 로직은 util함수로서 만듦

#141
- 명세에 맞추어 page는 여러 독립적인 section으로 이루어지도록 구성하기 위해서 불필요하게 section 두개를 묶은 부분(ProgramHeader, ProgramDetail)을 따로 독립적인 section으로 수정
- 분리함에 따라서 기존에 두 컴포넌트를 묶어서 로더를 적용하는 부분 분리
geongyu09 and others added 18 commits November 29, 2024 23:29
dashboard에서 많은 책임을 가지고 있던 부분에서 탭 부분은 분리
게스트로 디테일 페이지에 가게 되었을 때 질문게시판이 블러 처리된 상태로 보이도록 하였습니다.
[FEAT] 질문 입력 창 크기 조절 추가
대댓글의 대댓글 기능을 추가하였습니다.

댓글과 대댓글은 같은 컴포넌트를 사용하고 있어서 showReplyButton props 하나만 값을 true로 변경해서 간단히 구현할 수 있었습니다.
추가적으로 해당 기능이 생김에 따라서 기존에 낙관적 업데이트를 하던 부분이, 대댓글의 대댓글을 달았을 때에도 올바르게 적용되도록 util함수를 수정하였습니다
refetchInterval로 해결하였습니다. 자세한 내용은 pr에 작성합니다.
최종적으로 댓글 polling issue를 해결하였습니다.
onSuccess invalidateQueries 로직을 추가하였고 머지합니다.
attendMode invalidateQueries를 적용하였고 머지합니다.
@Klomachenko Klomachenko added the release🎉 main브랜치에 merge 해서 새 버전을 release 합니다! label Dec 5, 2024
@Klomachenko Klomachenko self-assigned this Dec 5, 2024
Copy link

vercel bot commented Dec 5, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
eeos-fe ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 5, 2024 1:43pm
eeos-fe-develop ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 5, 2024 1:43pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release🎉 main브랜치에 merge 해서 새 버전을 release 합니다!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants