- add_tab: 새 탭을 서버에서 즉시 활성화하도록 수정 - addTab(): loadTabs() 대신 직접 render() 호출 (탭 전환 오버헤드 제거) - 지오코딩: concurrent.futures.ThreadPoolExecutor로 병렬 처리 (5 worker) - 지오코딩: 단일 시도 + 캐시로 중복 요청 제거, 30초→4초 단축 - upload: 먼저 모든 주소 수집 후 병렬 지오코딩, 이후 데이터 구성
- 탭바: 자유로운 이름 지정, 추가/삭제/더블클릭 이름변경 - 각 탭은 독립적인 근무자/근무지/배치 데이터 보유 - 탭 전환 시 해당 데이터로 지도/사이드바 갱신 - 내보내기 시 현재 탭 이름이 파일명에 포함됨 - API 경로 /api/* 로 통일
Flask + Leaflet 기반 지도 드래그앤드롭 근무 배치 시스템 - 엑셀 업로드/파싱 - Leaflet 지도에 근무지/근무자 표시 - 드래그앤드롭으로 근무자 배치 - 엑셀 내보내기