이번 프로젝트의 목표는 사내 회의실 예약 시스템의 UI/UX를 개선하여 더 직관적이고 효율적인 사용자 경험을 제공하는 것이다.
프로젝트 기간은 10월 15일부터 11월 28일까지, 한 달 반이라는 짧은 시간 내에 최대한의 효과를 내는 것이 핵심이었다.
무엇보다 기존에 사용하고 있던 기술 스택을 크게 변경하지 않고 진행하는 것을 우선시했다. 최소한의 리소스로 효율적으로 개선하고 싶었기 때문이다.
기존 시스템은 FullCalendar 라이브러리를 사용하고 있었다.
먼저 가장 중요한 기능인 한 눈에 여러 회의실의 가용상태를 확인하기 위해서는 아래와 같은 타임라인뷰 기능이 필요했다.

하지만 이 라이브러리에서 제공하는 타임라인 뷰 기능은 유료로만 사용 가능했다. 따라서, 다른 라이브러리 대안을 찾아야 했다.
월간 캘린더 뷰를 제공하면서 타임라인뷰를 제공해야함
다음은 검토한 라이브러리이다.
결국 TUI Calendar를 도입하기로 결정했다. 이 라이브러리는 타임라인 뷰는 없지만, 일간 뷰를 통해 각 회의실의 예약 현황을 표시할 수 있었고, 완전 무료라는 점이 큰 장점이었다. 또한 월간, 주간, 일간 뷰를 모두 제공해 충분히 요구 사항을 충족할 수 있었다.
(회사에서 이 개발을 진행하고있을 때, 항해교육도 진행중이었는데 그 당시 코치님 중 오프 코치님이 알고보니 이전 회사에서 Tui Library를 개발하셨다고 했다..! 성호 코치님이 그 당시 팀장님이 셨다고 한다..이런 우연이)
기존의 FullCalendar는 두고 TUI Calendar를 새로 추가하려고 했는데 생각보다 간단하지 않았다..
FullCalendar와 TUI Calendar를 동시에 설치했을 때 package.json의 의존성 충돌이 발생했다.
결국 기존 라이브러리를 하나하나 분석하며 불필요한 부분을 삭제하고 필요한 라이브러리만 재설치하여 의존성 버전을 맞추는 방식으로 문제를 해결했다.
이 과정에서 예상보다 많은 시간이 소요되었다. 역시 개발에서 환경 설정이 가장 어렵다는 것을 다시 한번 깨달았다. 😅

기존 UI는 너무 단순하고 직관적이지 않았다. 매니저님과 사수와 대화하며 나는 여러 가지 시안을 만들었고, 최종적으로 아래와 같은 구조로 결정했다:
✅ 왼쪽 layout: 미니 캘린더와 빠른 예약 기능
✅ 오른쪽 layout: 월간, 주간, 일간 캘린더 뷰
UI 설계를 위해 Figma를 적극 활용했다.
UI 구성을 결정하는 것도 시간이 꽤 걸렸지만, 기획부터 시각화까지 모두 내 손으로 해보니 더욱 재미있었다! 😄
또 우연히도! (이 회의실 개편 프로젝트는 참 우연이 많다!)
반복 예약 기능을 개발하던 시점에, 항해 교육에서도 오프 코치님이 테스트 코드 발제로 반복 일정 구현을 주제로 다루고 있었다.
덕분에 반복예약 기능을 개발하면서 테스트 케이스를 더욱 꼼꼼하게 고려하며 개발할 수 있었다.
우선 반복예약 기능은 Google Calendar의 반복일정을 참고했다.
✅ 윤년 처리
✅ 반복 종료 조건
✅ 반복 일정 단일/전체 수정
✅ 반복 일정 단일/전체 삭제




✅ 1) 다양한 캘린더 뷰 제공
✅ 2) 예약 프로세스 간소화
✅ 3) 반복 예약 기능 개선
✅ 4) 빠른 예약 기능 추가
✅ 5) 예약 잠금 기능 추가
프로젝트 배포 일주일 전, 시스템 개편 소식을 IT 부문 팀원들에게 메일로 공지했다. 기존 시스템 데이터를 새로운 구조로 마이그레이션한 뒤 무사히 배포를 완료했다.
현재까지 약 한 달간 사용 중인데, 팀원들로부터 긍정적인 피드백을 받고 있다.
✅ 업무 효율성 증대: 예약 시간이 단축되고, 가용 시간대를 확인하는 과정이 간편해졌다.
✅ 사용자 만족도 향상: 직관적인 UI와 간소화된 프로세스로 사용성이 크게 개선되었다.
이번 프로젝트를 통해 TUI Calendar를 사용하면서 해당 오픈소스에 기여하고 싶다는 생각이 들었다. 특히, 사용 중 불편했던 스크롤 삭제 기능을 추가하고 싶었다. TUI Calendar GitHub를 방문해보니, 다른 개발자들도 이 기능을 원하고 있어, 스크롤 기능을 끄거나 추가할 수 있는 옵션을 property로 제공해보고자 했다.

하지만 아쉽게도 해당 오픈소스는 Pull Request가 현재 활발히 유지되고 있지 않다. (마지막 merge된 부분이 2023년 2월이다..!😢)

그래도 기회가 된다면 Pull Request를 올려보려 한다. 이런 작은 도전이 성장의 발판이 될 테니까! 😊
이번 프로젝트를 통해 단기간 내에 UI/UX를 개선할 수 있었지만, 아직 코드 리팩토링과 성능 최적화 작업이 남아 있다.
시간이 된다면 테스트코드, 리팩토링, 성능최적화를 진행해보려고한다!
이번 프로젝트는 단순히 시스템을 개선하는 데서 끝나지 않았다. 새로운 기술을 배우고, 사용자 경험을 고려하며, 더 나아가 오픈소스 기여에 대한 동기까지 얻는 값진 경험이었다.
앞으로도 비효율적인 업무 환경을 개선하고, 사용자들에게 더 나은 경험을 제공하기 위해 꾸준히 도전해보고 싶다!
오 오픈소스 기여 도전이라니! 멋지십니다! 후기도 꼭 올려주세요~