Skip to content

[4팀 이예인] Chapter 1-2. AI와 테스트를 활용한 안정적인 기능 개발 #3

Closed
yein1ee wants to merge 18 commits intohanghae-plus:mainfrom
yein1ee:main
Closed

[4팀 이예인] Chapter 1-2. AI와 테스트를 활용한 안정적인 기능 개발 #3
yein1ee wants to merge 18 commits intohanghae-plus:mainfrom
yein1ee:main

Conversation

@yein1ee
Copy link

@yein1ee yein1ee commented Oct 25, 2025

#88

과제 체크포인트

필수 스펙

  1. 반복 유형 선택
  • 일정 생성 또는 수정 시 반복 유형을 선택할 수 있다.
  • 반복 유형은 다음과 같다: 매일, 매주, 매월, 매년
    • 31일에 매월을 선택한다면 → 매월 마지막이 아닌, 31일에만 생성하세요.
    • 윤년 29일에 매년을 선택한다면 → 29일에만 생성하세요!
  • 반복일정은 일정 겹침을 고려하지 않는다.
  1. 반복 일정 표시
    • 캘린더 뷰에서 반복 일정을 아이콘을 넣어 구분하여 표시한다.
  2. 반복 종료
    • 반복 종료 조건을 지정할 수 있다.
    • 옵션: 특정 날짜까지
      • 예제 특성상, 2025-12-31까지 최대 일자를 만들어 주세요.
  3. 반복 일정 수정
    1. ‘해당 일정만 수정하시겠어요?’ 라는 텍스트에서 ‘예’라고 누르는 경우 단일 수정
      • 반복일정을 수정하면 단일 일정으로 변경됩니다.
      • 반복일정 아이콘도 사라집니다.
    2. ‘해당 일정만 수정하시겠어요?’ 라는 텍스트에서 ‘아니오’라고 누르는 경우 전체 수정
      • 이 경우 반복 일정은 유지됩니다.
      • 반복일정 아이콘도 유지됩니다.
  4. 반복 일정 삭제
    1. ‘해당 일정만 삭제하시겠어요?’ 라는 텍스트에서 ‘예’라고 누르는 경우 단일 수정
      1. 해당 일정만 삭제합니다.
    2. ‘해당 일정만 삭제하시겠어요?’ 라는 텍스트에서 ‘아니오’라고 누르는 경우 전체 수정
      1. 반복 일정의 모든 일정을 삭제할 수 있다.

기본 과제

공통 제출

  • 테스트를 잘 작성할 수 있는 규칙 명세
  • 명세에 있는 기능을 구현하기 위한 테스트를 모두 작성하고 올바르게 구현했는지
  • 명세에 있는 기능을 모두 올바르게 구현하고 잘 동작하는지

기본 과제(Easy)

  • AI 코드를 잘 작성하기 위해 추가로 작성했던 지침
  • 커밋별 올바르게 단계에 대한 작업
  • AI 도구 활용을 개선하기 위해 노력한 점 PR에 작성

기본 과제(Hard)

  • Agent 구현 명세 문서 또는 코드
  • 커밋별 올바르게 단계에 대한 작업
  • 결과를 올바로 얻기위한 history 또는 log
  • AI 도구 활용을 개선하기 위해 노력한 점 PR에 작성

심화 과제

  • 모든 질문에 대해 꼼꼼하게 정리했는지

과제 셀프회고

기술적 성장

코드 품질

학습 효과 분석

과제 피드백

리뷰 받고 싶은 내용

joshuayeyo referenced this pull request in joshuayeyo/hh-week2 Oct 26, 2025
유틸리티 테스트 파일에 path alias 적용

- fetchHolidays 테스트: 상대 경로 → @/apis/fetchHolidays로 변경
- timeValidation 테스트: 상대 경로 → @/utils/timeValidation으로 변경
- 코드베이스 전체의 import 일관성 확보
- Issue #3 테스트 마이그레이션 완료 상태로 업데이트
- 코드 리뷰 문서 작성 및 품질 검증 완료
joshuayeyo referenced this pull request in joshuayeyo/hh-week2 Oct 26, 2025
이벤트 유틸리티 테스트 파일 import 및 타입 업데이트

- path alias 적용: ../../utils/eventUtils → @/utils/getFilteredEvents
- 타입 업데이트: Event → EventProps (@/types/events/Event.types)
- 8개 포괄적 테스트 케이스 유지:
  - 검색 기능 테스트 (검색어 매칭, 대소문자 구분)
  - 날짜 범위 필터링 (주간/월간 뷰)
  - 통합 시나리오 (검색 + 필터링 조합)
  - 에지 케이스 (빈 데이터, 월 경계 처리)
- describe 단위 유지로 단일 함수 테스트 구조 보존
- Issue #3 테스트 마이그레이션 항목 업데이트
- 코드 리뷰 문서 작성 및 할일 목록 업데이트
@joshuayeyo
Copy link

