[개발 회고] 세 갈래 경로, 하나의 변환 함수
세 갈래 경로, 하나의 변환 함수
개발 회고 — 2026-07-24 (금)
오늘 작업 요약
어제 정리한 날짜 변환 로직을 실제로 적용하고, 월뷰에서 여러 방식으로 일정을 편집할 때 권한 검사와 종료일 처리가 일관되도록 통합했다. 추가로 도구 팁(ButtonTip)의 호버 사용성 개선과 페이지의 여러 스타일 정리 작업도 진행했다.
- 월뷰 리사이즈/드래그 편집 권한 일관성 처리 — 직접 드래그, 리사이즈 핸들, 캘린더 라이브러리 기본 편집 세 경로 모두에 편집 권한 반영
- 종료일이 설정되지 않은 일정을 앞쪽으로 드래그해 여러 날에 걸치도록 만들 때, 종료일을 자동으로 원래 시작일로 설정
- 달력 표현 방식(exclusive end date/midnight 기준)과 관련된 날짜 변환 로직을 순수 함수로 정리하고 단위 테스트 추가
- 도구 팁이 아이콘에서 팁 영역으로 마우스를 옮길 때 즉시 닫히던 문제 해결 — 열림/닫힘 지연 시간과 호버 그룹 개념 도입으로 같은 그룹의 팁이 하나씩만 열리도록 통제
- 좌측 네비게이션 스플리터의 호버 인디케이터를 명확히 하고, 로딩 중 어두운 오버레이를 제거하고, 배경색 토큰을 통일하고, 프레임 선택 상태의 박스섀도우를 분리
STAR 정리
Situation (상황)
월뷰에서 일정을 편집하는 방법이 세 가지였다. 첫째는 일정을 직접 마우스로 드래그해서 이동/길이 변경하는 방식, 둘째는 월뷰 UI에 특화된 리사이즈 핸들을 직접 다루는 방식, 셋째는 캘린더 라이브러리의 기본 이벤트 변경 처리를 통한 방식이었다. 이 세 경로는 각각 다른 코드 영역을 거치고 있어서, 편집 권한 검사와 날짜 변환이 일관되지 않을 수 있는 상태였다. 더해서, 종료일이 처음부터 정의되지 않은 일정을 여러 날에 걸친 일정으로 만들 때 종료일을 어떻게 채워야 할지 명확하지 않았고, 도구 팁이 아이콘에서 팁 영역으로 마우스를 옮길 때 즉시 닫혀 사용하기 불편한 상태였다.
Task (과제)
- 세 가지 편집 경로 모두에 일관된 편집 권한 검사 추가
- 각 경로에서 날짜 변환이 정확하게 이뤄지도록 통합
- 종료일 미설정 이벤트의 자동 백필 로직 정의
- 도구 팁의 호버 체험 개선
- 스타일시트의 여러 정리 작업
Action (행동)
- 편집 권한을 검사하는 헬퍼 함수를 최소 단위로 작성하고, 세 가지 편집 경로(직접 드래그, 커스텀 리사이즈 핸들, 라이브러리 기본 이벤트 변경)에서 모두 이 헬퍼를 호출하도록 연결함. 각 경로에서 권한이 없으면 편집을 중단하고 에러를 표시함
- 어제 분석한 날짜 변환 로직을 세 경로 각각에 적용함. 월뷰의 리사이즈는 월뷰 UI 기반의 날짜를 저장 가능한 형식으로, 라이브러리 이벤트 변경은 라이브러리가 제공하는 날짜를 정규화하는 방식으로, 각각 다른 선행 조건을 반영함
- 종료일이 비어있는 상태에서 사용자가 일정을 여러 날로 확장할 때, 원래 시작일을 종료일로 자동 설정하는 로직을 추가함
- 도구 팁에 열림/닫힘 지연 시간을 추가해서, 아이콘에서 팁으로 마우스를 옮길 때 바로 닫히지 않고 잠시 열려있도록 처리함. 동시에 같은 그룹에 속하는 팁들이 하나씩만 열리도록 제어해서, 여러 팁이 동시에 겹쳐 표시되지 않도록 함. 관련 동작을 검증하는 테스트를 233줄 추가함
- 좌측 네비게이션의 스플리터 가상 요소를 이용해 호버 인디케이터를 명확히 하고, 로딩 중에 전체 화면을 어둡게 하던 오버레이를 제거하고, 여러 배경색을 하나의 토큰으로 통일하고, 프레임 선택 상태의 박스섀도우를 분리함
Result (결과)
- 월뷰의 세 가지 편집 경로 모두에 권한 검사가 적용되고, 날짜 변환이 일관되도록 통합됨
- 종료일 미설정 이벤트를 여러 날로 확장할 때 합리적인 기본값(원래 시작일)이 자동으로 채워짐
- 도구 팁의 호버 동작이 개선되어 사용자가 팁을 더 쉽게 읽을 수 있게 됨
- 스타일 정리 작업이 완료되어 페이지의 시각적 일관성이 향상됨
- 주뷰와 일뷰의 유사한 편집 경로에 대해서는 동일한 수준의 통합이 이뤄졌는지 아직 검증 전 상태
실제 측정 가능한 지표
| 지표 | 확인 방법 | 비고 |
|---|---|---|
| 커밋 수 및 변경 규모 | git log --stat (오늘 범위) |
5개 커밋, 주요 변경 236줄(날짜 변환 로직 추가) |
| 권한 검사 추가 위치 수 | 변경된 파일에서 권한 검사 함수 호출 개수 세기 | 세 가지 편집 경로 모두 반영 확인 |
| ButtonTip 테스트 추가 규모 | 테스트 파일에서 새로 추가된 라인 수 | 233줄 |
| 월뷰/주뷰/일뷰 리사이즈 일관성 | 각 뷰에서 권한 체크 및 날짜 변환이 동일하게 작동하는지 확인 | 월뷰는 완료, 주/일뷰는 검증 대기 |
| 스타일 통일 범위 | 배경색 토큰으로 교체된 곳의 개수 확인 | 여러 지점에서 통일됨 |
추정 가능한 효과 (근거 포함)
- 권한 검사 통합으로 보안 일관성 향상 (추정): 세 가지 편집 경로에 모두 권한 검사를 추가하면서, 이전에 특정 경로를 통해서만 권한 제한을 우회할 수 있는 상황이 제거되었을 것으로 예상됨. 근거: 최소 단위의 권한 검사 헬퍼가 작성되고 세 경로 모두에서 호출되는 것을 확인함. 다만 주뷰와 일뷰에서도 동일한 검사가 이뤄졌는지는 아직 확인 전
- 종료일 자동 백필로 사용자 편의성 향상 (추정): 종료일을 명시하지 않은 대부분의 일정은 “하루짜리”일 것이므로, 자동으로 시작일=종료일로 채워주면 사용자가 추가 입력 없이 다일간 이벤트를 만들 수 있게 됨. 근거: 기본값이 원래 시작일로 설정되는 로직이 추가된 것을 확인함
- 도구 팁 사용성 개선으로 정보 전달 효율 향상 (추정): 팁이 즉시 닫히지 않고 일정 시간 열려있으면서, 여러 팁이 동시에 겹치지 않도록 제어되면 사용자가 팁 내용을 더 쉽게 읽을 수 있을 것으로 예상됨. 근거: 열림/닫힘 지연 시간과 호버 그룹 개념이 추가된 것과, 관련 테스트 233줄이 추가된 것을 확인함
더 측정하면 좋은 지표
- 주뷰/일뷰 편집 경로의 권한 검사 일관성: 월뷰와 동일한 수준의 권한 검사가 적용되었는지 코드 리뷰로 확인
- 캘린더 리사이즈 통합 테스트 (Cypress): 월뷰, 주뷰, 일뷰 각각에서 실제 드래그/리사이즈 동작이 권한을 올바르게 반영하는지 확인
- ButtonTip 테스트의 실제 커버리지: 233줄 테스트에서 호버 그룹 병렬 열림, 지연 동작 등 주요 시나리오가 모두 포함되어 있는지 확인
- 배경색 토큰 통일의 시각적 일관성: 변경 전/후 스크린샷 비교로 실제 개선 여부 확인
- 권한 검사 추가로 인한 성능 영향: 각 편집 경로마다 추가된 권한 검사 호출의 오버헤드가 무시할 수 있는 수준인지 확인
오늘 배운 것
- 같은 기능이 여러 코드 경로를 거칠 때는 각 경로에서 권한을 검사해야 한다는 것을 다시 확인함. 최소 단위로 분할한 헬퍼 함수로 중복을 줄일 수 있지만, 여전히 모든 호출처에서 이를 사용해야 한다는 점
- 날짜 변환 로직은 각 경로(월뷰 UI 기반, 라이브러리 제공, 시간 지정)마다 다른 선행 조건을 가지고 있기 때문에, 순수 함수로 분리해서 각각 테스트할 수 있게 만드는 것이 유지보수에 도움이 된다는 것을 실감함
- “원래 시작일을 종료일로 자동 설정”처럼 명시적 선택 없이 합리적인 기본값을 제공하면, 대부분의 사용 사례를 자동으로 커버할 수 있다는 것을 배움
- 도구 팁처럼 작은 UI 요소도 호버 지연 시간과 그룹 제어를 통해 사용성을 크게 향상시킬 수 있다는 것을 확인함. 233줄의 테스트를 추가해 주요 시나리오를 모두 검증할 수 있었음
어려웠던 점 / 막힌 부분
- 월뷰의 날짜 셀(day grid cell)에서 컬럼 경계선이 좌우에서 각각 렌더링되면서 중복으로 보이는 문제가 있었음. 스타일시트 선택자가 충돌하면서 발생한 것으로 보여, 스타일 정리가 필요했음
- 주뷰와 일뷰에도 동일한 수준의 권한 검사와 날짜 변환이 적용되어야 하는데, 현재로서는 라이브러리 이벤트 변경만 통합되고 커스텀 리사이즈 핸들 쪽은 아직 월뷰 수준으로 강화되지 않은 상태임. 다음 단계에서 검증이 필요함
내일 하면 좋은 작업
- 주뷰/일뷰 리사이즈 로직 검증 및 강화 — 라이브러리 이벤트 변경은 통합된 함수를 사용하지만, 커스텀 리사이즈 핸들의 권한 체크와 종료일 계산이 월뷰 수준과 일치하는지 확인
- 캘린더 리사이즈 통합 테스트 (Cypress로 E2E 테스트) — 월뷰, 주뷰, 일뷰에서 실제 드래그/리사이즈 동작과 권한 반영을 검증
- ButtonTip 테스트 커버리지 확인 — 새로 추가된 233줄의 테스트가 호버 그룹 병렬 열림, 지연 동작 등 주요 시나리오를 모두 포함하는지 확인
한 줄 요약
어제의 날짜 변환 분석이 오늘 세 갈래 경로 통합으로 실현된, 스펙 정리의 열매를 거두는 하루였다.
댓글남기기