파트너사마다 다른 화면을 경로로 갈랐다

2026/08/15사내 시스템 · ERP 구축Next.js · TypeScript · Server Actions

탁송 업무를 함께 하는 파트너사들이 쓰는 포털입니다. 회사마다 다루는 항목과 업무 흐름이 조금씩 다릅니다.

테넌트 시스템을 만들지 않았다

이런 요구를 들으면 보통 멀티테넌트 구조를 떠올립니다. 테넌트 테이블, 설정 저장소, 화면을 설정으로 조립하는 계층 — 제대로 만들려면 큰 작업입니다.

파트너사가 몇 곳뿐인데 그걸 만들 이유가 없었습니다.

경로로 갈랐습니다. 파트너사마다 자기 경로가 있고, 그 아래에 그 회사용 화면이 있습니다. 공통 부분은 컴포넌트로 공유하고, 다른 부분은 그냥 다르게 씁니다.

이 선택의 대가

파트너사가 열 곳, 스무 곳이 되면 이 구조는 무너집니다. 같은 수정을 여러 경로에 반복해야 하고, 빠뜨리는 곳이 생깁니다.

그때 가서 바꾸면 됩니다. 지금 안 쓰는 유연성을 위해 지금 복잡도를 지불하는 것보다, 필요해질 때 만드는 편이 낫습니다. 그 시점이 오면 이미 파트너사별 차이가 무엇인지 정확히 알고 있을 테니 오히려 잘 만들 수 있습니다.

미리 만들면 상상으로 만들게 됩니다.

상태 기계로 흐름을 고정했다

탁송 건은 정해진 단계를 거칩니다. 각 단계에서 할 수 있는 일과 다음으로 갈 수 있는 조건이 정해져 있습니다.

이걸 화면마다 조건문으로 흩어 놓으면, 어느 순간 어떤 경로로는 건너뛸 수 있게 됩니다. 상태와 전이를 한 곳에 모아 두고 거기서만 바꾸게 했습니다.

업무 규칙이 바뀔 때 고칠 곳이 한 군데인 것이 이 구조의 값어치입니다.