MD-23 · 지역 오픈현황 지도

지역 오픈현황 지도 (센터·공급사 물류거점 맵)

「센터 관리」의 위도·경도 좌표공급사 물류센터를 하나의 지도에 핀으로 찍어 지역 오픈 현황을 한눈에 보는 신규 화면. 좌표 없는 센터는 지도 밖 목록으로 분리.

🟢 바로 착수 MFC 관리 지도 시각화 좌표 데이터
🆕 신규 화면 개발
무엇 — 「센터 관리」의 위도·경도 좌표공급사 물류센터를 하나의 지도에 핀으로 찍어 지역 오픈 현황을 한눈에 보는 신규 화면. 좌표 없는 센터는 지도 밖 목록으로 분리.📍 위치: MFC 관리 › 센터 관리

핵심 결정

데이터 출처
center.latitude / center.longitude (기존 저장값 재사용, 신규 수집 無)
표시 대상
MFC 센터 + 공급사 물류센터 2종을 색/아이콘으로 구분
좌표 없는 센터
지도 미표시 → 하단 별도 목록으로 분리 노출 (현재 실데이터에 존재)
오픈상태 정의
use_flag=true=운영중 / false=미운영·준비중 (가정)
지도 도구
개발 선택 (카카오맵 등). 핀 과다 시 클러스터링 권고
01

화면 — 먼저 보기

이 티켓이 실제로 어떤 화면이 되는지 먼저 봅니다

기존 center 테이블에 이미 저장된 latitude/longitude를 그대로 읽어 지도에 렌더 — 신규 데이터 수집 없이 읽기 전용 시각화로 착수 가능.
신규 화면 · 제안
MFC 관리 › 센터 관리신규 화면
센터 유형 ▾오픈상태 ▾🔍 센터명·지역 검색지도 보기좌표 없는 센터 N건
센터명유형지역(시·군·구) 🆕좌표(위도, 경도)오픈상태 🆕지도표시 🆕
광진MFC 센터서울 광진구37.4757, 127.1216운영중파란 핀 (반경 3km)
케인센터01MFC 센터서울 금천구37.4954, 126.8875운영중파란 핀
일레븐테스트MFC 센터서울 강남구37.5040, 127.0781미운영회색 핀

▲ 지역 오픈현황 지도 — 지도에 표시되는 센터 목록 — 바뀌는 컬럼은 🆕 로 표시(예시 데이터)

1
메뉴 진입 — MFC 관리 › 센터 관리 하위(또는 상단 탭)에서 「지역 오픈현황 지도」를 연다. 기본은 전체 지도 뷰.
2
핀 렌더center에서 위경도 유효한 센터를 파랑 핀으로, supplier_center_geo 공급사 센터를 주황 핀으로 지도에 찍는다. 미운영은 회색.
3
필터·검색 — 상단 툴바에서 센터 유형·오픈상태 칩으로 핀을 걸러내고, 센터명·지역으로 검색해 해당 핀으로 이동한다.
4
핀 상세 — 핀 클릭 시 센터명·유형·주소·오픈상태 툴팁이 뜨고, '센터 상세 열기'로 기존 센터 관리 상세로 딥링크 이동한다.
5
좌표 없는 센터 확인 — 지도 하단 「좌표 없는 센터 N건」 목록에서 좌표 미입력·오류 센터를 확인하고 상세에서 좌표를 채운다.
6
성능 방어 — 핀이 임계치를 넘으면 자동 클러스터링되어 지도가 느려지지 않는다.
02

정책 / 정의

용어를 못 박고, 규칙을 명확히

용어 정의
용어정의
센터(물류거점)오더히어로가 운영하는 물류 거점. center 테이블 1행 = 1센터. 성동광진 등.
MFC 센터Micro Fulfillment Center. center.center_type='MFC'. 앱 배송·재고의 실제 출고 기준점.
공급사 물류센터매입처(공급사)의 물류센터. 오더히어로 소유 아님. 현재 좌표 저장 테이블이 없어 신규 최소 테이블로 수집.
오픈 현황특정 지역에서 서비스가 운영중인지 여부. 본 화면은 use_flag 기준으로 운영중/준비중을 색 구분.
좌표(위도·경도)latitude/longitude. 현재 varchar(50)에 문자열로 저장 — 값이 NULL이면 지도에 찍을 수 없음.
geo_radius센터의 서비스 반경(m). 지도에서 센터 핀 주변에 커버리지 원으로 그릴 수 있음(선택).
핀 클러스터링좁은 영역에 핀이 몰릴 때 숫자 묶음으로 합쳐 성능·가독성을 확보하는 지도 기법.
정책 (규칙)
#규칙비고
1지도 소스 데이터는 center에서 latitude·longitude가 모두 NOT NULL인 행만 렌더한다.둘 중 하나라도 NULL/빈값이면 지도 제외 → 좌표없음 목록으로.
2좌표가 없는 센터는 지도 하단 「좌표 없는 센터」 목록에 센터명·주소와 함께 표시하고 '좌표 입력 필요' 조치 라벨을 단다.실데이터 확인: bulk_order_test 등 좌표 NULL 센터 실재.
3오픈상태는 use_flag=true→운영중, false→미운영/준비중으로 매핑한다.가정. 운영중/준비중 세분이 필요하면 별도 상태컬럼 신설 필요(3차 미팅에선 미요청).
4핀은 유형별로 색을 구분한다: MFC 센터=파랑, 공급사 물류센터=주황, 미운영=회색.규칙표(screen_design[2]) 참조. 개발 지도 도구 마커 스타일로 구현.
5좌표 문자열은 렌더 전 숫자 파싱하여 유효 위경도 범위(위도 33~39, 경도 124~132, 대한민국)인지 검증한다.varchar 저장 특성상 오타·공백·0 값 방어. 범위 밖이면 '좌표 오류'로 목록 분리.
6핀 개수가 임계치를 넘으면 클러스터링을 적용한다.티켓 확인·예외의 '핀 많을 때 성능' 대응. 임계치 가정: 화면당 50핀.
7공급사 물류센터 좌표는 신규 supplier_center_geo에서 읽는다. 좌표 없으면 주소 지오코딩은 개발 선택.admin-db에 공급사 센터 좌표 테이블이 없어 최소 신규 테이블로 수집.
8본 화면은 읽기 전용(조회)이며 좌표 편집은 기존 「센터 관리」 상세에서만 수행한다.지도에서 핀 클릭 시 센터 상세로 딥링크 이동.
9지역(시·군·구) 라벨은 address 파싱 또는 center_area.area_name을 우선 사용한다.주소 첫 2토큰 파싱은 폴백.
03