죄송합니다..
클로드가 자동으로 #3을 사용해서 태깅됐네요🥹

… 2 TDD guidance\n\n- Unify language to English across agent docs\n- Correct rule references and cite recurring spec\n- Add explicit guidance for Feature 2 (recurring icon & detach)\n- Clarify test placement and minimal implementation touchpoints
…스트 설명/산출물 한국어\n- Feature 2(반복 아이콘/분리) TDD 가이드 유지\n- 예시 커밋 메시지 한국어로 정비 및 문서화
@JunilHwang JunilHwang closed this Oct 31, 2025
@JunilHwang
Copy link
Collaborator

JunilHwang commented Oct 31, 2025

test는 통과하셨음

joshuayeyo added a commit to joshuayeyo/hh-week-2 that referenced this pull request Oct 31, 2025
…anghae-plus#3)

> 다음부터는 이슈를 더 잘게 쪼갤 것이다. `Files Changed`가 많을 것이라고는 예상했으나, 이렇게까지 커밋 양이 많아질 것은 예상하지 못했다. 아마 `hook` | `types` | `components` | `utils` | `tests`를 모두 쪼개는 것이 더 좋았을 것 같다.

## 주요 마이그레이션:
  - 1주차 캘린더 애플리케이션을 AI 기반 개발 표준으로 완전 마이그레이션
  - App.tsx 91% 코드 감소 (748줄 → 69줄), 모놀리식 → 모듈형 아키텍처 전환
  - 90+ 컴포넌트/훅/유틸리티 모듈화, 14개 useState → 1개 useAppState 통합

## 아키텍처 개선:
  - useReducer 패턴 도입으로 상태 관리 개선
  - Hook Composition 패턴 및 SOLID 원칙 적용
  - TypeScript 엄격 모드 및 ESLint any 타입 완전 제거

## 테스트 시스템:
  - 통합 테스트 모듈화 (357줄 → 5개 모듈)
  - 병렬 테스트 격리 유틸리티 및 헬퍼 4개 구축
  - HTML 검증 오류 및 타임아웃 문제 해결

## 품질 확보:
  - 100% 타입 안전성, 0개 린트 에러
  - 38개 코드 리뷰 문서, 17개 TODO 트래킹
  - 15개 통합 테스트 100% 통과

## 커밋 메시지 목록  
  - Docs(3): Create previous codebase migration issue
  - Chore(3): Add Prettier JSX formatting rules
  - Fix(3): Remove ESLint Prettier conflict rule
  - Refactor(3): Migrate event type definitions from previous codebase
  - Refactor(3): Migrate constants from previous codebase
  - Refactor(3): Migrate calendar type definitions from previous codebase
  - Refactor(3): Migrate styles from previous codebase
  - Remove(3): Delete old types.ts file after migration
  - Feat(3): Add NotificationPanel type definitions with data/handler separation
  - Feat(3): Add OverlapDialog type definitions with data/handler separation
  - Feat(3): Add updated schedules type definitions with data/handler separation
  - Refactor(3): Migrate calendar components from previous codebase
  - Refactor(3): Migrate event form components and types
  - Refactor(3): Migrate schedule components and types
  - Refactor(3): Migrate OverlapDialog component and types
  - Refactor(3): Migrate and modularize date utilities
  - Refactor(3): Migrate and organize event utilities system
  - Refactor(3): Migrate notification utilities system
  - Refactor(3): Migrate useSearch hook with performance optimization
  - Refactor(3): Split useNotifications hook into focused modules
  - Refactor(3): Split useEventOperations hook into operation modules
  - Refactor(3): Update import path in useCalendarView hook
  - Refactor(3): Migrate useEventForm hook with improved types and imports
  - Refactor(3): Migrate useEventForm to useReducer pattern for enhanced architecture
  - Fix(3): Correct component import paths for calendar and schedule modules
  - Feat(3): Add EventSubmission types for useEventSubmission hook
  - Refactor(3): Add TypeScript type definitions for useAppState hook
  - Fix(3): Fix markdown file organization due to Claude's mistake
  - Refactor(3): Apply UseAppStateReturn type to App.tsx and complete architecture transformation
  - Fix(3): Move useAppState review files to correct directory due to Claude's mistake
  - Fix(3): Update mock handlers import paths and coding standards
  - Feat(3): Add isolated mock test utilities for parallel execution
  - Refactor(3): Modularize event overlap test files into organized structure
  - Refactor(3): Modularize dateUtils test files into organized modules
  - Refactor(3): Modularize notificationUtils test files into organized modules
  - Refactor(3): Apply path aliases to utility test files
  - Refactor(3): Update eventUtils test imports and types
  - Refactor(3): Fix hooks tests with working MSW configuration
  - Refactor(3): Apply path aliases to MSW handlers index file
  - Refactor(3): Create test helper utilities
  - Refactor(3): Modularize integration tests and fix UI issues
  - Docs(3): Update migration progress with test modularization completion
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.

3 participants