프로젝트명 변경: choco-admin -> chocoadmin
This commit is contained in:
@@ -34,7 +34,7 @@ export default async function AdminLayout({
|
|||||||
<aside className="fixed inset-y-0 left-0 hidden w-64 border-r bg-background md:block">
|
<aside className="fixed inset-y-0 left-0 hidden w-64 border-r bg-background md:block">
|
||||||
<div className="flex h-16 items-center border-b px-5">
|
<div className="flex h-16 items-center border-b px-5">
|
||||||
<Link className="text-lg font-semibold" href="/">
|
<Link className="text-lg font-semibold" href="/">
|
||||||
choco-admin
|
chocoadmin
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<nav className="space-y-1 p-3">
|
<nav className="space-y-1 p-3">
|
||||||
|
|||||||
@@ -27,9 +27,7 @@ export default async function LoginPage({ searchParams }: LoginPageProps) {
|
|||||||
<main className="flex min-h-screen items-center justify-center bg-muted px-6 py-10">
|
<main className="flex min-h-screen items-center justify-center bg-muted px-6 py-10">
|
||||||
<section className="w-full max-w-md rounded-lg border bg-background p-8 shadow-sm">
|
<section className="w-full max-w-md rounded-lg border bg-background p-8 shadow-sm">
|
||||||
<div className="mb-8">
|
<div className="mb-8">
|
||||||
<h1 className="text-2xl font-semibold tracking-normal">
|
<h1 className="text-2xl font-semibold tracking-normal">chocoadmin</h1>
|
||||||
choco-admin
|
|
||||||
</h1>
|
|
||||||
<p className="mt-2 text-sm text-muted-foreground">관리자 로그인</p>
|
<p className="mt-2 text-sm text-muted-foreground">관리자 로그인</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ import type { Metadata } from "next";
|
|||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "choco-admin",
|
title: "chocoadmin",
|
||||||
description: "Chocomae admin service",
|
description: "Chocomae admin service",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -1,10 +1,10 @@
|
|||||||
services:
|
services:
|
||||||
choco-admin:
|
chocoadmin:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
image: choco-admin:latest
|
image: chocoadmin:latest
|
||||||
container_name: choco-admin
|
container_name: chocoadmin
|
||||||
ports:
|
ports:
|
||||||
- "3001:3000"
|
- "3001:3000"
|
||||||
env_file:
|
env_file:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
## 1. 개요
|
## 1. 개요
|
||||||
|
|
||||||
이 문서는 기존 `mouse-typing` 관리자 기능을 조사해 신규 `choco-admin`에서 재현해야 할 비즈니스 규칙을 정리한 것이다.
|
이 문서는 기존 `mouse-typing` 관리자 기능을 조사해 신규 `chocoadmin`에서 재현해야 할 비즈니스 규칙을 정리한 것이다.
|
||||||
|
|
||||||
조사 대상:
|
조사 대상:
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
## 2. 기존 관리자 파일 맵
|
## 2. 기존 관리자 파일 맵
|
||||||
|
|
||||||
| 기존 화면 | 서버 파일 | 역할 | 신규 `choco-admin` 매핑 |
|
| 기존 화면 | 서버 파일 | 역할 | 신규 `chocoadmin` 매핑 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| `admin/login.html` | `server/admin/login.php` | 관리자 로그인 | `/login`, NextAuth Credentials Provider |
|
| `admin/login.html` | `server/admin/login.php` | 관리자 로그인 | `/login`, NextAuth Credentials Provider |
|
||||||
| `admin/admin_all_list.html` | `server/admin/maestro_all_list.php` | 전체 마에스트로 목록 조회 | `/maestros`, `GET /api/maestros` |
|
| `admin/admin_all_list.html` | `server/admin/maestro_all_list.php` | 전체 마에스트로 목록 조회 | `/maestros`, `GET /api/maestros` |
|
||||||
@@ -331,7 +331,7 @@ VALUES (?, ?, NOW(), ?)
|
|||||||
- 로그 시간은 DB 서버의 `NOW()`를 사용한다.
|
- 로그 시간은 DB 서버의 `NOW()`를 사용한다.
|
||||||
- `Remark` 컬럼은 `char(100)`이므로 신규 구현에서도 길이 초과에 주의한다.
|
- `Remark` 컬럼은 `char(100)`이므로 신규 구현에서도 길이 초과에 주의한다.
|
||||||
|
|
||||||
## 11. 신규 `choco-admin` 구현 시 반드시 지켜야 할 규칙
|
## 11. 신규 `chocoadmin` 구현 시 반드시 지켜야 할 규칙
|
||||||
|
|
||||||
- 운영 DB 스키마는 변경하지 않는다.
|
- 운영 DB 스키마는 변경하지 않는다.
|
||||||
- 관리자 로그인은 기존 `admin.Name`과 `admin.Password = PASSWORD(?)` 호환 검증을 지원한다.
|
- 관리자 로그인은 기존 `admin.Name`과 `admin.Password = PASSWORD(?)` 호환 검증을 지원한다.
|
||||||
|
|||||||
+4
-4
@@ -1,4 +1,4 @@
|
|||||||
# choco-admin Deployment
|
# chocoadmin Deployment
|
||||||
|
|
||||||
## 1. Production Environment
|
## 1. Production Environment
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ Allow MariaDB only from the Synology NAS public IP.
|
|||||||
- Protocol: `TCP`
|
- Protocol: `TCP`
|
||||||
- Port: `3306`
|
- Port: `3306`
|
||||||
- Source: `NAS_PUBLIC_IP/32`
|
- Source: `NAS_PUBLIC_IP/32`
|
||||||
- Description: `choco-admin Synology NAS`
|
- Description: `chocoadmin Synology NAS`
|
||||||
|
|
||||||
Do not open `3306` to `0.0.0.0/0`.
|
Do not open `3306` to `0.0.0.0/0`.
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ Before enabling approval/rejection operations against production DB:
|
|||||||
2. Set `DATABASE_URL` in `.env.production` to that read-only account.
|
2. Set `DATABASE_URL` in `.env.production` to that read-only account.
|
||||||
3. Start the container.
|
3. Start the container.
|
||||||
4. Verify login, maestro list, extension request list, and upgrade request list.
|
4. Verify login, maestro list, extension request list, and upgrade request list.
|
||||||
5. Switch to the production write-capable choco-admin DB account only after read screens work.
|
5. Switch to the production write-capable chocoadmin DB account only after read screens work.
|
||||||
|
|
||||||
## 5. Smoke Checks
|
## 5. Smoke Checks
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ After container start:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose ps
|
docker compose ps
|
||||||
docker compose logs -f choco-admin
|
docker compose logs -f chocoadmin
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify these routes in the browser:
|
Verify these routes in the browser:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
`docs/plan/project-plan.md`의 `9. 개발 단계 계획 > Phase 0. 기존 관리자 코드 조사`를 수행하기 위한 실행 계획이다.
|
`docs/plan/project-plan.md`의 `9. 개발 단계 계획 > Phase 0. 기존 관리자 코드 조사`를 수행하기 위한 실행 계획이다.
|
||||||
|
|
||||||
Phase 0의 목표는 기존 `mouse-typing` 관리자 기능의 비즈니스 규칙을 확인하고, 신규 `choco-admin`에서 동일하게 재현해야 할 규칙을 `docs/business-rules.md`에 문서화하는 것이다.
|
Phase 0의 목표는 기존 `mouse-typing` 관리자 기능의 비즈니스 규칙을 확인하고, 신규 `chocoadmin`에서 동일하게 재현해야 할 규칙을 `docs/business-rules.md`에 문서화하는 것이다.
|
||||||
|
|
||||||
## 2. 조사 대상
|
## 2. 조사 대상
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ Phase 0의 목표는 기존 `mouse-typing` 관리자 기능의 비즈니스 규
|
|||||||
|
|
||||||
- 관리자 화면별 HTML 파일과 서버 PHP 파일의 호출 관계를 확인한다.
|
- 관리자 화면별 HTML 파일과 서버 PHP 파일의 호출 관계를 확인한다.
|
||||||
- 각 화면의 목록 조회 조건, 검색 조건, 정렬 기준, 상태 필터를 확인한다.
|
- 각 화면의 목록 조회 조건, 검색 조건, 정렬 기준, 상태 필터를 확인한다.
|
||||||
- 신규 `choco-admin`의 화면/API 구조와 직접 매핑 가능한 기능 목록을 정리한다.
|
- 신규 `chocoadmin`의 화면/API 구조와 직접 매핑 가능한 기능 목록을 정리한다.
|
||||||
|
|
||||||
산출물:
|
산출물:
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ Phase 0의 목표는 기존 `mouse-typing` 관리자 기능의 비즈니스 규
|
|||||||
- 연장 신청 조회/승인/취소 규칙
|
- 연장 신청 조회/승인/취소 규칙
|
||||||
- 업그레이드 신청 조회/승인/거절 규칙
|
- 업그레이드 신청 조회/승인/거절 규칙
|
||||||
- `maestro_log` 기록 규칙
|
- `maestro_log` 기록 규칙
|
||||||
- 신규 `choco-admin` 구현 시 반드시 지켜야 할 규칙
|
- 신규 `chocoadmin` 구현 시 반드시 지켜야 할 규칙
|
||||||
- 기존 코드에는 없지만 신규 구현에서 보완할 사항
|
- 기존 코드에는 없지만 신규 구현에서 보완할 사항
|
||||||
|
|
||||||
완료 기준:
|
완료 기준:
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
# choco-admin 프로젝트 계획서
|
# chocoadmin 프로젝트 계획서
|
||||||
|
|
||||||
## 1. 프로젝트 개요
|
## 1. 프로젝트 개요
|
||||||
|
|
||||||
| 항목 | 내용 |
|
| 항목 | 내용 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 서비스명 | choco-admin |
|
| 서비스명 | chocoadmin |
|
||||||
| 목적 | chocomae 웹 서비스(mouse-typing)의 관리자 기능을 독립 웹 서비스로 분리 |
|
| 목적 | chocomae 웹 서비스(mouse-typing)의 관리자 기능을 독립 웹 서비스로 분리 |
|
||||||
| 기존 서비스 경로 | `/Users/jisangs/work/jinaju/git/web/mouse-typing` |
|
| 기존 서비스 경로 | `/Users/jisangs/work/jinaju/git/web/mouse-typing` |
|
||||||
| 신규 서비스 경로 | `/Users/jisangs/work/jinaju/git/web/choco-admin` |
|
| 신규 서비스 경로 | `/Users/jisangs/work/jinaju/git/web/chocoadmin` |
|
||||||
| 사용 DB | 기존 chocomae DB (MariaDB 10.11.13) 그대로 사용 |
|
| 사용 DB | 기존 chocomae DB (MariaDB 10.11.13) 그대로 사용 |
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
```yaml
|
```yaml
|
||||||
# docker-compose.yml (개발용)
|
# docker-compose.yml (개발용)
|
||||||
services:
|
services:
|
||||||
choco-admin:
|
chocoadmin:
|
||||||
build: .
|
build: .
|
||||||
ports:
|
ports:
|
||||||
- "3001:3000"
|
- "3001:3000"
|
||||||
@@ -296,7 +296,7 @@ app/
|
|||||||
## 9. 디렉토리 구조 (목표)
|
## 9. 디렉토리 구조 (목표)
|
||||||
|
|
||||||
```
|
```
|
||||||
choco-admin/
|
chocoadmin/
|
||||||
├── app/
|
├── app/
|
||||||
│ ├── (auth)/
|
│ ├── (auth)/
|
||||||
│ │ └── login/
|
│ │ └── login/
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
# choco-admin 개발 작업 계획
|
# chocoadmin 개발 작업 계획
|
||||||
|
|
||||||
## 1. 프로젝트 개요
|
## 1. 프로젝트 개요
|
||||||
|
|
||||||
`choco-admin`은 기존 `chocomae` 웹 서비스의 관리자 페이지와 관리자 기능만 독립 분리하는 신규 관리자 웹 서비스이다.
|
`chocoadmin`은 기존 `chocomae` 웹 서비스의 관리자 페이지와 관리자 기능만 독립 분리하는 신규 관리자 웹 서비스이다.
|
||||||
|
|
||||||
- 기존 서비스명: `chocomae`
|
- 기존 서비스명: `chocomae`
|
||||||
- 기존 서비스 개발 디렉토리: `/Users/jisangs/work/jinaju/git/web/mouse-typing`
|
- 기존 서비스 개발 디렉토리: `/Users/jisangs/work/jinaju/git/web/mouse-typing`
|
||||||
- 신규 서비스명: `choco-admin`
|
- 신규 서비스명: `chocoadmin`
|
||||||
- 신규 서비스 개발 디렉토리: `/Users/jisangs/work/jinaju/git/web/choco-admin`
|
- 신규 서비스 개발 디렉토리: `/Users/jisangs/work/jinaju/git/web/chocoadmin`
|
||||||
- 개발 목표: 기존 `mouse-typing` 서비스의 관리자 기능을 Next.js 기반 독립 서비스로 재구성
|
- 개발 목표: 기존 `mouse-typing` 서비스의 관리자 기능을 Next.js 기반 독립 서비스로 재구성
|
||||||
- 기존 운영 환경: AWS EC2 `t3a.medium` 인스턴스 1개
|
- 기존 운영 환경: AWS EC2 `t3a.medium` 인스턴스 1개
|
||||||
- 신규 개발/운영 플랫폼: Synology NAS Docker
|
- 신규 개발/운영 플랫폼: Synology NAS Docker
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
- 장점: Next.js와 궁합이 좋고, 관리자 화면에 필요한 버튼, 입력, 다이얼로그, 탭, 폼 구성이 빠름
|
- 장점: Next.js와 궁합이 좋고, 관리자 화면에 필요한 버튼, 입력, 다이얼로그, 탭, 폼 구성이 빠름
|
||||||
- 장점: 컴포넌트 코드를 프로젝트 안에서 직접 소유하므로 장기 유지보수에 유리함
|
- 장점: 컴포넌트 코드를 프로젝트 안에서 직접 소유하므로 장기 유지보수에 유리함
|
||||||
- 단점: Tailwind 클래스에 익숙해지는 시간이 필요함
|
- 단점: Tailwind 클래스에 익숙해지는 시간이 필요함
|
||||||
- 추천 이유: `choco-admin`처럼 작은 팀/개인 프로젝트에서 빠르게 만들고 나중에 고치기 좋음
|
- 추천 이유: `chocoadmin`처럼 작은 팀/개인 프로젝트에서 빠르게 만들고 나중에 고치기 좋음
|
||||||
|
|
||||||
### 2순위: Mantine
|
### 2순위: Mantine
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
- 장점: 서버 사이드 페이지네이션, 정렬, 필터링을 구현하기 좋음
|
- 장점: 서버 사이드 페이지네이션, 정렬, 필터링을 구현하기 좋음
|
||||||
- 장점: shadcn/ui의 Data Table 패턴과 잘 맞음
|
- 장점: shadcn/ui의 Data Table 패턴과 잘 맞음
|
||||||
- 단점: 직접 조립해야 하는 부분이 있어 초기 구현량이 있음
|
- 단점: 직접 조립해야 하는 부분이 있어 초기 구현량이 있음
|
||||||
- 추천 이유: 관리자 기능이 늘어날 가능성이 높은 `choco-admin`에 가장 유연함
|
- 추천 이유: 관리자 기능이 늘어날 가능성이 높은 `chocoadmin`에 가장 유연함
|
||||||
|
|
||||||
### 2순위: AG Grid Community
|
### 2순위: AG Grid Community
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
## 6. DB 기준 관리자 대상 테이블
|
## 6. DB 기준 관리자 대상 테이블
|
||||||
|
|
||||||
스키마 파일: `/Users/jisangs/work/jinaju/git/web/choco-admin/docs/db-reference/schema.sql`
|
스키마 파일: `/Users/jisangs/work/jinaju/git/web/chocoadmin/docs/db-reference/schema.sql`
|
||||||
|
|
||||||
### 주요 테이블
|
### 주요 테이블
|
||||||
|
|
||||||
@@ -269,7 +269,7 @@
|
|||||||
## 8. 애플리케이션 구조 제안
|
## 8. 애플리케이션 구조 제안
|
||||||
|
|
||||||
```text
|
```text
|
||||||
choco-admin/
|
chocoadmin/
|
||||||
app/
|
app/
|
||||||
login/
|
login/
|
||||||
maestros/
|
maestros/
|
||||||
@@ -313,7 +313,7 @@ choco-admin/
|
|||||||
|
|
||||||
### 운영 환경
|
### 운영 환경
|
||||||
|
|
||||||
- Synology NAS Docker에서 `choco-admin` 컨테이너 실행
|
- Synology NAS Docker에서 `chocoadmin` 컨테이너 실행
|
||||||
- 운영 DB는 기존 AWS EC2 MariaDB에 접속
|
- 운영 DB는 기존 AWS EC2 MariaDB에 접속
|
||||||
- AWS 보안 그룹에서 Synology NAS 공인 IP만 MariaDB 접속 허용
|
- AWS 보안 그룹에서 Synology NAS 공인 IP만 MariaDB 접속 허용
|
||||||
- DB 계정은 관리자 서비스 전용 계정으로 분리
|
- DB 계정은 관리자 서비스 전용 계정으로 분리
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
# choco-admin 프로젝트 계획서
|
# chocoadmin 프로젝트 계획서
|
||||||
|
|
||||||
## 1. 프로젝트 개요
|
## 1. 프로젝트 개요
|
||||||
|
|
||||||
| 항목 | 내용 |
|
| 항목 | 내용 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 서비스명 | choco-admin |
|
| 서비스명 | chocoadmin |
|
||||||
| 목적 | chocomae 웹 서비스(mouse-typing)의 관리자 기능을 독립 웹 서비스로 분리 |
|
| 목적 | chocomae 웹 서비스(mouse-typing)의 관리자 기능을 독립 웹 서비스로 분리 |
|
||||||
| 기존 서비스 경로 | `/Users/jisangs/work/jinaju/git/web/mouse-typing` |
|
| 기존 서비스 경로 | `/Users/jisangs/work/jinaju/git/web/mouse-typing` |
|
||||||
| 신규 서비스 경로 | `/Users/jisangs/work/jinaju/git/web/choco-admin` |
|
| 신규 서비스 경로 | `/Users/jisangs/work/jinaju/git/web/chocoadmin` |
|
||||||
| 기존 운영 환경 | AWS EC2 t3a.medium 인스턴스 1개 |
|
| 기존 운영 환경 | AWS EC2 t3a.medium 인스턴스 1개 |
|
||||||
| 사용 DB | 기존 chocomae DB (MariaDB 10.11.13) 그대로 사용 |
|
| 사용 DB | 기존 chocomae DB (MariaDB 10.11.13) 그대로 사용 |
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
| 실행 방법 | Synology Container Manager (`docker compose up`) |
|
| 실행 방법 | Synology Container Manager (`docker compose up`) |
|
||||||
| DB (서비스) | AWS EC2 MariaDB (chocomae 서비스와 동일 인스턴스) |
|
| DB (서비스) | AWS EC2 MariaDB (chocomae 서비스와 동일 인스턴스) |
|
||||||
| DB 접근 | AWS 보안그룹에서 NAS 외부 IP만 3306 포트 허용 |
|
| DB 접근 | AWS 보안그룹에서 NAS 외부 IP만 3306 포트 허용 |
|
||||||
| DB 계정 | choco-admin 전용 최소 권한 계정으로 분리 |
|
| DB 계정 | chocoadmin 전용 최소 권한 계정으로 분리 |
|
||||||
| 환경변수 | `.env.production` 또는 Container Manager 환경변수 설정 |
|
| 환경변수 | `.env.production` 또는 Container Manager 환경변수 설정 |
|
||||||
|
|
||||||
### 4-3. Dockerfile / docker-compose (배포용)
|
### 4-3. Dockerfile / docker-compose (배포용)
|
||||||
@@ -90,7 +90,7 @@ CMD ["pnpm", "start"]
|
|||||||
```yaml
|
```yaml
|
||||||
# docker-compose.yml
|
# docker-compose.yml
|
||||||
services:
|
services:
|
||||||
choco-admin:
|
chocoadmin:
|
||||||
build: .
|
build: .
|
||||||
ports:
|
ports:
|
||||||
- "3001:3000"
|
- "3001:3000"
|
||||||
@@ -151,7 +151,7 @@ services:
|
|||||||
## 6. 애플리케이션 구조
|
## 6. 애플리케이션 구조
|
||||||
|
|
||||||
```
|
```
|
||||||
choco-admin/
|
chocoadmin/
|
||||||
├── app/
|
├── app/
|
||||||
│ ├── (auth)/
|
│ ├── (auth)/
|
||||||
│ │ └── login/
|
│ │ └── login/
|
||||||
@@ -277,7 +277,7 @@ choco-admin/
|
|||||||
2. 기존 `admin.Password` 저장 방식(평문/해시/자체 암호화)을 먼저 확인한 뒤 동일 방식 또는 해시 업그레이드를 결정한다.
|
2. 기존 `admin.Password` 저장 방식(평문/해시/자체 암호화)을 먼저 확인한 뒤 동일 방식 또는 해시 업그레이드를 결정한다.
|
||||||
3. 승인·취소·거절 액션은 Next.js Server Action 또는 API Route에서 CSRF 보호를 적용한다.
|
3. 승인·취소·거절 액션은 Next.js Server Action 또는 API Route에서 CSRF 보호를 적용한다.
|
||||||
4. DB 연결 정보는 `.env` 파일로 관리하며 Git에 커밋하지 않는다.
|
4. DB 연결 정보는 `.env` 파일로 관리하며 Git에 커밋하지 않는다.
|
||||||
5. 배포 DB 계정은 choco-admin 전용 계정으로 분리하고 최소 권한(SELECT + 필요한 테이블만 UPDATE)을 적용한다.
|
5. 배포 DB 계정은 chocoadmin 전용 계정으로 분리하고 최소 권한(SELECT + 필요한 테이블만 UPDATE)을 적용한다.
|
||||||
6. AWS EC2 보안그룹에서 MariaDB 포트(3306)를 NAS 외부 IP로만 허용한다.
|
6. AWS EC2 보안그룹에서 MariaDB 포트(3306)를 NAS 외부 IP로만 허용한다.
|
||||||
7. 관리자 전용 서비스이므로 외부에 직접 노출하지 않고 VPN 또는 NAS 내부 포트로 접근하는 방식을 권장한다.
|
7. 관리자 전용 서비스이므로 외부에 직접 노출하지 않고 VPN 또는 NAS 내부 포트로 접근하는 방식을 권장한다.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "choco-admin",
|
"name": "chocoadmin",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"packageManager": "pnpm@10.29.3",
|
"packageManager": "pnpm@10.29.3",
|
||||||
|
|||||||
Reference in New Issue
Block a user