Skip to content

feat: API 상세페이지 기초 퍼블리싱#56

Open
wlrnjs wants to merge 13 commits into
developfrom
feat/api-detail-publish
Open

feat: API 상세페이지 기초 퍼블리싱#56
wlrnjs wants to merge 13 commits into
developfrom
feat/api-detail-publish

Conversation

@wlrnjs
Copy link
Copy Markdown
Member

@wlrnjs wlrnjs commented May 13, 2026

Pull Request

관련 이슈

작업 내용

  • API 상세페이지 기초 퍼블리싱 진행했습니다.
  • src/mock 구조를 두어 목업 전용 데이터를 사용할 수 있도록 했습니다.

참고 사항

  • 디자인 시안 확정이 아닌 상태에서 진행해서 예외 처리, 색상 하드 코딩은 진행하지 않았습니다.
  • 디자인 토큰 관련 브랜치에서 이어서 작업한 브랜치라 파일 변경이 많이 표시됩니다.
  • 이전 PR 머지 후 리뷰해 주시면 됩니다.
api-detail

체크리스트

  • 기능이 정상 동작하는지 확인
  • 불필요한 코드/주석 제거

@wlrnjs wlrnjs requested a review from junye0l May 13, 2026 17:08
@wlrnjs wlrnjs self-assigned this May 13, 2026
@wlrnjs wlrnjs added D-3 3일 이내에 처리가 필요합니다. feature 새로운 기능 추가, 요구사항 반영 design CSS, 레이아웃, 반응형, 퍼블리싱 관련 수정 labels May 13, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented May 13, 2026

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

Project Deployment Actions Updated (UTC)
finditem-monitoring Ready Ready Preview, Comment May 14, 2026 1:33am

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이번 PR은 API 상세 페이지의 기초 퍼블리싱을 진행하고, 디자인 토큰을 프로젝트 전반에 적용하는 작업을 포함합니다. 디자인 시스템의 일관성을 유지하기 위해 Tailwind 설정을 최적화하고, 목업 데이터를 별도로 관리하여 개발 효율성을 높였습니다. 디자인 시안이 확정되지 않은 상태이므로 하드 코딩된 부분은 추후 개선할 예정입니다.

Highlights

  • API 상세 페이지 퍼블리싱: API 상세 페이지의 기본 레이아웃과 컴포넌트(헤더, 요약 카드, 차트 영역, 로그, 설정 정보 등)를 퍼블리싱했습니다.
  • 디자인 토큰 연동: 디자인 토큰 패키지를 모니터 웹 앱에 연동하고, Tailwind 설정에 프리셋을 추가하여 디자인 시스템을 적용했습니다.
  • 목업 데이터 구조화: API 상세 페이지 개발을 위해 src/mock 디렉토리를 생성하여 목업 데이터를 분리하고 관리하도록 했습니다.
  • 공통 컴포넌트 개선: CheckboxButton 및 TextField 컴포넌트의 스타일을 디자인 토큰 기반으로 업데이트하고, 필요한 아이콘(edit-pencil)을 추가했습니다.
