Skip to content

Conversation

@kwonjihyeon-dev
Copy link

@kwonjihyeon-dev kwonjihyeon-dev commented Nov 6, 2025

과제 3

필수 스펙

  • 드래그 앤 드롭(D&D) 기능 개발
    • 캘린더의 일정을 마우스로 끌어 다른 날짜나 시간으로 옮기는 기능을 구현합니다.
  • 날짜 클릭으로 일정 생성 기능 개발
    • 캘린더의 비어있는 날짜 셀을 클릭하면, 해당 날짜가 자동으로 폼에 채워지도록 하세요.

기본 과제

필수 스펙 개발과 E2E, 시각적 회귀 테스트를 모두 작성해주세요.

기본과제 제출

  • 아래 작성된 E2E 테스트 작성은 필수입니다. 추가로 작성하고 싶다면 작성해주세요.
  • 여기서 말하는 전반은 Create, Read, Update, Delete 모두에 해당합니다.
  1. 기본 일정 관리 워크플로우 전반을 검증하세요.
  2. 반복 일정 관리 워크플로우 전반을 검증하세요.
  3. 일정 겹침 처리 방식에 대해 검증하세요.
  4. 알림 시스템 관련 노출 조건에 대해 검증하세요.
  5. 검색 및 필터링 전반에 대해 검증하세요.
  • 아래 시각적 회귀 테스트는 필수 입니다. 추가로 작성하고 싶다면 작성해주세요.
  1. 타입에 따른 캘린더 뷰 렌더링
  2. 일정 상태별 시각적 표현
  3. 다이얼로그 및 모달
  4. 폼 컨트롤 상태
  5. 각 셀 텍스트 길이에 따른 처리
♨️
이 과정에서 컴포넌트 리팩토링이 필요할 수 있습니다!
여유가 있다면 컴포넌트를 아름답게 분리하는 고민을 해주시면 좋지만,
당장은 적절한 스토리를 작성하는데 더 집중해주세요.
적절한 추상화, 응집도를 높이고 결합도를 낮추는
우아한 설계는 이후 주차때 좀 더 집중해봐요.
- 물론, AI를 활용해도 좋습니다.
- 기존에 작성한 테스트는 깨지지 않도록 해주세요.
  - 이 과정에서 테스트가 분리될 수도 작성법이 수정될 수도 있습니다.
  - 정말 불필요한 케이스가 아니면, 테스트 케이스를 삭제하는건 최소화 해주세요.
  - 추가로 필요한 테스트가 생길 수 있지만, 작성은 자유롭게 선택해서 진행해주세요.

심화 과제

테스트 전략 작성해보기의 내용을 참고해서 지금까지 작성했던 프로젝트에 대해 테스트 전략을 구상해보세요.

심화 과제 제출

  • 내가 생각한 최적의 테스트 전략은 무엇인지, 그리고 그 이유를 작성해주세요.
  1. 통합 테스트의 비중을 높이자
  • 드래그 앤 드롭이라는 기능은 라이브러리에서 구현이 되어 있으니 (모듈 기능을 따로 단위 테스트로 점검할 필요가 없고) 로컬 데이터들과 결합이 잘 되는 지 판단하려면 모듈 + 모듈의 결합이 잘 동작하는 지 확인하는 통합테스트를 추가하는 게 어떨까.
  • E2E - "사용자가 주요 업무를 완수할 수 있는가", "전체 시스템이 실제 환경에서 통합되어 작동하는가" 와 같은 서비스 전반 플로우를 확인하는 테스트로 알고있어서 지금 프로젝트에서는 일정 관리 CRUD 자체를 테스트하는 정도로 해도 무방하지 않나.
  1. 시간 여유가 되서 추가할 수 있다면, 드래그 앤 드롭 기능을 E2E로 테스트하기
  • UI의 복잡성이 있기도하고, 일정 관리 CRUD E2E 테스트와 함께 (기존 테스트에 플로우 추가) 테스트하기가 이번 주차 기간 동안 진행할 수 있는 범위지 않을까
  • 팀원들이 합의한 최적의 테스트 전략은 무엇인지, 그리고 그 이유를 작성해주세요.
  • 그 전략에 맞춰 추가한 테스트는 무엇인지 나타내주세요.

과제 셀프회고

기술적 성장

코드 품질

학습 효과 분석

  • E2E, 회귀테스트에 대해 정확한 개념, 작성 기준에 대해서는 추가 학습이 필요하다고 생각이 들었습니다. 아무래도 기본 개념이 부족하다보니 팀원들이랑 의논하면서도 서로 주장하는 부분이 와닿지 않기도 했고, 과제를 위해 테스트 케이스를 가지고도 기준이나 범위가 모호해서 불필요한 검증까지하는 경험을 했습니다. 그래도 이번 주차에 어느 상황에 E2E 테스트를 해야하는 지, 세부 기능 검증에 대해서는 단위,통합 테스트로 검증하는 등 아직 조금 모호한 부분도 있지만 각각의 테스트들을 어느 상황에 사용하는 게 적절한 지 어느 정도 익히게 되었던 주차였다고 봅니다.

과제 피드백

리뷰 받고 싶은 내용

  1. 일정 수정 혹은 생성 후 스낵바 노출에서 타이밍 잡기가 쉽지 않은데(언제는 성공하고, 언제는 실패) 이런 케이스에서는 보통 어떻게 처리하시나요 ? response 응답 기다리는 방향도 시도해봤는데 timeout으로 실패하는 케이스가 다수 발생해서 원인이 API 응답 타임아웃으로 스낵바가 미노출된 건지, 어쩌면 디버깅일 수도 있겠습니다 ㅎㅎ 이 부분 판단하기가 쉽지 않네요.
  2. 브라우저별로 결과의 차이는 보통 어떻게 처리하시나요 ? 이번 과제 중에 드래그는 webkit에서 인지하지 못한다는 걸 알게되서 예외처리를 해주었는데요. 그 외에 예를 들면, 일정 겹침 모달창이 뜨는 로직이 firefox에서는 실패하고, webkit/chromium에서는 성공하는 케이스처럼 같은 상황에서 결과가 차이나는 경우는 어떻게 처리해줘야할 지 애매하더라구요. 같은 로직으로 진행되는데 아예 모달을 인지하지 못한다던가, 결과가 다른 경우의 원인도 궁금합니다 ..!

kwonjihyeon-duse and others added 30 commits November 4, 2025 18:35
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.

2 participants