Skip to content

Main <- Dev#302

Merged
2ruuuu merged 13 commits into
mainfrom
dev
Jun 25, 2026
Merged

Main <- Dev#302
2ruuuu merged 13 commits into
mainfrom
dev

Conversation

@2ruuuu

@2ruuuu 2ruuuu commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

#️⃣연관된 이슈

  • Closes FIN-이슈번호

📝작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요

스크린샷 (선택)

이번 PR의 스크린샷을 넣어주세요

💬리뷰 요구사항(선택)

@2ruuuu 2ruuuu self-assigned this Jun 25, 2026
@2ruuuu 2ruuuu merged commit 2506575 into main Jun 25, 2026
3 of 4 checks passed
@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은 애플리케이션의 날짜 및 시간 처리 로직을 서울 시간대 기준으로 표준화하고, 할 일 관리 기능의 사용성을 개선하는 데 중점을 두었습니다. 또한, 사용자 경험을 높이기 위한 접근성 개선 작업과 주요 기능에 대한 E2E 테스트를 추가하여 서비스의 안정성을 확보했습니다.

Highlights

  • 시간대 및 날짜 처리 표준화: Asia/Seoul 시간대를 기준으로 날짜를 처리하도록 로직을 개선하여 시간대 불일치 문제를 해결했습니다.
  • 할 일 관리 기능 개선: 할 일 생성 시 초기 날짜를 설정할 수 있도록 기능을 추가하고, 할 일 목록 섹션 로직을 최적화했습니다.
  • 접근성 강화: UI 컴포넌트 전반에 ARIA 레이블과 속성을 추가하여 웹 접근성을 개선했습니다.
  • E2E 테스트 추가: 게시글 작성, 좋아요, 댓글 등록 및 보호된 경로 접근에 대한 E2E 테스트를 추가하여 안정성을 높였습니다.
  • 환경 설정 개선: Docker 및 Playwright 환경에서 환경 변수를 더 안정적으로 로드할 수 있도록 설정을 보완했습니다.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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.

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.

@gemini-code-assist gemini-code-assist Bot left a comment

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.

Code Review

This pull request introduces environment configuration updates, timezone-aware date formatting for tasks, modal refactoring for task creation/editing, accessibility enhancements (such as aria-label and aria-hidden attributes), and new Playwright E2E tests. The review feedback suggests simplifying the date formatting utility using the en-CA locale, removing unused commented-out code, preferring Next.js Link over router-based navigation for better SEO/UX, and further improving accessibility with aria-pressed, dynamic labels, and menu state attributes.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +7 to +18
const formatServiceDate = (date: Date) => {
const dateParts = new Intl.DateTimeFormat('en-US', {
timeZone: SERVICE_TIME_ZONE,
year: 'numeric',
month: '2-digit',
day: '2-digit',
}).formatToParts(date);
const getPart = (type: Intl.DateTimeFormatPartTypes) =>
dateParts.find((part) => part.type === type)?.value;

return `${getPart('year')}-${getPart('month')}-${getPart('day')}`;
};

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

formatServiceDate 함수에서 Intl.DateTimeFormat을 사용해 날짜의 각 부분을 추출하고 조합하는 방식은 다소 복잡하며, getPartundefined를 반환할 가능성이 있어 타입 안전성 측면에서 아쉬움이 있습니다.

en-CA 로케일을 사용하면 YYYY-MM-DD 형식의 문자열을 직접 얻을 수 있으므로, 코드를 훨씬 더 간결하고 안전하게 작성할 수 있습니다.

const formatServiceDate = (date: Date) => {
  return new Intl.DateTimeFormat('en-CA', {
    timeZone: SERVICE_TIME_ZONE,
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
  }).format(date);
};

Comment on lines +28 to +33
// const {
// register,
// control,
// formState: { errors },
// } = useFormContext<TaskFormValues>();

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.log는 제거해 주세요.")에 따라, 불필요한 주석 코드는 제거하여 코드의 가독성과 유지보수성을 높이는 것이 좋습니다.

References
  1. 사용하지 않는 코드, 주석, console.log는 제거해 주세요. (link)

Comment on lines 222 to 228
<Button
className="shadow-brand-tertiary-30 fixed right-10 bottom-10 shadow-md md:right-20 md:bottom-20"
variant="icon-circle"
icon={<WriteIcon className="size-6" />}
icon={<WriteIcon className="size-6" aria-hidden="true" />}
aria-label="글쓰기"
onClick={() => router.push('/articles/write')}
></Button>

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

현재 Button 컴포넌트를 사용하여 클릭 시 router.push('/articles/write')로 페이지를 이동시키고 있습니다.

저장소 스타일 가이드의 접근성 지침("- 페이지 이동 목적이면 Link 사용을 권장해 주세요.")에 따라, 단순 페이지 이동에는 Link 컴포넌트를 사용하는 것이 검색 엔진 최적화(SEO) 및 사용자의 브라우저 사용 경험(새 탭에서 열기 등) 측면에서 더 좋습니다.

Button 컴포넌트가 href 속성을 지원하는지 확인하시거나, Next.js의 Link 컴포넌트로 대체하는 것을 권장합니다.

References
  1. 페이지 이동 목적이면 Link 사용을 권장해 주세요. (link)

Comment on lines 64 to 68
<button
type="button"
disabled={isPending}
aria-label="좋아요"
className={cn(

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

좋아요 버튼은 상태가 활성화(Liked)되거나 비활성화(Unliked)되는 토글 버튼입니다. 스크린 리더 사용자가 현재 버튼의 상태를 명확히 인지할 수 있도록 aria-pressed 속성을 추가하는 것이 좋습니다.

또한, aria-label을 고정된 "좋아요" 대신 현재 상태에 따라 "좋아요 취소" 또는 "좋아요"로 동적으로 변경하면 접근성이 더욱 향상됩니다.

Suggested change
<button
type="button"
disabled={isPending}
aria-label="좋아요"
className={cn(
<button
type="button"
disabled={isPending}
aria-label={isLiked ? '좋아요 취소' : '좋아요'}
aria-pressed={isLiked}
className={cn(

Comment on lines +59 to +61
<button type="button" aria-label="프로필 메뉴" onClick={toggleOpen}>
<SettingsIcon className="h-6 w-6" aria-hidden="true" />
</button>

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

설정 아이콘 버튼은 클릭 시 프로필 메뉴(드롭다운)를 열고 닫는 역할을 합니다. 스크린 리더 사용자가 이 버튼이 메뉴를 제어하고 있으며 현재 메뉴가 열려 있는지 여부를 알 수 있도록 aria-haspopup="menu"aria-expanded={isOpen} 속성을 추가하는 것이 좋습니다.

          <button
            type="button"
            aria-label="프로필 메뉴"
            aria-haspopup="menu"
            aria-expanded={isOpen}
            onClick={toggleOpen}
          >
            <SettingsIcon className="h-6 w-6" aria-hidden="true" />
          </button>

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants