[FE-03] 웹 CSV 임포트 시/도 컬럼 추가

작업 내용 (설계 의도)

근거: design-fe-web.md FR-6 — CSV 헤더에 sido 컬럼 추가.

변경 사항

  • web/app/portal/facilities-import/parseCsvFacilities.ts — 헤더를 code,name,sido,gu,type,address,lat,lng,parking,tel,homePage,eduYn,meta로 변경(sido를 인덱스 2, gu 뒤로 이동). sido는 optional(빈 값 허용 — 미입력 시 서버 주소 파싱 보간). 파싱 결과 row에 sido 필드 추가. 기존 필드 인덱스 시프트 반영.
  • parseCsvFacilities.test.ts — 신규 헤더 상수·케이스 갱신. sido 유/무 케이스 추가. 기존 필드(type enum·위경도·boolean·따옴표 이스케이프) 회귀 유지.
  • web/app/portal/facilities-import/FacilitiesImportClient.tsx — 미리보기 테이블에 시/도 컬럼 추가, 안내 문구의 헤더 예시 갱신, 등록 시 sido를 POST payload에 포함.

롤백

  • 헤더·컬럼 추가만이라 되돌리면 기존 12컬럼 파서로 복귀. 데이터 파괴 없음.

의존

  • 없음 (wave 1) — sido는 텍스트 통과, FE 검증 없이 서버 보간

다이어그램

처리 흐름

sequenceDiagram
    participant U as 운영자
    participant P as parseCsvFacilities
    participant C as ImportClient
    participant B as BFF POST
    U->>C: CSV 업로드(sido 컬럼)
    C->>P: parse(text)
    P-->>C: rows(sido 포함)
    C->>B: 유효 행별 POST(sido)

테스트 케이스

  • 신규 헤더(sido 포함)의 유효 CSV를 파싱하면 각 row에 sido 값이 담긴다
  • sido 값이 비어 있어도 오류 없이 파싱된다(optional)
  • 기존 필수 필드(code/name/gu/type/address) 누락 시 여전히 행 오류를 보고한다
  • type enum 소문자 정규화·위경도 numeric 검증이 회귀 없이 동작한다
  • 미리보기 테이블에 시/도 컬럼이 표시된다