📰 원본 아티클
카카오톡 예약하기에서 그려 본 캘린더 - tech.kakao.com
안녕하세요 저는 카카오톡 예약하기라는 서비스에서 FE 개발을 담당하고 있는 Joy...
tech.kakao.com ↗

네모난 블록 하나씩 넣으면 될 줄 알았던 캘린더

  • #frontend
  • #algorithm
  • #ux
  • #engineering

캘린더와 관련된 글이라서 예전에 했던 “게더링” 서비스가 생각나서 자세하게 읽어본 글.

단순한 예약 시작, 종료에 대한 값이 있으면 그것을 기반으로 time block을 만드는 것이었는데, 어떻게 하면 이 배치를 할 수 있을까에 대한 이야기였습니다. 물론 간단하게 날짜 기반으로 넣는 것뿐만 아니라 블록의 위치, 블록의 크기 등을 모두 고려해서 작업해야 하는 것이라서 그래프와 DFS를 활용해서 적절하게 잘 구현하신 것 같네요.

그때 게더링에서는 정렬을 먼저 한 뒤 각 타임 블록의 위치에 어떤 값이 우선적으로 들어가야 할지, 그리고 하나의 날짜에 들어간 블록 개수에 따라 어떻게 처리할지를 정해야 했습니다. AI 도구가 없던 시기라 “딸깍”으로 만들기가 어려워, 사용자에게 버그처럼 보이지 않게 하려면 어떤 알고리즘으로 배치를 풀어야 할지를 며칠 동안 고민했던 기억이 납니다. 결국 빠른 구현을 위해서는 캘린더 패키지로 우회하긴 했지만요.

단순히 날짜대로 네모난 블록 하나씩 넣으면 되지 않나? 라는 생각에서 출발했지만, 그 안에도 이상하지 않게 보이려면 많은 노력과 UX 고민이 필요하다는 사실을 처음으로 체감했던 프로젝트였기에 이 글이 더 흥미롭게 다가왔습니다. 단순해 보이는 UI 안에 어떤 고민이 들어가는지 궁금하신 분이라면 한 번 읽어보면 좋을 글입니다.