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

[회비] 회비 납부 문서를 인터널 DB에 반영하는 회비 내역 동기화 기능 추가 #197

Merged
merged 4 commits into from
Jan 7, 2025

Conversation

dooohun
Copy link
Contributor

@dooohun dooohun commented Jan 7, 2025

request

  • 회비 납부 문서의 내역 동기화 기능 API 버튼 추가

Please check if the PR fulfills these requirements

  • The commit message follows our guidelines
  • Did you merge recent main branch?

Screenshot

테스트

Precautions (main files for this PR ...)

아직 API가 만들어지지 않아 단순히 버튼을 통해 api 요청(dues/sheet-sync)만 가기 때문에 제대로 기능 동작이 하지 않습니다!

  • Close #ISSUE_NUMBER

- api 요청 성공 시 dues를 새롭게 불러오도록 dues 쿼리 무효화 기능 추가
- 모달 호출 후 모달을 닫도록 로직 추가
@dooohun dooohun added the enhancement New feature or request label Jan 7, 2025
@dooohun dooohun self-assigned this Jan 7, 2025
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review by ChatGPT


export const postDuesSheetSync = () => {
return accessClient.post('/dues/sheet-sync');
};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드를 검토한 결과, 오류는 발견되지 않았습니다. 그러나 몇 가지 개선할 수 있는 사항이 있습니다.

  1. 함수 이름과 목적: postDuesSheetSync라는 함수는 sheet-sync와 관련된 데이터를 전송하는 것으로 보입니다. 이 함수를 사용하는 컨텍스트가 불분명할 수 있으므로, 주석을 추가하여 함수의 목적을 명확히 하면 좋을 것 같습니다.

  2. 에러 처리: 네트워크 요청 후 반환되는 Promise에 대해 에러 처리를 추가함으로써, 이 함수가 실패할 경우 어떻게 처리할지 추가하는 것이 좋습니다.

다음은 개선 제안 사항입니다.

@@ -58,3 +58,7 @@ export const postSendDuesByDM = () => {
 
+// Dues sheet synchronization 요청을 위한 함수
 export const postDuesSheetSync = () => {
-  return accessClient.post('/dues/sheet-sync');
+  return accessClient.post('/dues/sheet-sync').catch(error => {
+    console.error("Error syncing dues sheet:", error);
+    throw error;
+  });
 };

주요 개선 사항:

  • 함수에 대한 설명을 추가해 가독성을 높였습니다.
  • 에러 처리를 추가하여 요청이 실패할 경우 적절히 대응할 수 있도록 했습니다.

@@ -5,7 +5,7 @@ export const modal = css`
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 450px;
width: 550px;
display: flex;
flex-direction: column;
align-items: center;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

주요 사항:

  • 코드의 스타일에 대해 개선이 필요합니다. 특히, modal의 너비( width )를 변경한 부분에 대한 의도를 명확히 하기 위해 주석을 추가하는 것이 좋습니다.
  • 코드 자체에는 오류가 없으나, 인라인 스타일링을 사용하는 대신 변수를 활용하거나, CSS를 더 구조화할 수 있는 방법을 고려할 수 있습니다.

개선 제안 사항:

@@ -5,7 +5,9 @@ export const modal = css`
   transform: translate(-50%, -50%);
-  width: 450px;
+  width: 550px; // 모달의 너비를 550px로 변경하여 더 많은 내용을 표시할 수 있게 함
   display: flex;
   flex-direction: column;
   align-items: center;

해당 수정 사항은 코드의 가독성을 높이고, 수정 이유를 다른 개발자들이 이해할 수 있도록 도와줍니다.

openSnackBar({ type: 'success', message: '회비 시트 동기화를 완료했습니다.' });
},
});
};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드 리뷰를 진행한 결과, 전반적으로 문제는 없으나 몇 가지 개선 사항을 제안합니다.

  1. QueryClient의 인스턴스를 컴포넌트 내부에서 생성하는 것은 좋은 패턴이 아닙니다. 대신 React Query의 useQueryClient 훅을 사용하여 이미 생성된 클라이언트를 활용하는 것이 좋습니다.
  2. 코드의 가독성을 높이기 위해서 Mutation 관련 코드를 컴포넌트에 맞게 잘 정리하는 것이 좋습니다.

개선이 필요한 부분은 아래와 같습니다:

+import { useQueryClient } from '@tanstack/react-query';
@@ -74,7 +74,8 @@ export const usePostDuesSheetSync = () => {
+  const queryClient = useQueryClient();

이러한 개선을 통해 React Query 클라이언트를 효율적으로 관리하고, 코드의 가독성 및 유지보수성을 높일 수 있습니다.

@dooohun dooohun merged commit 03f565c into main Jan 7, 2025
2 checks passed
@dooohun dooohun deleted the feature/dues-sheet-sync branch January 7, 2025 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants