Skip to content

Conversation

@henny1105
Copy link
Collaborator

#️⃣연관된 이슈

ex) #이슈번호, #이슈번호

📝작업 내용

  • 인증 시스템 개선
  • docker 설정 개선
  • authOption 인증 로직에 대한 주석 및 설정 개선

💬리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요
ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

henny1105 and others added 17 commits February 12, 2025 18:32
* [#110] 커뮤니티 게시판 상세 페이지 컴포넌트 분리  (#111)

* feat: 커뮤니티 상세 페이지 ssr/csr 분리 및 axios 인스턴스 수정

* feat: 불필요 react 텍스트 삭제

* fix: 추천 변수명 수정

* chore: 게시물 상세내용 마크다운으로 변경

* refactor: DOMPurify 보안 방식으로 변경

* refactor: 불필요 코드 수정

* chore: 커뮤니티 게시판 업로드 이미지 삭제

* chore: 파일명 수정

* feat: 커뮤니티 게시물 응답 에러 코드 추가

* chore: 커스텀 에러 파라미터 string으로 변경

* chore: 전체 커스텀 에러 메세지 string 변경

* [#115] 배포 전 오류사항 반영(패키지 삭제, 도커파일 수정) (#117)

* chore: 패키지 버전 통일

* chore: dockerfile 내용 수정

* chore: 배포 수정사항 반영

* [#120] 약국 데이터 필터링 로직 개선 (#121)

* refactor: 약국 검색 위치 좁히기

* chore: 주석 추가

* [#118] TanStack Query를 활용한 API 데이터 최적화 및 리팩토링 (#119)

* feat: 약국 리스트 불러오기 tanstack query 적용

* feat: 로딩 스피너 공통 컴포넌트 분리

* chore: tanstack query 에러 세분화

* chore: 에러 메시지 수정

* chore: 불필요 훅 삭제, 오타 수정

* chore: 오타 수정

* refactor: 약국 검색 위치 좁히기

* chore: 주석 추가

* chore: fetch 방식 -> axios 방식으로 변경

* [#122] 약물 검색 리스트 관심사 분리 작업 및 반응형 스타일링 (#123)

* refactor: 검색 리스트, 검색 결과 컴포넌트 분리 작업:

* feat: 약물 모바일 반응형 스타일링

* feat: 검색결과가 없을 때 에러 메시지 추가

* [#118] 약물 리스트 검색 tanstack query 기능 추가  (#125)

* feat: 리액트쿼리 devtool 추가

* chore: 약물 리스트 key 값 중복 오류 및 이미지 비율 오류 해결

* feat: 약물 검색 api 호출 부분 리액트 쿼리 변경

* chore: 타입 파일 정리

* chore: 검색 버튼을 눌렀을 때 쿼리 활성화

* chore: 검색 결과 없음 텍스트 반환 및 개발자도구 오류 메시지 삭제

* chore: zustand 상태 변수 이름 변경

* chore: 무한스크롤 오류 수정 및 검색 버튼 클릭시, 약물 데이터 노출 기능 오류 수정

* chore: eslint import는 무조건 단일 따옴표로 조건 변경

* chore: eslint 설정 변경

* chore: 메인 약물 검색에서 useEffect를 활용한 검색 트리거 추가

* chore: 실시간 전역상태 삭제 -> 검색 시점에만 전역에 반역 방법으로 변경

* chore: keyword 하나만 의존성 배열로 변경 및 검색 필터 useState 하나의 객체로 묶기

* [#129] 약국 상세 페이지 반응형 작업 (#130)

* feat: 약물 찾기 반응형 추가

* feat: 약국 찾기 반응형 형 완료

* feat: 마이페이지 메뉴 클릭해도 햄버거 메뉴 없애기 기능 추가

* feat: 커뮤니티 게시판 반응형 완료

* feat: 마이페이지 반응형 완료

* [#131] 약물 API 검색 인덱스 B-Tree → GIN 인덱스로 변경 (#132)

* chore: axios 오류 유틸함수로 분리

* refactor: 약물 상세 데이터 api SSR 방식 변경

* chore: fetch -> axios 호출로 변경, axiosError 추가

* refactor: 즐겨찾기 버튼 컴포넌트 분리

* refactor: 약물 상세 API SSR 형식으로 불러오기 변경

* refactor: SSR + 리액트 쿼리 조합으로 약물 API 불러오기 기능 리팩토링

* chore: 에러메시지 string 타입으로 변경, fetchData async/await 방식으로 변경

* refactor: suspense 로딩중 기능 추가

* refactor: ErrorBoundary 기능 추가

* refactor: prefetchQuery 추가

* chore: queryClient 변수로 따로 빼기

* chore: 중복 코드 삭제, 변수명 변경 등 수정

* chore: 탭 메뉴 유니온 타입 -> as const로 변경

* chore: 로그인한 가입자만 즐겨찾기 가능 알럿 추가

* chore: 즐겨찾기 api 호출 함수 에러 로직 수정

* refactor: 즐겨찾기 tanstack query로 변경

* chore: detail medicineid -> useParams id 값 불러오기 변경

* chore: 약물 이미지가 없을 때, 텍스트 표시

* feat: 이미지 경로 없을 경우 및 404 에러일 경우 다른 이미지 추가, 약물정보 없을시, 정보없음 텍스트 노출

* feat: 이미지 경로 없을시, 이미지 크기 변경

* feat: 즐겨찾기 버튼 Optimistic UI로 변경

* chore: useMutation queryKey 중복제거

* fix: 이미지 경로가 오경로여도 기본 이미지 노출로 변경

* feat: 약물 상세 index 마이그레이션 삭제 및 약물 검색 b-tree -> GIN index로 변경

* [#118] 약물 상세 페이지 SSR + Tanstack Query 변경 (#127)

* chore: axios 오류 유틸함수로 분리

* refactor: 약물 상세 데이터 api SSR 방식 변경

* chore: fetch -> axios 호출로 변경, axiosError 추가

* refactor: 즐겨찾기 버튼 컴포넌트 분리

* refactor: 약물 상세 API SSR 형식으로 불러오기 변경

* refactor: SSR + 리액트 쿼리 조합으로 약물 API 불러오기 기능 리팩토링

* chore: 에러메시지 string 타입으로 변경, fetchData async/await 방식으로 변경

* refactor: suspense 로딩중 기능 추가

* refactor: ErrorBoundary 기능 추가

* refactor: prefetchQuery 추가

* chore: queryClient 변수로 따로 빼기

* chore: 중복 코드 삭제, 변수명 변경 등 수정

* chore: 탭 메뉴 유니온 타입 -> as const로 변경

* chore: 로그인한 가입자만 즐겨찾기 가능 알럿 추가

* chore: 즐겨찾기 api 호출 함수 에러 로직 수정

* refactor: 즐겨찾기 tanstack query로 변경

* chore: detail medicineid -> useParams id 값 불러오기 변경

* chore: 약물 이미지가 없을 때, 텍스트 표시

* feat: 이미지 경로 없을 경우 및 404 에러일 경우 다른 이미지 추가, 약물정보 없을시, 정보없음 텍스트 노출

* feat: 이미지 경로 없을시, 이미지 크기 변경

* feat: 즐겨찾기 버튼 Optimistic UI로 변경

* chore: useMutation queryKey 중복제거

* fix: 이미지 경로가 오경로여도 기본 이미지 노출로 변경

* [#118] 즐겨찾기 리스트, 삭제 tanstack query 추가 (#133)

* feat: 즐겨찾기 마이페이지 tanstack query 추가

* fix: staletime, gctime 값 변경 및 간단 주석 추가

* fix: suspense 관련 코드 제거

* feat: favoriteStatus 즐겨찾기 상태 prefetchQuery 추가 및 비로그인일 때, 알럿창 알림 추가

* [#118] 커뮤니티 게시판 TanStack Query 도입 (#128)

* chore: fetchPost axios 에러 추가

* chore: 코멘트, 댓글 컴포넌트 분리

* chore: 리액트 쿼리 hook 분리

* refactor: 게시물 상세 데이터 SSR + react query

* chore: 리액트 쿼리 훅 분리

* refactor: 게시물 리스트 리액트 쿼리 기능 추가 및 훅 분리

* chore: 유틸함수, 훅 분리

* refactor: 게시물 수정시 무효화 기능 추가

* chore: 무효화 순서 수정/createDOMPurify 설정 변경

* chore: 알럿 메세지 상수화

* chore: 게시물 가져오기, 수정, 삭제 함수 분리

* refactor: 게시글 수정/삭제 무효화 작업 및 quill 버전 변경

* fix: react-quill 재설치

* fix: create page에서도 react-quill-new를 react-quill로 변경

* fix: errors.ts에서 중복된 API_REQUEST_ERROR 제거

* fix: page.tsx 이외 파일 컴포넌트 파일로 분리

* fix: 게시글 번호 오류 수정

* fix: 커뮤니티 게시판 이미지 업로드 오류

* feat: 알럿 메세지 상수화

* feat: 로딩중 suspense로 변경 및 에러바운더리 클래스형 -> 라이브러리로 변경

* fix: 검색 버튼을 눌렀을 때만 글 검색 가능하게 변경

* feat: URL 파라미터를 사용하여 상태 관리 추가

* fix: 'Cache-Control': 'no-store' 삭제

* feat: 추천수 tanstack query 도입

* fix: stale time, gc time 시간 표시 변경

* fix: publish-docker-images 워크플로우 dockerfile 경로 수정

* fix: README 내용 일부 수정
* [#110] 커뮤니티 게시판 상세 페이지 컴포넌트 분리  (#111)

* feat: 커뮤니티 상세 페이지 ssr/csr 분리 및 axios 인스턴스 수정

* feat: 불필요 react 텍스트 삭제

* fix: 추천 변수명 수정

* chore: 게시물 상세내용 마크다운으로 변경

* refactor: DOMPurify 보안 방식으로 변경

* refactor: 불필요 코드 수정

* chore: 커뮤니티 게시판 업로드 이미지 삭제

* chore: 파일명 수정

* feat: 커뮤니티 게시물 응답 에러 코드 추가

* chore: 커스텀 에러 파라미터 string으로 변경

* chore: 전체 커스텀 에러 메세지 string 변경

* [#115] 배포 전 오류사항 반영(패키지 삭제, 도커파일 수정) (#117)

* chore: 패키지 버전 통일

* chore: dockerfile 내용 수정

* chore: 배포 수정사항 반영

* [#120] 약국 데이터 필터링 로직 개선 (#121)

* refactor: 약국 검색 위치 좁히기

* chore: 주석 추가

* [#118] TanStack Query를 활용한 API 데이터 최적화 및 리팩토링 (#119)

* feat: 약국 리스트 불러오기 tanstack query 적용

* feat: 로딩 스피너 공통 컴포넌트 분리

* chore: tanstack query 에러 세분화

* chore: 에러 메시지 수정

* chore: 불필요 훅 삭제, 오타 수정

* chore: 오타 수정

* refactor: 약국 검색 위치 좁히기

* chore: 주석 추가

* chore: fetch 방식 -> axios 방식으로 변경

* [#122] 약물 검색 리스트 관심사 분리 작업 및 반응형 스타일링 (#123)

* refactor: 검색 리스트, 검색 결과 컴포넌트 분리 작업:

* feat: 약물 모바일 반응형 스타일링

* feat: 검색결과가 없을 때 에러 메시지 추가

* [#118] 약물 리스트 검색 tanstack query 기능 추가  (#125)

* feat: 리액트쿼리 devtool 추가

* chore: 약물 리스트 key 값 중복 오류 및 이미지 비율 오류 해결

* feat: 약물 검색 api 호출 부분 리액트 쿼리 변경

* chore: 타입 파일 정리

* chore: 검색 버튼을 눌렀을 때 쿼리 활성화

* chore: 검색 결과 없음 텍스트 반환 및 개발자도구 오류 메시지 삭제

* chore: zustand 상태 변수 이름 변경

* chore: 무한스크롤 오류 수정 및 검색 버튼 클릭시, 약물 데이터 노출 기능 오류 수정

* chore: eslint import는 무조건 단일 따옴표로 조건 변경

* chore: eslint 설정 변경

* chore: 메인 약물 검색에서 useEffect를 활용한 검색 트리거 추가

* chore: 실시간 전역상태 삭제 -> 검색 시점에만 전역에 반역 방법으로 변경

* chore: keyword 하나만 의존성 배열로 변경 및 검색 필터 useState 하나의 객체로 묶기

* [#129] 약국 상세 페이지 반응형 작업 (#130)

* feat: 약물 찾기 반응형 추가

* feat: 약국 찾기 반응형 형 완료

* feat: 마이페이지 메뉴 클릭해도 햄버거 메뉴 없애기 기능 추가

* feat: 커뮤니티 게시판 반응형 완료

* feat: 마이페이지 반응형 완료

* [#131] 약물 API 검색 인덱스 B-Tree → GIN 인덱스로 변경 (#132)

* chore: axios 오류 유틸함수로 분리

* refactor: 약물 상세 데이터 api SSR 방식 변경

* chore: fetch -> axios 호출로 변경, axiosError 추가

* refactor: 즐겨찾기 버튼 컴포넌트 분리

* refactor: 약물 상세 API SSR 형식으로 불러오기 변경

* refactor: SSR + 리액트 쿼리 조합으로 약물 API 불러오기 기능 리팩토링

* chore: 에러메시지 string 타입으로 변경, fetchData async/await 방식으로 변경

* refactor: suspense 로딩중 기능 추가

* refactor: ErrorBoundary 기능 추가

* refactor: prefetchQuery 추가

* chore: queryClient 변수로 따로 빼기

* chore: 중복 코드 삭제, 변수명 변경 등 수정

* chore: 탭 메뉴 유니온 타입 -> as const로 변경

* chore: 로그인한 가입자만 즐겨찾기 가능 알럿 추가

* chore: 즐겨찾기 api 호출 함수 에러 로직 수정

* refactor: 즐겨찾기 tanstack query로 변경

* chore: detail medicineid -> useParams id 값 불러오기 변경

* chore: 약물 이미지가 없을 때, 텍스트 표시

* feat: 이미지 경로 없을 경우 및 404 에러일 경우 다른 이미지 추가, 약물정보 없을시, 정보없음 텍스트 노출

* feat: 이미지 경로 없을시, 이미지 크기 변경

* feat: 즐겨찾기 버튼 Optimistic UI로 변경

* chore: useMutation queryKey 중복제거

* fix: 이미지 경로가 오경로여도 기본 이미지 노출로 변경

* feat: 약물 상세 index 마이그레이션 삭제 및 약물 검색 b-tree -> GIN index로 변경

* [#118] 약물 상세 페이지 SSR + Tanstack Query 변경 (#127)

* chore: axios 오류 유틸함수로 분리

* refactor: 약물 상세 데이터 api SSR 방식 변경

* chore: fetch -> axios 호출로 변경, axiosError 추가

* refactor: 즐겨찾기 버튼 컴포넌트 분리

* refactor: 약물 상세 API SSR 형식으로 불러오기 변경

* refactor: SSR + 리액트 쿼리 조합으로 약물 API 불러오기 기능 리팩토링

* chore: 에러메시지 string 타입으로 변경, fetchData async/await 방식으로 변경

* refactor: suspense 로딩중 기능 추가

* refactor: ErrorBoundary 기능 추가

* refactor: prefetchQuery 추가

* chore: queryClient 변수로 따로 빼기

* chore: 중복 코드 삭제, 변수명 변경 등 수정

* chore: 탭 메뉴 유니온 타입 -> as const로 변경

* chore: 로그인한 가입자만 즐겨찾기 가능 알럿 추가

* chore: 즐겨찾기 api 호출 함수 에러 로직 수정

* refactor: 즐겨찾기 tanstack query로 변경

* chore: detail medicineid -> useParams id 값 불러오기 변경

* chore: 약물 이미지가 없을 때, 텍스트 표시

* feat: 이미지 경로 없을 경우 및 404 에러일 경우 다른 이미지 추가, 약물정보 없을시, 정보없음 텍스트 노출

* feat: 이미지 경로 없을시, 이미지 크기 변경

* feat: 즐겨찾기 버튼 Optimistic UI로 변경

* chore: useMutation queryKey 중복제거

* fix: 이미지 경로가 오경로여도 기본 이미지 노출로 변경

* [#118] 즐겨찾기 리스트, 삭제 tanstack query 추가 (#133)

* feat: 즐겨찾기 마이페이지 tanstack query 추가

* fix: staletime, gctime 값 변경 및 간단 주석 추가

* fix: suspense 관련 코드 제거

* feat: favoriteStatus 즐겨찾기 상태 prefetchQuery 추가 및 비로그인일 때, 알럿창 알림 추가

* [#118] 커뮤니티 게시판 TanStack Query 도입 (#128)

* chore: fetchPost axios 에러 추가

* chore: 코멘트, 댓글 컴포넌트 분리

* chore: 리액트 쿼리 hook 분리

* refactor: 게시물 상세 데이터 SSR + react query

* chore: 리액트 쿼리 훅 분리

* refactor: 게시물 리스트 리액트 쿼리 기능 추가 및 훅 분리

* chore: 유틸함수, 훅 분리

* refactor: 게시물 수정시 무효화 기능 추가

* chore: 무효화 순서 수정/createDOMPurify 설정 변경

* chore: 알럿 메세지 상수화

* chore: 게시물 가져오기, 수정, 삭제 함수 분리

* refactor: 게시글 수정/삭제 무효화 작업 및 quill 버전 변경

* fix: react-quill 재설치

* fix: create page에서도 react-quill-new를 react-quill로 변경

* fix: errors.ts에서 중복된 API_REQUEST_ERROR 제거

* fix: page.tsx 이외 파일 컴포넌트 파일로 분리

* fix: 게시글 번호 오류 수정

* fix: 커뮤니티 게시판 이미지 업로드 오류

* feat: 알럿 메세지 상수화

* feat: 로딩중 suspense로 변경 및 에러바운더리 클래스형 -> 라이브러리로 변경

* fix: 검색 버튼을 눌렀을 때만 글 검색 가능하게 변경

* feat: URL 파라미터를 사용하여 상태 관리 추가

* fix: 'Cache-Control': 'no-store' 삭제

* feat: 추천수 tanstack query 도입

* fix: stale time, gc time 시간 표시 변경

* [#134] 로딩 상태 로딩스피너 추가  (#136)

* refactor: 로딩중 -> 로딩스피너 변경 및 약물 상세 페이지 탭 수정

* feat: 로그인/회원가입 반응형 추가

* feat: title 추가

* feat: 로딩 중 텍스트에서 로딩 스피너로 변경하기

* feat: 로그인/회원가입 페이지 버튼 로딩중 텍스트 추가

* feat: 구글 로그인도 로그인 중.. 텍스트 추가

* feat: 커뮤니티 게시물 클릭시, 로딩 스피너 추가

* feat: 테스트 계정 로그인 페이지 텍스트 추가
@henny1105 henny1105 added the 🔨 Refactor 코드 리팩토링 label Mar 30, 2025
@henny1105 henny1105 requested a review from Copilot March 30, 2025 07:33
@henny1105 henny1105 self-assigned this Mar 30, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR implements improvements to the authentication system by updating client-side error handling, enhancing refresh token storage with transaction support, and revising configuration settings. Key changes include:

  • Replacing state‑based error handling with toast notifications in authentication hooks and pages.
  • Updating controllers and services to use transactions for refresh token management.
  • Adjusting Docker and workflow configuration, and removing obsolete session cookie handling components.

Reviewed Changes

Copilot reviewed 26 out of 28 changed files in this pull request and generated no comments.

Show a summary per file
File Description
apps/next-client/src/hooks/auth/useLoginActions.ts Replaced setError and manual session cookie logic with toast notifications.
apps/next-client/src/constants/errors.ts Added authentication-specific error messages.
apps/next-client/src/components/SessionCookieSetter.tsx Removed the obsolete session cookie setter component.
apps/next-client/src/components/Header.tsx Removed manual cookie removal in favor of next-auth handling.
apps/next-client/src/app/layout.tsx Integrated ToastContainer and removed SessionCookieSetter reference.
apps/next-client/src/app/auth/signup/page.tsx Updated signup form to leverage toast notifications and validation.
apps/next-client/src/app/auth/login/page.tsx Updated login form to use toast notifications and validation.
apps/next-client/src/app/auth/authOptions.ts Enhanced authentication options with improved comments and configuration.
apps/express-server/src/types/medicineTypes.ts Removed unused medicine type definitions.
apps/express-server/src/services/refreshTokenService.ts Added transaction support for refresh token storage and removal.
apps/express-server/src/middleware/authMiddleware.ts Improved documentation for token verification middleware.
apps/express-server/src/controllers/signupController.ts Updated refresh token storage to use transactions.
apps/express-server/src/controllers/refreshController.ts Enhanced refresh token logic with transaction handling and explicit token verification.
apps/express-server/src/controllers/loginController.ts Updated token storage with transaction support.
apps/express-server/src/controllers/googleLoginController.ts Revised Google login to use transaction-based token management.
app.yaml Modified Docker configuration settings.
README.md Updated project badges and documentation to reflect recent changes.
.github/workflows/docker-img.yml Revised Dockerfile path in the CI configuration.
Files not reviewed (2)
  • Dockerfile: Language not supported
  • apps/next-client/package.json: Language not supported
Comments suppressed due to low confidence (1)

apps/express-server/src/controllers/refreshController.ts:34

  • Ensure that REFRESH_SECRET is properly imported and defined to avoid potential runtime errors from an undefined secret.
decoded = jwt.verify(refreshToken, REFRESH_SECRET!) as CustomJwtPayload;

@henny1105 henny1105 merged commit f0d927d into develop Mar 30, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🔨 Refactor 코드 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants