기존 방식의 한계

클라이언트가 73개 셀 UUID를 만들고 대용량 payload를 생성하면서 저사양 환경에서 프레임 드랍이 발생했습니다.

전환 전략

클라이언트는 생성 요청만 보내고, 셀 초기화는 `initialize_mandalart_cells` 함수에서 처리하도록 변경했습니다.

  • 클라이언트 payload 경량화
  • 서버 단일 트랜잭션으로 초기화
  • 생성 중 로딩 상태 유지로 사용자 혼란 감소

SQL 함수 호출 흐름

초기화 지점을 DB 함수로 고정해 기능 확장 시에도 성능 편차를 줄였습니다.

SQL
select initialize_mandalart_cells(
  p_user_id => auth.uid(),
  p_mandalart_id => :mandalart_id
);

결과

생성 체감 시간이 안정화되고, 생성 직후 편집으로 전환할 때의 입력 지연이 크게 감소했습니다.