Skip to content

fix: 관심과목 분석 상세 페이지 버그 수정#348

Open
hyunwoo0081 wants to merge 14 commits into
developfrom
fix/prev-baskets
Open

fix: 관심과목 분석 상세 페이지 버그 수정#348
hyunwoo0081 wants to merge 14 commits into
developfrom
fix/prev-baskets

Conversation

@hyunwoo0081

@hyunwoo0081 hyunwoo0081 commented Apr 14, 2026

Copy link
Copy Markdown
Member

작업 내용

  • 이전 학기의 과목도 관심과목 분석 상세 페이지를 볼 수 있도록 수정
    • 이번 학기 과목은 관심과목 분석 상세 (wishes detail)페이지에서 접근이 되지만, 이전 학기에 대한 과목은 정보가 없어서 나오지 않음. 예시는 다음과 같습니다
  • wishesDetail page 페이지에 맞도록 코드 리펙토링
    • wishesInfo 로 input 값을 따로 분리하여 DI (의존성 주입) 방식으로 변경
    • 컴포넌트 분리 - widget
    • pendding 및 에러처리
  • 404 에러 시, 페이지 없음 나오도록 수정

변경 사항 및 리뷰 포인트

추후 추가하면 좋은 issue

  • 내부 컴포넌트에서 throw 를 했을 때, 상위 컴포넌트에서 error 를 감지할 방법이 없음.
    • page 에서는 컴포넌트에서 error 를 throw 할 때 감지할 수 있는 방법이 없음.
  • API 에 대한 Error 처리가 공통적으로 정의 되어있지 않음.
    • 어디는 404, 어디는 400 만 예외처리 되도록 되어있음.
image

@hyunwoo0081 hyunwoo0081 self-assigned this Apr 14, 2026
@hyunwoo0081 hyunwoo0081 changed the base branch from main to develop April 14, 2026 08:25
@hyunwoo0081 hyunwoo0081 changed the title feat: semester 관리 hook 추가 관심과목분석페이지 버그 수정 Apr 14, 2026
@hyunwoo0081 hyunwoo0081 changed the title 관심과목분석페이지 버그 수정 관심과목 분석 페이지 버그 수정 Apr 14, 2026
@github-actions

github-actions Bot commented Apr 15, 2026

Copy link
Copy Markdown

🚀 Preview Deployment

This preview is automatically updated on each push.

Remove console log for response status in error handling.
@hyunwoo0081 hyunwoo0081 marked this pull request as ready for review April 16, 2026 03:43
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@hyunwoo0081 hyunwoo0081 changed the title 관심과목 분석 페이지 버그 수정 관심과목 분석 상세 페이지 버그 수정 Apr 17, 2026

@hyunwoo0081 hyunwoo0081 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

위험

버그, 런타임 에러, 빌드 실패 가능성이 있는 항목. 반드시 이번 PR에서 수정.

  • [packages/client/src/entities/subjectAggregate/model/useDetailWishes.ts:5] FSD 레이어 위반 (Entities -> Features 참조)
    • 이유: entities 레이어에서 상위 레이어인 features/wish/model/useWishesInfo를 import하고 있습니다. 이는 FSD 아키텍처의 계층 구조를 위반하며 순환 의존성 문제를 야기할 수 있습니다.
    • 수정 방향: WishesInfo 인터페이스를 shared/model로 이동시키거나, 엔티티 훅에서는 필요한 데이터(subjectId, semesterCode)만 개별 인자로 받도록 수정하세요. (useRecommendWishes.ts, useDetailRegisters.ts 등 동일 패턴 수정 필요)

중간

컨벤션 위반, 관심사 미분리, allcll-ui 미적용 등. 이번 PR에서 수정 권장.

  • [packages/client/src/entities/semester/model/useSemesterNameBySubjectId.ts:3-7] 학기 데이터 하드코딩

    • 이유: 학기 범위(startId, endId)와 같은 마스터 데이터가 파일 내부에 리터럴로 존재합니다. 컨벤션 제6조에 따라 상수는 공통 파일에서 관리해야 합니다.
    • 수정 방향: 해당 배열을 shared 레이어의 상수 파일이나 별도의 constants 파일로 분리하여 관리하세요.
  • [packages/client/src/widgets/wishlist/WishesBarChart.tsx:34] allcll-ui 레이아웃 컴포넌트 미적용

    • 이유: 레이아웃 구성을 위해 divclassName을 직접 사용하고 있습니다. 컨벤션 제1조에 따라 allcll-uiFlexGrid를 우선 사용해야 합니다.
    • 수정 방향: <div className="mt-4"> 대신 상위 컴포넌트에서 gap을 주거나, Flex 컴포넌트 등을 활용하여 레이아웃을 구성하세요.