ERD

데이터 구조 · 관계 · DDL

center READ
idPK varchar(20)
center_namevarchar(100)
center_codevarchar(20)
center_typevarchar(10)
addressvarchar(255)
latitudevarchar(50)
longitudevarchar(50)
geo_radiusinteger
use_flagboolean
물류 센터 마스터. 위경도·유형·운영여부·반경을 이미 보유 → 지도 핀의 1차 소스.
center_area READ
idPK varchar(30)
center_idFK varchar(20)
area_namevarchar(100)
센터별 담당 지역명. 지역(시·군·구) 라벨·오픈 지역 그룹핑에 활용.
supplier_center_geo 신규
idPK bigserial
supplier_namevarchar(100)
addressvarchar(255)
latitudenumeric(10,7)
longitudenumeric(10,7)
region_namevarchar(100)
use_flagboolean
created_attimestamp
공급사 물류센터 좌표(신규·최소). admin-db에 공급사 센터 좌표 저장처가 없어 신설.
center.id = center_area.center_id (센터 1 : 담당지역 N)
center.latitude/longitude 유효 → 지도 핀 / NULL → 좌표없음 목록
supplier_center_geo = 독립 신규(공급사 물류센터 핀), 공급사 마스터와는 supplier_name 매칭(가정)
-- 공급사 물류센터 좌표 (신규 최소 테이블: admin-db에 공급사 센터 좌표 저장처 부재)
CREATE TABLE supplier_center_geo (
    id            BIGSERIAL PRIMARY KEY,                 -- PK
    supplier_name VARCHAR(100)  NOT NULL,                -- 공급사(매입처)명
    address       VARCHAR(255),                          -- 물류센터 주소
    latitude      NUMERIC(10,7),                         -- 위도(숫자형: center 대비 타입 위생 개선)
    longitude     NUMERIC(10,7),                         -- 경도
    region_name   VARCHAR(100),                          -- 지역(시·군·구) 라벨
    use_flag      BOOLEAN       NOT NULL DEFAULT TRUE,    -- 지도 표시 여부
    created_at    TIMESTAMP     NOT NULL DEFAULT now()   -- 등록일시
);
COMMENT ON TABLE  supplier_center_geo IS '공급사 물류센터 좌표(지역 오픈현황 지도용, MD-23)';
COMMENT ON COLUMN supplier_center_geo.latitude  IS '위도(대한민국 33~39 범위 검증)';
COMMENT ON COLUMN supplier_center_geo.longitude IS '경도(대한민국 124~132 범위 검증)';

-- 위경도 조회 성능 인덱스(핀 로딩 시 use_flag 필터 다발)
CREATE INDEX idx_supplier_center_geo_use ON supplier_center_geo (use_flag);

-- [선택/후속] center의 좌표 문자열 위생 개선 제안(즉시 변경 아님, 참고용)
-- ALTER TABLE center ALTER COLUMN latitude  TYPE NUMERIC(10,7) USING NULLIF(latitude,'')::numeric;
-- ALTER TABLE center ALTER COLUMN longitude TYPE NUMERIC(10,7) USING NULLIF(longitude,'')::numeric;
04

화면 상세 — 세부 표·규칙

목록 외 품목표·모달·규칙 등 세부 화면

좌표 없는 센터 목록(지도 밖 별도 표시)
센터명센터코드주소유형오픈상태조치
대량주문테스트센터bulk_order_test(주소 미입력)MFC 센터운영중좌표 입력 필요
(좌표 오류 예) 성동테스트seongdong서울 성동구 …MFC 센터준비중좌표값 오류 확인
latitude/longitude가 NULL이거나 대한민국 위경도 범위를 벗어난 센터. 실데이터에 NULL 좌표 센터 존재 확인됨.
핀 표시 규칙표(마커 색·아이콘)
구분마커 색아이콘표시 조건부가 표시
MFC 센터(운영중)파랑창고use_flag=true & 좌표 유효geo_radius 커버리지 원
공급사 물류센터주황트럭supplier_center_geo 좌표 유효없음
미운영/준비중회색창고use_flag=false반투명
지도 도구 마커 스타일 매핑 기준. 색·아이콘은 가정이며 디자인 확정 시 조정.