본문으로 건너뛰기

프론트에 박혀 있던 카테고리를 서버 기준으로 옮겼다

· 약 1분
Seung hyo, Lee
Front End Engineer @ Assistfit

CRM의 상품 카테고리(헬스, 필라테스, 골프 같은 것)는 처음부터 프론트 상수로 들고 있었다. productCategory, lockerCategory 같은 고정 값이 화면 곳곳에서 쓰였다. 센터마다 카테고리를 직접 정할 수 있게 되면서 이 구조를 바꿔야 했다.

몇 주에 걸쳐 조금씩 옮겼다. 단체 연장 필터는 고정 목록 대신 API에서 받은 카테고리로 그리게 바꿨고, 스케줄 생성·수정 화면에도 카테고리 조회를 붙였다. 남은 건 회원 상품 등록·수정, 통계, 직원 화면 쪽이었다. 오늘 이걸 한 번에 정리했다.

  • 카테고리 참조는 전부 categoryId로 바꿨다.
  • 화면에 보여줄 이름은 응답의 categoryName을 그대로 쓴다.
  • 프론트에 있던 카테고리 enum과 상수, 그걸 받던 API 파라미터는 지웠다.

두 커밋에 31개 파일이 바뀌었다. 대부분 상수를 import해서 라벨로 바꾸던 코드가 응답 값을 그대로 찍는 코드로 줄어든 거라, 지운 줄이 더 많다.

검색 파라미터 타입도 같이 정리했다. 카테고리가 고정 enum일 때는 searchParams 타입에 그 enum을 박아뒀는데, 이제는 서버가 주는 값이라 Partial<{ category: string }>로 두고 받은 쪽에서 파싱한다. 타입이 느슨해진 것 같지만 실제로 들어오는 값에 맞춘 거다.

정리하면서 판단한 기준은 하나였다. 센터가 바꿀 수 있는 데이터라면 프론트가 목록을 들고 있으면 안 된다. 프론트는 받은 걸 보여주고, 필요한 경우에만 id로 비교한다. 이렇게 해두니 카테고리가 추가돼도 프론트 배포가 필요 없다.