낮음

네이밍 개선, 리팩토링 제안 등. 추후 작업으로 미뤄도 무방.

  • [packages/client/src/pages/wishlist/WishesDetail.tsx:31] 페이지 최대 너비 컨벤션 미준수

    • 이유: max-w-5xl을 사용 중이나, 컨벤션 제11조는 max-w-7xl 통일을 권장합니다.
    • 수정 방향: 디자인 의도가 명확한 경우가 아니라면 max-w-7xl로 수정을 검토해주세요.
  • [packages/client/src/entities/semester/model/useSemesterNameBySubjectId.ts:7] 미사용 주석 코드 잔존

    • 이유: 컨벤션 제9조에 따라 코드 자체로 의도가 명확한 경우나 완료된 코드는 주석을 제거합니다.
    • 수정 방향: 주석 처리된 SPRING_26 관련 코드를 삭제하세요.

@hyunwoo0081

Copy link
Copy Markdown
Member Author

중간

컨벤션 위반, 관심사 미분리, allcll-ui 미적용 등. 이번 PR에서 수정 권장.

  • [packages/client/src/pages/wishlist/WishesDetail.tsx] 공통 레이아웃 적용 누락

    • 이유: 가이드 2번에 따라 새 페이지는 \MainLayout\ 또는 \ServiceLayout\을 사용해야 합니다.
    • 수정 방향: 최상위 \div\ 대신 적절한 레이아웃 컴포넌트로 감싸주세요.
  • [packages/client/src/widgets/wishlist/WishesDetailInfo.tsx 등 다수] 인터페이스 네이밍 컨벤션 위반 (\I\ prefix 누락)

    • 이유: 팀 컨벤션상 인터페이스 이름에는 \I\ prefix를 붙여야 합니다. (가이드 5번)
    • 수정 방향: \WishesDetailInfoProps, \WishesSemesterBannerProps, \RecommendWishesProps\ 등을 \I\ prefix가 붙은 형태로 수정해주세요.
  • [다수 파일] 타입 전용 임포트 (\import type) 미사용

    • 이유: 순환 의존성 방지 및 빌드 최적화를 위해 타입 임포트 시 \import type\을 사용해야 합니다.
    • 수정 방향: \import { WishesInfo } ...\를 \import type { WishesInfo } ...\로 변경해주세요. (\WishesDetailInfo.tsx, \DepartmentDoughnut.tsx\ 등)
  • [packages/client/src/widgets/wishlist/WishesDetailInfo.tsx:44] 인라인 객체 타입 정의 지양

    • 이유: 가이드 5번에 따라 Props 타입은 \interface\로 정의해야 합니다.
    • 수정 방향: \InlineSkeleton\의 props를 \IInlineSkeletonProps\ 인터페이스로 분리해주세요.

낮음

네이밍 개선, 리팩토링 제안 등. 추후 작업으로 미뤄도 무방.

  • [packages/client/src/features/wish/model/useWishesInfo.ts:11] 네이밍 개선 제안 (\isLastSemesterWish)

    • 이유: 의미가 다소 모호할 수 있습니다 (지난 학기인지, 이번이 마지막 찜인지).
    • 수정 방향: \isPastSemester\ 또는 \isPreviousSemester\ 등으로 변경을 고려해보세요.
  • [packages/client/src/widgets/wishlist/RecommendWishes.tsx] allcll-ui 디자인 시스템 활용 권장

    • 이유: 직접적인 \div + className\ 보다는 디자인 시스템의 \Flex, \Grid, \Box\ 등을 활용하는 것이 좋습니다.
    • 수정 방향: 최상위 컨테이너와 테이블 래퍼 등을 공통 컴포넌트로 교체해보세요.
  • [다수 파일] 임포트 경로의 확장자 제거 및 잔존 주석 정리

    • 이유: 관례상 임포트 경로에서 .ts, .tsx\ 확장자는 생략하며, 완료되지 않은 // Todo\ 주석은 이슈로 관리하거나 삭제하는 것이 좋습니다.

@sonarqubecloud

sonarqubecloud Bot commented May 1, 2026

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

Issues
6 New issues
7 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarQube Cloud

@hyunwoo0081

Copy link
Copy Markdown
Member Author

중간

