Skip to content

[feature] 메인 동아리카드 로고 테두리 설정 #1013

Merged
seongwon030 merged 3 commits intodevelop-fefrom
feature/#1012-improve-club-logo-styling-MOA-488
Jan 9, 2026
Merged

[feature] 메인 동아리카드 로고 테두리 설정 #1013
seongwon030 merged 3 commits intodevelop-fefrom
feature/#1012-improve-club-logo-styling-MOA-488

Conversation

@seongwon030
Copy link
Member

@seongwon030 seongwon030 commented Jan 7, 2026

#️⃣연관된 이슈

ex) #1012

📝작업 내용

1. 동아리 카드 로고 테두리 설정

로고 배경이 흰색이면 동아리카드 배경색과 동일하기에 로고 구분이 어려운 문제가 있었습니다. 그래서 회색 테두리를 디폴트로 적용했습니다.

2. jest Type 오류 해결

테스트파일에서 타입스크립트 오류가 발생. 이는 tsconfig.json에서 타입을 인식하는 코드가 빠져있어서 생긴 문제였습니다.

아래와 같이 "jest"를 배열에 추가하여 해결했습니다.

    "types": ["vite/client", "jest"]

중점적으로 리뷰받고 싶은 부분(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

논의하고 싶은 부분(선택)

논의하고 싶은 부분이 있다면 작성해주세요.

🫡 참고사항

Summary by CodeRabbit

릴리스 노트

  • 스타일 개선

    • 클럽 로고 컴포넌트의 시각적 스타일 개선: 테마 기반의 테두리와 배경색이 적용되었습니다.
  • 개발 환경

    • TypeScript 타입 설정 업데이트: Jest 타입 지원이 추가되었습니다.
    • 모듈 경로 정리: 내부 모듈 구조가 조정되었습니다.

✏️ Tip: You can customize this high-level summary in your review settings.

- 테마 컬러 시스템 적용
- 회색 테두리 추가 (0.5px solid gray[400])
- 배경색을 하드코딩에서 테마 컬러로 변경 (#efefef -> colors.base.white)
@seongwon030 seongwon030 self-assigned this Jan 7, 2026
@seongwon030 seongwon030 added ✨ Feature 기능 개발 💻 FE Frontend labels Jan 7, 2026
@vercel
Copy link

vercel bot commented Jan 7, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
moadong Ready Ready Preview, Comment Jan 9, 2026 2:10am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 7, 2026

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: Invalid regex pattern for base branch. Received: "**" at "reviews.auto_review.base_branches[0]"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Walkthrough

TypeScript 설정에 Jest 타입을 추가하고, ClubLogo 컴포넌트의 임포트 경로를 업데이트했습니다. ClubLogo 스타일을 개선하여 그레이 테두리를 추가하고 하드코딩된 배경색을 테마 기반 색상으로 변경했습니다.

Changes

Cohort / File(s) 요약
TypeScript 설정
frontend/tsconfig.json
Jest 타입을 TypeScript 컴파일러 옵션의 types 배열에 추가
ClubCard 임포트 경로 업데이트
frontend/src/pages/MainPage/components/ClubCard/ClubCard.tsx
ClubLogo 임포트 경로를 @/components/ClubLogo/ClubLogo에서 @/pages/MainPage/components/ClubLogo/ClubLogo로 변경
ClubLogo 스타일 개선
frontend/src/pages/MainPage/components/ClubLogo/ClubLogo.tsx
테마 기반 colors 모듈 임포트 추가, StyledClubLogo에 colors.gray[400] 테두리 추가, 배경색을 하드코딩된 #efefef에서 colors.base.white로 변경

예상 코드 리뷰 소요 시간

🎯 1 (Trivial) | ⏱️ ~3분

가능 관련 이슈

  • MOA-488: ClubLogo 컴포넌트에 추가된 회색 테두리(colors.gray[400])가 메인 동아리카드 테두리를 회색으로 설정하는 요구사항을 직접적으로 충족합니다.

가능 관련 PR

추천 레이블

🎨 Design

추천 리뷰어

  • lepitaaar
  • oesnuj
  • suhyun113
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 메인 동아리카드 로고에 회색 테두리를 설정하는 주요 변경 사항을 명확하게 요약하고 있습니다.
Linked Issues check ✅ Passed 코드 변경사항이 연결된 이슈 MOA-488의 요구사항을 충족합니다. 로고에 회색 테두리가 추가되었고 테마 색상을 적용하였습니다.
Out of Scope Changes check ✅ Passed tsconfig.json의 Jest 타입 추가는 테스트 환경 설정 개선로 관련 이슈와 직접적이지 않으나, 개발 환경 개선의 범주이며 컴포넌트 구조 재정렬은 코드 유지보수성을 높입니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6197b35 and df449e9.

📒 Files selected for processing (2)
  • frontend/src/pages/MainPage/components/ClubCard/ClubCard.tsx
  • frontend/src/pages/MainPage/components/ClubLogo/ClubLogo.tsx
🧰 Additional context used
📓 Path-based instructions (3)
frontend/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (frontend/.cursorrules)

frontend/**/*.{ts,tsx,js,jsx}: Replace magic numbers with named constants for clarity
Replace complex/nested ternaries with if/else or IIFEs for readability
Assign complex boolean conditions to named variables for explicit meaning
Avoid hidden side effects; functions should only perform actions implied by their signature (Single Responsibility Principle)
Use unique and descriptive names for custom wrappers/functions to avoid ambiguity
Define constants near related logic or ensure names link them clearly to avoid silent failures
Break down broad state management into smaller, focused hooks/contexts to reduce coupling

Files:

  • frontend/src/pages/MainPage/components/ClubCard/ClubCard.tsx
  • frontend/src/pages/MainPage/components/ClubLogo/ClubLogo.tsx
frontend/**/*.{tsx,jsx}

📄 CodeRabbit inference engine (frontend/.cursorrules)

frontend/**/*.{tsx,jsx}: Abstract complex logic/interactions into dedicated components/HOCs
Separate significantly different conditional UI/logic into distinct components
Colocate simple, localized logic or use inline definitions to reduce context switching
Choose field-level or form-level cohesion based on form requirements when using form libraries like react-hook-form
Use Component Composition instead of Props Drilling to reduce coupling

Files:

  • frontend/src/pages/MainPage/components/ClubCard/ClubCard.tsx
  • frontend/src/pages/MainPage/components/ClubLogo/ClubLogo.tsx
frontend/**/*.{ts,tsx}

📄 CodeRabbit inference engine (frontend/.cursorrules)

Use consistent return types for similar functions/hooks

Files:

  • frontend/src/pages/MainPage/components/ClubCard/ClubCard.tsx
  • frontend/src/pages/MainPage/components/ClubLogo/ClubLogo.tsx
🧠 Learnings (4)
📓 Common learnings
Learnt from: seongwon030
Repo: Moadong/moadong PR: 195
File: frontend/src/pages/AdminPage/AdminPage.tsx:7-7
Timestamp: 2025-03-19T05:18:07.818Z
Learning: AdminPage.tsx에서 현재 하드코딩된 클럽 ID('67d2e3b9b15c136c6acbf20b')는 로그인 기능 구현 후 동적으로 가져오는 방식으로 수정될 예정입니다.
Learnt from: seongwon030
Repo: Moadong/moadong PR: 548
File: frontend/src/pages/ClubDetailPage/ClubDetailPage.tsx:17-57
Timestamp: 2025-07-19T05:05:10.196Z
Learning: ClubDetailPage.tsx에서 notJoinedClubNames 배열의 하드코딩은 의도적인 설계 결정입니다. 개발자가 명시적으로 하드코딩을 선택했으므로 이에 대한 리팩토링 제안을 하지 않아야 합니다.
📚 Learning: 2025-03-19T05:18:07.818Z
Learnt from: seongwon030
Repo: Moadong/moadong PR: 195
File: frontend/src/pages/AdminPage/AdminPage.tsx:7-7
Timestamp: 2025-03-19T05:18:07.818Z
Learning: AdminPage.tsx에서 현재 하드코딩된 클럽 ID('67d2e3b9b15c136c6acbf20b')는 로그인 기능 구현 후 동적으로 가져오는 방식으로 수정될 예정입니다.

Applied to files:

  • frontend/src/pages/MainPage/components/ClubCard/ClubCard.tsx
📚 Learning: 2025-11-25T14:08:23.253Z
Learnt from: CR
Repo: Moadong/moadong PR: 0
File: frontend/.cursorrules:0-0
Timestamp: 2025-11-25T14:08:23.253Z
Learning: Applies to frontend/**/*.{tsx,jsx} : Abstract complex logic/interactions into dedicated components/HOCs

Applied to files:

  • frontend/src/pages/MainPage/components/ClubCard/ClubCard.tsx
📚 Learning: 2025-11-25T14:08:23.253Z
Learnt from: CR
Repo: Moadong/moadong PR: 0
File: frontend/.cursorrules:0-0
Timestamp: 2025-11-25T14:08:23.253Z
Learning: Applies to frontend/**/*.{ts,tsx,js,jsx} : Replace magic numbers with named constants for clarity

Applied to files:

  • frontend/src/pages/MainPage/components/ClubLogo/ClubLogo.tsx
🧬 Code graph analysis (1)
frontend/src/pages/MainPage/components/ClubLogo/ClubLogo.tsx (1)
frontend/src/styles/theme/colors.ts (1)
  • colors (1-81)
🔇 Additional comments (3)
frontend/src/pages/MainPage/components/ClubLogo/ClubLogo.tsx (2)

2-2: LGTM! 테마 색상 적용을 위한 import가 적절합니다.

테두리와 배경색에 테마 기반 색상을 사용하여 일관성을 개선했습니다.


29-31: 배경색 변경의 시각적 영향을 확인해주세요.

회색 테두리(#DCDCDC) 추가는 잘 적용되었으나, 배경색을 #FFFFFF(흰색)로 변경하면 시각적으로 눈에 띄는 차이가 발생합니다. 로고가 원래 밝은 배경에 맞춰 디자인되지 않은 경우, 흰색 배경에서 시각적 문제가 발생할 수 있습니다.

추가로, 0.5px 테두리는 매우 얇아서 일부 디스플레이에서는 인식하기 어려울 수 있습니다. 필요시 1px로 조정하는 것을 고려해보세요. 모바일 스타일에는 border 속성이 없으므로 일관성도 확인해주세요.

frontend/src/pages/MainPage/components/ClubCard/ClubCard.tsx (1)

8-8: LGTM! Import 경로 업데이트가 적절합니다.

컴포넌트 리팩토링에 따라 import 경로가 올바르게 업데이트되었습니다.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
frontend/src/components/ClubLogo/ClubLogo.tsx (1)

29-29: 매직 넘버를 상수로 추출 권장

0.5px이 매직 넘버로 사용되고 있습니다. 코딩 가이드라인에 따라 명명된 상수로 추출하는 것을 권장합니다.

참고로 0.5px와 같이 매우 얇은 테두리는 일부 브라우저나 디스플레이에서 렌더링이 일관되지 않을 수 있습니다. 1px로 변경하거나 디자인팀과 확인해보시는 것을 권장합니다.

🔎 매직 넘버를 상수로 추출하는 제안

파일 상단에 상수를 정의:

+const BORDER_WIDTH = '0.5px';
+
 const presets = {
   main: {

그리고 해당 상수를 사용:

-    border: 0.5px solid ${colors.gray[400]};
+    border: ${BORDER_WIDTH} solid ${colors.gray[400]};

Based on learnings, 매직 넘버는 명명된 상수로 대체해야 합니다.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between d4f5520 and 6197b35.

📒 Files selected for processing (2)
  • frontend/src/components/ClubLogo/ClubLogo.tsx
  • frontend/tsconfig.json
🧰 Additional context used
📓 Path-based instructions (3)
frontend/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (frontend/.cursorrules)

frontend/**/*.{ts,tsx,js,jsx}: Replace magic numbers with named constants for clarity
Replace complex/nested ternaries with if/else or IIFEs for readability
Assign complex boolean conditions to named variables for explicit meaning
Avoid hidden side effects; functions should only perform actions implied by their signature (Single Responsibility Principle)
Use unique and descriptive names for custom wrappers/functions to avoid ambiguity
Define constants near related logic or ensure names link them clearly to avoid silent failures
Break down broad state management into smaller, focused hooks/contexts to reduce coupling

Files:

  • frontend/src/components/ClubLogo/ClubLogo.tsx
frontend/**/*.{tsx,jsx}

📄 CodeRabbit inference engine (frontend/.cursorrules)

frontend/**/*.{tsx,jsx}: Abstract complex logic/interactions into dedicated components/HOCs
Separate significantly different conditional UI/logic into distinct components
Colocate simple, localized logic or use inline definitions to reduce context switching
Choose field-level or form-level cohesion based on form requirements when using form libraries like react-hook-form
Use Component Composition instead of Props Drilling to reduce coupling

Files:

  • frontend/src/components/ClubLogo/ClubLogo.tsx
frontend/**/*.{ts,tsx}

📄 CodeRabbit inference engine (frontend/.cursorrules)

Use consistent return types for similar functions/hooks

Files:

  • frontend/src/components/ClubLogo/ClubLogo.tsx
🧠 Learnings (1)
📚 Learning: 2025-11-25T14:08:23.253Z
Learnt from: CR
Repo: Moadong/moadong PR: 0
File: frontend/.cursorrules:0-0
Timestamp: 2025-11-25T14:08:23.253Z
Learning: Applies to frontend/**/*.{ts,tsx,js,jsx} : Replace magic numbers with named constants for clarity

Applied to files:

  • frontend/src/components/ClubLogo/ClubLogo.tsx
🧬 Code graph analysis (1)
frontend/src/components/ClubLogo/ClubLogo.tsx (1)
frontend/src/styles/theme/colors.ts (1)
  • colors (1-81)
🔇 Additional comments (3)
frontend/src/components/ClubLogo/ClubLogo.tsx (2)

2-2: 테마 색상 시스템 도입 승인

테마 색상을 임포트하여 일관된 디자인 시스템을 적용한 점이 좋습니다.


31-31: 하드코딩된 색상을 테마 기반으로 개선

하드코딩된 #efefefcolors.base.white로 변경하여 테마 일관성을 확보한 점이 좋습니다.

frontend/tsconfig.json (1)

19-19: Jest 타입 정의 추가 승인

테스트 파일에서 Jest 관련 TypeScript 오류를 해결하기 위해 "jest"를 types 배열에 추가한 것이 적절합니다. 이는 표준적인 설정 방법입니다.

Copy link
Contributor

@lepitaaar lepitaaar left a comment

Choose a reason for hiding this comment

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

수고하셨습니다. 프리뷰 보니 훨씬 구분잘되는게 좋네요!!

@seongwon030 seongwon030 merged commit 4933eb8 into develop-fe Jan 9, 2026
3 checks passed
@seongwon030 seongwon030 deleted the feature/#1012-improve-club-logo-styling-MOA-488 branch January 9, 2026 07:07
@seongwon030 seongwon030 linked an issue Jan 11, 2026 that may be closed by this pull request
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💻 FE Frontend ✨ Feature 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feature] MOA-488 메인 동아리카드 테두리를 설정한다

2 participants