Skip to content

[8팀 김상수] Chapter 3-2. 프런트엔드 테스트 코드 #45

Open
k-sang-soo wants to merge 20 commits intohanghae-plus:mainfrom
k-sang-soo:main
Open

[8팀 김상수] Chapter 3-2. 프런트엔드 테스트 코드 #45
k-sang-soo wants to merge 20 commits intohanghae-plus:mainfrom
k-sang-soo:main

Conversation

@k-sang-soo
Copy link

@k-sang-soo k-sang-soo commented Aug 29, 2025

8주차 과제 체크포인트

기본 과제

필수

  • 반복 유형 선택
    • 일정 생성 또는 수정 시 반복 유형을 선택할 수 있다.
    • 반복 유형은 다음과 같다: 매일, 매주, 매월, 매년
      • 31일에 매월을 선택한다면 -> 매월 마지막이 아닌, 31일에만 생성하세요.
      • 윤년 29일에 매년을 선택한다면 -> 29일에만 생성하세요!
  • 반복 일정 표시
    • 캘린더 뷰에서 반복 일정을 시각적으로 구분하여 표시한다.
      • 아이콘을 넣든 태그를 넣든 자유롭게 해보세요!
  • 반복 종료
    • 반복 종료 조건을 지정할 수 있다.
    • 옵션: 특정 날짜까지, 특정 횟수만큼, 또는 종료 없음 (예제 특성상, 2025-06-30까지)
  • 반복 일정 단일 수정
    • 반복일정을 수정하면 단일 일정으로 변경됩니다.
    • 반복일정 아이콘도 사라집니다.
  • 반복 일정 단일 삭제
    • 반복일정을 삭제하면 해당 일정만 삭제합니다.

선택

  • 반복 간격 설정
    • 각 반복 유형에 대해 간격을 설정할 수 있다.
    • 예: 2일마다, 3주마다, 2개월마다 등
  • 예외 날짜 처리:
    • 반복 일정 중 특정 날짜를 제외할 수 있다.
    • 반복 일정 중 특정 날짜의 일정을 수정할 수 있다.
  • 요일 지정 (주간 반복의 경우):
    • 주간 반복 시 특정 요일을 선택할 수 있다.
  • 월간 반복 옵션:
    • 매월 특정 날짜에 반복되도록 설정할 수 있다.
    • 매월 특정 순서의 요일에 반복되도록 설정할 수 있다.
  • 반복 일정 전체 수정 및 삭제
    • 반복 일정의 모든 일정을 수정할 수 있다.
    • 반복 일정의 모든 일정을 삭제할 수 있다.

심화 과제

  • 이 앱에 적합한 테스트 전략을 만들었나요?

각 팀원들의 테스트 전략은?

8팀 전략은 유열님 PR에 작성하였습니다.


과제 셀프회고

이번 과제는 개인적인 일이 있어서 많이 진행을 못했습니다ㅠㅠ

기술적 성장

코드 품질

학습 효과 분석

과제 피드백

리뷰 받고 싶은 내용

pnpm-lock.yaml에서 주요 패키지 버전 업데이트:
- @emotion/react: 11.13.3 → 11.14.0
- @typescript-eslint: 8.35.0 → 8.40.0
- eslint: 9.30.0 → 9.34.0
- 에이전트 기반 개발 프레임워크 구조 추가
- PM, 아키텍트, 개발자 등 10개 전문 에이전트 정의
- 프로젝트 템플릿과 체크리스트 시스템 구축
- PRD, 스토리, 아키텍처 문서 자동 생성 지원
- 프로젝트 개요 및 요구사항 정리
- UI/UX 규격 및 디자인 가이드라인 문서화
- 기술 스택과 아키텍처 결정사항 명시
- 개발 우선순위 및 일정 계획 수립
반복 일정 기능을 기존 캘린더에 추가하기 위한 Epic 문서 작성
- TDD 방식 개발 프로세스 정의
- 3개 스토리 단위로 기능 분할
- 기존 시스템과의 호환성 보장 계획
- 90% 테스트 커버리지 목표 설정
- prd.md → docs/prd/ 폴더로 6개 파일로 분할
- 요구사항, 기술제약, 에픽구조 등 섹션별 관리 개선
- brownfield-architecture.md → docs/architecture/ 폴더로 9개 파일로 분할
- 개요, 핵심발견사항, 구현계획 등 섹션별 관리 개선
- EventForm 반복 설정 UI 확장 계획
- 엣지 케이스 처리 (31일 매월, 윤년 2월 29일) 로직 정의
- RepeatInfo 인터페이스 확장 및 UUID 그룹핑 설계
- 기존 90% 완성된 repeat UI (App.tsx 440-477줄) 활용 전략
- Integration Verification 기준 정의 (성능 10% 미만, 호환성 100%)
- RepeatInfo에 id, endDate, skipInvalidDates 필드 추가
- 기존 Event 인터페이스와 100% 호환성 확인
- TypeScript 컴파일 성공적으로 통과
- UUID 그룹핑 및 엣지 케이스 처리 필드 준비 완료

Story: 1.1 Task 1 ✅
Story 1.1 Task 6 완료 ✅

- isActualDateExists 함수 테스트 (엣지 케이스 포함)
- useEventForm 훅 테스트 (UUID 생성, 유효성 검증)
- useEventOperations 반복 이벤트 생성 테스트
- 기존 알림 테스트의 타입 오류 수정 (id: number → string)
- 전체 테스트 스위트 통과 확인 (144개 테스트)
- 프로덕션 빌드 검증 완료
- 기존 기능과 호환성 확인
- useEventOperations 테스트 저장 실패 케이스 수정
- React import 누락 및 lint 경고 해결
- 모든 테스트 통과 (157/157)
- useEventOperations 훅에서 editing 매개변수 제거
- saveEvent 내부에서 'id' 속성으로 편집 모드 자동 판단
- React 훅 규칙 위반 해결 및 이벤트 CRUD 안정성 향상
- 모든 테스트에서 editing 매개변수 제거
- 생성 테스트에서 Event 대신 EventForm 타입 사용
- 159개 테스트 모두 통과 확인
- 모든 승인 기준 완전 구현 확인
- 엣지 케이스 처리 및 테스트 커버리지 우수
- Ready for Done 상태로 승인
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.

1 participant