라우트 추가 (#2)

Reviewed-on: #2
Co-authored-by: Jinseok (심진석) <jinseok.sim@tf.dabeeo.com>
Co-committed-by: Jinseok (심진석) <jinseok.sim@tf.dabeeo.com>
This commit was merged in pull request #2.
This commit is contained in:
2026-04-08 15:18:58 +09:00
committed by jinseok
parent d1fdae63ac
commit d99422d328
23 changed files with 125 additions and 24 deletions

View File

@@ -49,10 +49,39 @@ web-app/
│ ├── app.css # Tailwind 글로벌 스타일
│ ├── routes.ts # 라우트 정의
│ ├── routes/
│ │ ├── home.tsx # 메인 페이지 (/)
│ │ ├── users.tsx # 유저 목록 (/users)
│ │ └── catch-all.tsx # 404 처
└── welcome/ # Welcome 컴포넌트
│ │ ├── catch-all.tsx # 404 처리
│ │ ├── code/
│ │ │ └── page.tsx # 공통코드 관
│ ├── hyper-parameter/
│ │ │ └── page.tsx # 하이퍼파라미터 설정
│ │ ├── imagery/
│ │ │ ├── page.tsx # 영상 목록
│ │ │ └── [id]/
│ │ │ └── page.tsx # 영상 상세
│ │ ├── inference/
│ │ │ ├── page.tsx # 추론 목록
│ │ │ └── [id]/
│ │ │ └── page.tsx # 추론 상세
│ │ ├── labeling/
│ │ │ ├── label/
│ │ │ │ └── page.tsx # 라벨링 작업
│ │ │ └── review/
│ │ │ └── page.tsx # 라벨링 검수
│ │ ├── model/
│ │ │ ├── page.tsx # 모델 목록
│ │ │ └── [id]/
│ │ │ └── page.tsx # 모델 상세
│ │ ├── log/
│ │ │ ├── audit/
│ │ │ │ └── page.tsx # 감사 로그
│ │ │ └── system/
│ │ │ └── page.tsx # 시스템 로그
│ │ ├── login/
│ │ │ └── page.tsx # 로그인
│ │ ├── schedule/
│ │ │ └── page.tsx # 스케줄 관리
│ │ └── user/
│ │ └── page.tsx # 사용자 관리
├── public/ # 정적 파일
├── Dockerfile # 프로덕션 빌드 (multi-stage)
├── docker-compose.yml # 개발 환경

View File

@@ -1,9 +1,39 @@
import type { RouteConfig } from '@react-router/dev/routes';
import { index, route } from '@react-router/dev/routes';
import { index, route, layout, prefix } from '@react-router/dev/routes';
export default [
index('routes/home.tsx'),
route('users', './routes/users.tsx'),
layout('./routes/login/layout.tsx', [
route('login', './routes/login/page.tsx'),
]),
layout('./routes/layout.tsx', [
...prefix('imagery', [
index('./routes/imagery/page.tsx'),
route(':imageryId', './routes/imagery/[id]/page.tsx'),
]),
...prefix('inference', [
index('./routes/inference/page.tsx'),
route(':inferenceId', './routes/inference/[id]/page.tsx'),
]),
...prefix('model', [
index('./routes/model/page.tsx'),
route(':modelId', './routes/model/[id]/page.tsx'),
]),
...prefix('labeling', [
route('label', './routes/labeling/label/page.tsx'),
route('review', './routes/labeling/review/page.tsx'),
]),
...prefix('log', [
route('audit', './routes/log/audit/page.tsx'),
route('system', './routes/log/system/page.tsx'),
]),
...prefix('schedule', [
index('./routes/schedule/page.tsx'),
]),
route('code', './routes/code/page.tsx'),
route('hyper-parameter', './routes/hyper-parameter/page.tsx'),
route('user', './routes/user/page.tsx'),
]),
route('*', './routes/catch-all.tsx'),
] satisfies RouteConfig;

View File

View File

@@ -1,7 +0,0 @@
export default function Home() {
return (
<div>
Home
</div>
);
}

View File

@@ -0,0 +1,9 @@
import type { Route } from './+types/page';
export default function Page({ params }: Route.ComponentProps) {
return (
<div>
id: {params.imageryId}
</div>
);
}

View File

@@ -0,0 +1,5 @@
export default function Page() {
return (
<div> </div>
);
}

View File

@@ -0,0 +1,7 @@
export default function Page() {
return (
<div>
</div>
)
}

View File

@@ -0,0 +1,10 @@
import { Outlet } from 'react-router';
export default function Layout() {
return (
<div>
<Outlet />
</div>
);
}

View File

View File

View File

@@ -0,0 +1,10 @@
import { Outlet } from 'react-router';
export default function Layout() {
return (
<div>
<Outlet />
</div>
);
}

View File

@@ -0,0 +1,5 @@
export default function Page() {
return (
<div> </div>
);
}

View File

View File

View File

View File

@@ -0,0 +1,5 @@
export default function Page() {
return (
<div></div>
);
}

View File

@@ -1,7 +0,0 @@
export default function Users() {
return (
<div className="px-3">
</div>
);
}

View File

@@ -18,4 +18,9 @@ export default tseslint.config(
arrowParens: true,
}),
reactHooks.configs.flat.recommended,
{
rules: {
'@stylistic/jsx-one-expression-per-line': 'off',
},
},
);

View File

@@ -1,6 +1,6 @@
import { reactRouter } from "@react-router/dev/vite";
import tailwindcss from "@tailwindcss/vite";
import { defineConfig } from "vite";
import { reactRouter } from '@react-router/dev/vite';
import tailwindcss from '@tailwindcss/vite';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [tailwindcss(), reactRouter()],