컨벤션 위반, 관심사 미분리, allcll-ui 미적용 등. 이번 PR에서 수정 권장.

  • [packages/client/src/pages/wishlist/WishesDetail.tsx] 공통 레이아웃(MainLayout/ServiceLayout) 적용 누락 (미해결)

    • 이유: 이전 리뷰에서 지적된 대로 새 페이지는 \MainLayout\ 또는 \ServiceLayout\으로 감싸야 합니다. 현재 최상위가 \Fragment\와 \div\로 구성되어 있습니다.
    • 수정 방향: 최상위 컨테이너를 \MainLayout\ 또는 \ServiceLayout\으로 교체해주세요.
  • [다수 파일] 인터페이스 'I' prefix 및 'import type' 적용 누락 (잔여 사항)

    • 이유: \IWishesInfo\ 등 일부는 반영되었으나, 아래 파일들에서 여전히 컨벤션 위반이 발견됩니다.
    • 수정 필요 항목:
      • \useDetailWishes.ts: \interface DetailWishes\ -> \IDetailWishes\
      • \wishes.ts: \WishesApiResponse, \DetailRegister\ 등 -> \I\ prefix 추가
      • \useRecommendWishes.ts, \useDetailRegisters.ts: \import type\ 미적용된 \IWishesInfo\ 등
  • [다수 파일] 임포트 경로 확장자(.ts/.tsx) 미제거 (잔여 사항)

    • 이유: 프로젝트 관례상 임포트 경로에서 확장자는 생략합니다.
    • 수정 필요 항목: \wishes.ts, \useDetailRegisters.ts, \useRecommendWishes.ts\ 내의 임포트 경로들
  • [다수 파일] 완료되지 않은 Todo/fixme 주석 잔존 (잔여 사항)

    • 이유: 가이드 9번에 따라 코드 내에 남은 \Todo, \ ixme\ 주석은 정리되어야 합니다.
    • 수정 필요 항목: \useSemesterNameBySubjectId.ts, \useRecommendWishes.ts, \RecommendWishes.tsx\ 내의 주석들

낮음

네이밍 개선, 리팩토링 제안 등. 추후 작업으로 미뤄도 무방.

  • [packages/client/src/pages/wishlist/WishesDetail.tsx] 최상위 div를 Flex/Box 컴포넌트로 교체 권장
    • 이유: 가이드 1번에 따라 디자인 시스템의 공통 컴포넌트를 활용하는 것이 일관성 유지에 좋습니다.

\isPastSemester\ 네이밍 변경과 \IInlineSkeletonProps\ 인터페이스 추출 등 많은 부분이 개선되었습니다! 남은 잔여 사항들도 마저 정리 부탁드립니다.

@hyunwoo0081 hyunwoo0081 changed the title 관심과목 분석 상세 페이지 버그 수정 fix관심과목 분석 상세 페이지 버그 수정 May 3, 2026
@hyunwoo0081 hyunwoo0081 changed the title fix관심과목 분석 상세 페이지 버그 수정 fix: 관심과목 분석 상세 페이지 버그 수정 May 3, 2026

@INSANE-P INSANE-P left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

이전 학기 과목이 현재 학기 데이터에 없어서 상세가 안 뜨던 문제를 과목 아이디 기반으로 학기를 추적하는 방식 너무 좋은 것 같습니다. 해당 버그가 존재하는지도 모르고 있었는데 앞으로 더 관심을 가지도록 하겠습니다. 리뷰가 너무 늦어서 죄송합니다. 바쁘실텐데 수고많이하셨습니다.🙂
리뷰가 늦어져서 학기가 지나가 버렸네요. 학기쪽 부분 주석만 수정하고 바로 머지해도 될 것 같습니다.

Comment thread packages/client/src/entities/wishes/api/wishes.ts Outdated
Comment thread packages/client/src/entities/wishes/api/wishes.ts Outdated
Comment thread packages/client/src/entities/semester/model/useSemesterNameBySubjectId.ts Outdated
Comment thread packages/client/src/entities/subjectAggregate/model/useDetailWishes.ts Outdated
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

@hyunwoo0081

Copy link
Copy Markdown
Member Author

이전 학기 과목이 현재 학기 데이터에 없어서 상세가 안 뜨던 문제를 과목 아이디 기반으로 학기를 추적하는 방식 너무 좋은 것 같습니다. 해당 버그가 존재하는지도 모르고 있었는데 앞으로 더 관심을 가지도록 하겠습니다. 리뷰가 너무 늦어서 죄송합니다. 바쁘실텐데 수고많이하셨습니다.🙂 리뷰가 늦어져서 학기가 지나가 버렸네요. 학기쪽 부분 주석만 수정하고 바로 머지해도 될 것 같습니다.

꼼꼼하게 리뷰 주셔서 감사합니다.
리뷰 주신 부분은 반영 완료했습니다.

다시 PR 확인하면서 리펙토링 하는 부분이 많이 보이네요. 추후에 개선 할 포인트들은 따로 올려두겠습니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

이전 학기 관심과목 분석 탭에 정보가 나오지 않습니다

2 participants