Ignored Files
  • Ignored by pattern: **/mock/** (2)
    • apps/monitor-web/src/mock/apiDetail.ts
    • apps/monitor-web/src/mock/index.ts
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.


API 상세 페이지가 완성되어, 데이터가 흐르고 눈이 즐거워. 디자인 토큰으로 깔끔한 옷 입고, 이제는 장애도 한눈에 보이네.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist 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

This pull request integrates a design token system and implements the API Detail page with several new sub-components. Review feedback highlights a line-height issue in the custom Tailwind typography utilities where the line height was smaller than the font size, the presence of a debug console.warn statement, and the use of hardcoded color values instead of design tokens in the new UI components. Additionally, there is a suggestion to expand the Style Dictionary configuration to support more semantic token categories beyond just colors.

Comment on lines +57 to +71
".text-body1-semibold": {
fontSize: "18px",
fontWeight: "600",
lineHeight: "16px",
},
".text-body1-medium": {
fontSize: "18px",
fontWeight: "500",
lineHeight: "16px",
},
".text-body1-regular": {
fontSize: "18px",
fontWeight: "400",
lineHeight: "16px",
},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

text-body1-* 유틸리티 클래스에서 lineHeightfontSize보다 작게 설정되어 있습니다 (16px vs 18px). 이 경우 텍스트 줄이 겹쳐 보일 수 있습니다. lineHeightfontSize보다 큰 값(예: "24px")으로 수정해야 합니다. 또한, 프로젝트 전반의 일관성을 위해 px 대신 rem 단위를 사용하는 것을 권장합니다.

Suggested change
".text-body1-semibold": {
fontSize: "18px",
fontWeight: "600",
lineHeight: "16px",
},
".text-body1-medium": {
fontSize: "18px",
fontWeight: "500",
lineHeight: "16px",
},
".text-body1-regular": {
fontSize: "18px",
fontWeight: "400",
lineHeight: "16px",
},
".text-body1-semibold": {
fontSize: "1.125rem",
fontWeight: "600",
lineHeight: "1.5rem",
},
".text-body1-medium": {
fontSize: "1.125rem",
fontWeight: "500",
lineHeight: "1.5rem",
},
".text-body1-regular": {
fontSize: "1.125rem",
fontWeight: "400",
lineHeight: "1.5rem",
},


const ApiDetail = () => {
const { apiId } = useParams<{ apiId: string }>();
console.warn(apiId);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

디버깅 목적으로 사용된 console.warn 구문이 남아있습니다. 제품 코드에 포함되지 않도록 제거하는 것이 좋습니다.

pending: { label: "지연", color: "bg-[#FAAD14]" },
} as const;

const DetailCheckLogs = () => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

이 컴포넌트를 포함하여 새로 추가된 API 상세 페이지 컴포넌트들 전반에 하드코딩된 색상 값들이 사용되었습니다. 디자인 시스템의 일관성을 위해 디자인 토큰으로 대체하는 것을 권장합니다. 다만, 디자인이 아직 확정되지 않은 상태라면 레이아웃 스타일과 컴포넌트 변형의 분리 등 리팩토링은 추후 작업을 위해 별도로 기록해두고 현재는 미룰 수 있습니다. 다른 컴포넌트들(DetailHeader, DetailImpactedFeatures 등)의 하드코딩된 값들도 함께 검토해 보세요.

References
  1. Refactoring to separate concerns (e.g., layout styles from component variants) can be deferred if the component's design is not yet finalized, but it should be tracked for future implementation.

Comment on lines 68 to 95
for (const token of dictionary.allTokens) {
const [category, ...rest] = token.path;
const key = rest.join('-');
const key = rest.join("-");

if (category === 'color') setDeep(colors, rest, token.value);
else if (category === 'font-size') fontSize[key] = token.value;
else if (category === 'font-weight') fontWeight[key] = token.value;
else if (category === 'font-family') fontFamily[key] = token.value;
else if (category === 'line-height') lineHeight[key] = token.value;
if (category === "color") setDeep(colors, rest, token.value);
else if (category === "font-size") fontSize[key] = token.value;
else if (category === "font-weight") fontWeight[key] = token.value;
else if (category === "font-family") fontFamily[key] = token.value;
else if (category === "line-height") lineHeight[key] = token.value;
else if (category === "Semantic (Color)/Mode 1") {
const [type, ...semanticRest] = rest;
if (type.startsWith("[")) {
// fill-*, fg-*, border-*
const typePrefix = type.slice(1, -1).toLowerCase();
const semanticKey = [
typePrefix,
...semanticRest.map(sanitizeSegment),
].join("-");
if (semanticKey) colors[semanticKey] = token.value;
} else {
// Layout, Accent, Bg 등 non-bracket 타입
const semanticKey = [type, ...semanticRest]
.map(sanitizeSegment)
.join("-");
if (semanticKey) colors[semanticKey] = token.value;
}
}
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Tailwind 프리셋을 생성하는 로직에서 Semantic (Color) 토큰은 처리하고 있지만, font-size와 같은 다른 시맨틱 토큰들은 처리하지 않고 있습니다. 이 로직을 확장하여 font-size 등 다른 시맨틱 토큰들도 Tailwind 프리셋에 포함시키면 디자인 시스템의 일관성을 더욱 높일 수 있습니다.

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

Labels

D-3 3일 이내에 처리가 필요합니다. design CSS, 레이아웃, 반응형, 퍼블리싱 관련 수정 feature 새로운 기능 추가, 요구사항 반영

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[TASK] API 상세페이지 퍼블리싱

1 participant