리파인(Refine)에서 리소스에 자동 라우팅이 되는 이유는 Refine가 특정 규칙에 따라 IResourceItem
을 사용해 리소스를 정의하면, 해당 리소스에 대해 자동으로 CRUD(Create, Read, Update, Delete) 페이지를 생성하고 라우트를 설정해주기 때문입니다.
IResourceItem
인터페이스를 사용해 리소스를 정의합니다. 이 인터페이스는 리소스의 이름(name), 경로(list, show, create, edit), 메타데이터(예: 아이콘) 등을 포함할 수 있습니다.resources
배열에 정의된 각 리소스 항목을 읽고, 해당 리소스에 대해 필요한 기본적인 페이지(목록, 세부 정보, 생성, 편집)를 자동으로 생성합니다.name: "companies"
로 정의된 리소스가 있으면, /companies
, /companies/new
, /companies/:id
, /companies/edit/:id
와 같은 경로가 자동으로 라우팅됩니다.List
컴포넌트, 생성 페이지는 Create
컴포넌트를 기본으로 사용합니다.typescript코드 복사
export const resource: IResourceItem[] = [
{
name: "companies",
list: "/companies",
show: "/companies/:id",
create: "/companies/new",
edit: "/companies/edit/:id",
meta: {
label: "Companies",
icon: <ShopOutlined />,
},
},
];
위와 같이 리소스를 정의하면, Refine는 자동으로 다음과 같은 경로를 설정합니다:
/companies
(목록 페이지)/companies/new
(생성 페이지)/companies/:id
(세부 정보 페이지)/companies/edit/:id
(편집 페이지)이 모든 경로는 Refine의 내부 라우터에 의해 자동으로 처리되며, 지정된 컴포넌트를 통해 각 페이지가 렌더링됩니다.
리파인에서 자동 라우팅이 가능한 이유는 IResourceItem
으로 리소스를 정의할 때 Refine가 해당 리소스에 대한 기본적인 CRUD 페이지와 라우팅을 자동으로 생성하기 때문입니다. 이러한 기능은 개발자가 복잡한 라우팅 설정을 직접 할 필요 없이, 간단한 설정만으로 강력한 CRUD 애플리케이션을 빠르게 개발할 수 있도록 도와줍니다.