Imported from yohan-work/ec2 (
admin-panel/AGENTS.md). Install upstream withnpx skills add yohan-work/ec2 --skill admin-panel. Copyright stays with the author.
AGENTS.md
ํ๋ก์ ํธ ๊ฐ์
์ด ํ๋ก์ ํธ๋ 3๊ฐ์ ์ฌ์ดํธ๋ฅผ ํตํฉ ๊ด๋ฆฌํ๋ ์์คํ ์ผ๋ก, Concentrix ์ฌ์ดํธ, Concentrix ์ด๋๋ฏผ, DMS(Delivery Management System)๋ฅผ ํ๋์ Nuxt 3 ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ตฌ์ฑํ ๋ฉํฐ ์ฌ์ดํธ ๊ด๋ฆฌ ํ๋ซํผ์ ๋๋ค.
3๊ฐ ์ฌ์ดํธ ๊ตฌ์ฑ
-
Concentrix ์ฌ์ดํธ (
/- ๊ณต๊ฐ ์ฌ์ดํธ)- ๋ด์ค๋ ํฐ ๋ฐ ์ฑ์ฉ๊ณต๊ณ ๊ณต๊ฐ ์กฐํ
- ์ผ๋ฐ ์ฌ์ฉ์ ๋์ ๊ณต๊ฐ ์น์ฌ์ดํธ
- Concentrix ๋ธ๋๋ฉ ์ ์ฉ
-
Concentrix ์ด๋๋ฏผ (
/admin/*,/dashboard- ๊ด๋ฆฌ์ ์ฌ์ดํธ)- ๋ด์ค๋ ํฐ ๋ฐ ์ฑ์ฉ๊ณต๊ณ ๊ด๋ฆฌ (CRUD)
- ๊ด๋ฆฌ์ ์ฌ์ฉ์ ๊ด๋ฆฌ
- ์์คํ ๋ก๊ทธ ๋ฐ ๊ฐ์ฌ ์ถ์
- AWS Cognito ๊ธฐ๋ฐ ์ธ์ฆ
-
DMS (
/dms/*- Delivery Management System)- ํ๋ก์ ํธ ๋ฐ ์์ต ๊ด๋ฆฌ
- ํด๋ผ์ด์ธํธ, ์ง์, ์กฐ์ง ๊ด๋ฆฌ
- ์ ๊ทผ ์ ์ด ๊ด๋ฆฌ
- ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ ๊ด๋ฆฌ (๋ชจ๋ CRUD ์์ ์ถ์ )
- ๋ ๋ฆฝ์ ์ธ ๋ก๊ทธ์ธ ์์คํ (Concentrix ์ด๋ฉ์ผ ๊ธฐ๋ฐ)
๊ธฐ์ ์คํ
Frontend
- Framework: Nuxt 3 (Vue 3 ๊ธฐ๋ฐ)
- UI Library: TailwindCSS
- Language: TypeScript
- State Management: VueUse
- Charts: Chart.js, Vue-ChartJS
Backend
- Runtime: Node.js (Nuxt 3 Server API)
- Database: MySQL (Prisma ORM)
- Authentication: AWS Cognito
- API Documentation: OpenAPI 3.0 (Swagger)
DevOps & Tools
- Package Manager: npm
- Linting: ESLint + Prettier
- Type Checking: TypeScript
- Build Tool: Vite
ํ๋ก์ ํธ ๊ตฌ์กฐ
admin-panel/
โโโ app/ # Nuxt 3 ์ฑ ์ค์
โโโ components/ # Vue ์ปดํฌ๋ํธ
โ โโโ ui/ # ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ์ปดํฌ๋ํธ
โ โโโ dms/ # DMS ๊ด๋ จ ์ปดํฌ๋ํธ
โ โโโ concentrix/ # Concentrix ๊ด๋ จ ์ปดํฌ๋ํธ
โโโ composables/ # Vue 3 Composables
โ โโโ useAuth.ts # Admin์์ ์ฌ์ฉ
โ โโโ useYear.ts # DMS์์ ์ฌ์ฉ
โโโ layouts/ # Nuxt ๋ ์ด์์ (3๊ฐ ์ฌ์ดํธ๋ณ)
โ โโโ concentrix.vue # Concentrix ์ฌ์ดํธ ๋ ์ด์์
โ โโโ admin.vue # Concentrix ์ด๋๋ฏผ ๋ ์ด์์
โ โโโ dms.vue # DMS ๋ ์ด์์
โ โโโ dms-login.vue # DMS ๋ก๊ทธ์ธ ๋ ์ด์์
โ โโโ scss/ # SCSS ์คํ์ผ ํ์ผ
โโโ middleware/ # Nuxt ๋ฏธ๋ค์จ์ด (์ธ์ฆ ๋ฑ)
โโโ pages/ # ํ์ด์ง ๋ผ์ฐํ
(3๊ฐ ์ฌ์ดํธ๋ณ)
โ โโโ index.vue # Concentrix ์ฌ์ดํธ ํํ์ด์ง
โ โโโ admin/ # Concentrix ์ด๋๋ฏผ ํ์ด์ง
โ โโโ dms/ # DMS ํ์ด์ง
โ โโโ ๊ทธ ์ธ ํด๋ # Concentrix ์ฌ์ดํธ์ ๋ฉ๋ด๋ค
โ โโโ login.vue # ์ผ๋ฐ ๋ก๊ทธ์ธ (admin์ฉ)
โ โโโ logout.vue # ๋ก๊ทธ์์ (admin์ฉ)
โ โโโ callback.vue # OAuth ์ฝ๋ฐฑ (admin์ฉ)
โโโ plugins/ # Nuxt ํ๋ฌ๊ทธ์ธ
โโโ prisma/ # ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง
โโโ public/ # ์ ์ ํ์ผ
โโโ server/ # ์๋ฒ API
โ โโโ api/ # API ์๋ํฌ์ธํธ
โโโ stores/ # ์ํ ๊ด๋ฆฌ
โโโ types/ # TypeScript ํ์
์ ์
โโโ utils/ # ์ ํธ๋ฆฌํฐ ํจ์
์ฃผ์ ๊ธฐ๋ฅ
1. Concentrix ์ฌ์ดํธ (๊ณต๊ฐ ์ฌ์ดํธ)
- ๋ด์ค๋ ํฐ ์กฐํ: ๋ฐํ๋ ๋ด์ค๋ ํฐ ๊ณต๊ฐ ์กฐํ
- ์ฑ์ฉ๊ณต๊ณ ์กฐํ: ๋ฐํ๋ ์ฑ์ฉ๊ณต๊ณ ๊ณต๊ฐ ์กฐํ
- ๋ฐ์ํ ๋์์ธ: ๋ชจ๋ฐ์ผ/๋ฐ์คํฌํฑ ์ต์ ํ
- Concentrix ๋ธ๋๋ฉ: ์ผ๊ด๋ ๋ธ๋๋ ๊ฒฝํ
2. Concentrix ์ด๋๋ฏผ (๊ด๋ฆฌ์ ์ฌ์ดํธ)
- ์ฌ์ฉ์ ๊ด๋ฆฌ: AWS Cognito ๊ธฐ๋ฐ ์ธ์ฆ
- ๊ถํ ๊ด๋ฆฌ: ์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด
- ๊ฐ์ฌ ๋ก๊ทธ: ์ฌ์ฉ์ ํ๋ ์ถ์
- ๋ด์ค๋ ํฐ ๊ด๋ฆฌ: CRUD ๊ธฐ๋ฅ (์์ฑ, ์กฐํ, ์์ , ์ญ์ )
- ์ฑ์ฉ๊ณต๊ณ ๊ด๋ฆฌ: CRUD ๊ธฐ๋ฅ (์์ฑ, ์กฐํ, ์์ , ์ญ์ )
- ๊ด๋ฆฌ์ ๊ด๋ฆฌ: ๊ด๋ฆฌ์ ๊ณ์ ๋ฐ ๊ถํ ๊ด๋ฆฌ
- ์์คํ ๋ชจ๋ํฐ๋ง: ๋ก๊ทธ ๋ฐ ๋ฉํธ๋ฆญ ์กฐํ
3. DMS (Delivery Management System)
- ํ๋ก์ ํธ ๊ด๋ฆฌ:
- Project List: ํ๋ก์ ํธ ๋ชฉ๋ก ๊ด๋ฆฌ (๊ณ์ฝ ์ ๋ณด, ๊ธฐ๊ฐ, ๊ธ์ก ๋ฑ)
- Project Revenue: ํ๋ก์ ํธ ์์ต ๊ด๋ฆฌ (์๋ณ ์์ต ์ถ์ )
- Project MM: ํ๋ก์ ํธ ์ธ๋ ฅ ๊ด๋ฆฌ (์๋ณ ์ธ๋ ฅ ๋ฐฐ์น ๋ฐ ๋น์ฉ)
- ํด๋ผ์ด์ธํธ ๊ด๋ฆฌ: ๊ณ ๊ฐ์ฌ ์ ๋ณด CRUD ๊ด๋ฆฌ (์ค๋ณต ์ฒดํฌ ํฌํจ)
- ์ง์ ๊ด๋ฆฌ:
- ์ง์ ์ ๋ณด CRUD ๊ด๋ฆฌ (์ด๋ฆ, ์ด๋ฉ์ผ, ์ง๊ธ, ์ง๋ฌด, ์ํ ๋ฑ)
- ์กฐ์ง๋ณ ํํฐ๋ง ๋ฐ ๊ฒ์ ๊ธฐ๋ฅ
- ๋งค๋์ ์ง์ ๋ฐ ๊ณ์ธต ๊ตฌ์กฐ ๊ด๋ฆฌ
- ์ง์ ์ํ ๊ด๋ฆฌ (ํ์ฑ, ํด์ฌ, ํด์ง, ์ ์ถ, ์ ์ฌ์์ )
- ์กฐ์ง ๊ด๋ฆฌ:
- ๋ณธ๋ถ/๊ทธ๋ฃน/ํ 3๋จ๊ณ ์กฐ์ง ๊ตฌ์กฐ ๊ด๋ฆฌ
- ์กฐ์ง๋ณ ์ ๋ ฌ ์์ ๊ด๋ฆฌ
- ์กฐ์ง ๋ฆฌ๋ ์ง์ ๋ฐ ๊ด๋ฆฌ
- ์ ๊ทผ ์ ์ด ๊ด๋ฆฌ: IP ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด (CIDR ํ๊ธฐ๋ฒ ์ง์)
- ๊ถํ ๊ด๋ฆฌ: ์ฌ์ฉ์๋ณ ์ธ๋ถ ๊ถํ ์ค์ ๋ฐ ๊ด๋ฆฌ
- ์ฌ์ฉ์ ๊ด๋ฆฌ: DMS ์์คํ ์ฌ์ฉ์ ๊ณ์ ๊ด๋ฆฌ
- ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ ๊ด๋ฆฌ:
- ๋ชจ๋ CRUD ์์ ์๋ ์ถ์ (Insert/Update/Delete)
- ์์ ์, ๋ฉ๋ด๋ช , ์์ ๋ด์ฉ, IP, ์์ ์ผ์ ๊ธฐ๋ก
- ๋ ์ง๋ณ ํํฐ๋ง ๋ฐ ๊ฒ์ ๊ธฐ๋ฅ
- ๋น ๋ฅธ ๋ ์ง ์ ํ (์ค๋, ์ด๋ฒ์ฃผ, ์ด๋ฒ๋ฌ)
- SSO: ์ธ์ฃผ ๋น์ฉ ๊ด๋ฆฌ ๋ฐ MSA ๊ณ์ฝ ๊ด๋ฆฌ
- Staff Utility: ์ง์ ํ์ฉ๋ ๊ด๋ฆฌ (์๋ณ Utilization ์ถ์ )
- DMS ์ ์ฉ ๋ก๊ทธ์ธ: ๋ ๋ฆฝ์ ์ธ ์ธ์ฆ ์์คํ (Concentrix ์ด๋ฉ์ผ + bcrypt)
API ์๋ํฌ์ธํธ
Concentrix ์ด๋๋ฏผ API (์ธ์ฆ ํ์)
GET /api/admin/newsletters- ๋ด์ค๋ ํฐ ๋ชฉ๋ก ์กฐํPOST /api/admin/newsletters- ๋ด์ค๋ ํฐ ์์ฑGET /api/admin/newsletters/{id}- ๋ด์ค๋ ํฐ ์์ธ ์กฐํPUT /api/admin/newsletters/{id}- ๋ด์ค๋ ํฐ ์์ DELETE /api/admin/newsletters/{id}- ๋ด์ค๋ ํฐ ์ญ์ GET /api/admin/recruits- ์ฑ์ฉ๊ณต๊ณ ๋ชฉ๋ก ์กฐํPOST /api/admin/recruits- ์ฑ์ฉ๊ณต๊ณ ์์ฑGET /api/admin/recruits/{id}- ์ฑ์ฉ๊ณต๊ณ ์์ธ ์กฐํPUT /api/admin/recruits/{id}- ์ฑ์ฉ๊ณต๊ณ ์์ DELETE /api/admin/recruits/{id}- ์ฑ์ฉ๊ณต๊ณ ์ญ์ GET /api/admin/logs- ๊ฐ์ฌ ๋ก๊ทธ ์กฐํGET /api/admin/mngr- ๊ด๋ฆฌ์ ์ ๋ณด ์กฐํ
Concentrix ์ฌ์ดํธ API (๊ณต๊ฐ, ์ธ์ฆ ๋ถํ์)
GET /api/public/newsletters- ๋ฐํ๋ ๋ด์ค๋ ํฐ ์กฐํGET /api/public/newsletters/{id}- ๋ด์ค๋ ํฐ ์์ธ ์กฐํGET /api/public/recruits- ๋ฐํ๋ ์ฑ์ฉ๊ณต๊ณ ์กฐํGET /api/public/recruits/{id}- ์ฑ์ฉ๊ณต๊ณ ์์ธ ์กฐํ
DMS API (Delivery Management System ์ ์ฉ)
์ธ์ฆ ๋ฐ ์ธ์ ๊ด๋ฆฌ
POST /api/dms/login- DMS ๋ก๊ทธ์ธPOST /api/dms/logout- DMS ๋ก๊ทธ์์GET /api/dms/session- DMS ์ธ์ ํ์ธGET /api/dms/check-ip-access- IP ์ ๊ทผ ์ ์ด ํ์ธ
๊ณ ๊ฐ์ฌ ๊ด๋ฆฌ
GET /api/dms/clients- ๊ณ ๊ฐ์ฌ ๋ชฉ๋ก ์กฐํPOST /api/dms/clients- ๊ณ ๊ฐ์ฌ ์์ฑ (์ค๋ณต ์ฒดํฌ ํฌํจ)PUT /api/dms/clients/{id}- ๊ณ ๊ฐ์ฌ ์์ DELETE /api/dms/clients/{id}- ๊ณ ๊ฐ์ฌ ์ญ์
์ง์ ๊ด๋ฆฌ
GET /api/dms/employees- ์ง์ ๋ชฉ๋ก ์กฐํ (ํํฐ๋ง, ๊ฒ์ ์ง์)POST /api/dms/employees- ์ง์ ์์ฑPUT /api/dms/employees/{id}- ์ง์ ์์ DELETE /api/dms/employees/{id}- ์ง์ ์ญ์ GET /api/dms/employees/options- ์ง์ ๊ด๋ฆฌ ์ต์ ๋ฐ์ดํฐ ์กฐํ
์กฐ์ง ๊ด๋ฆฌ
GET /api/dms/organizations/headquarters- ๋ณธ๋ถ ๋ชฉ๋ก ์กฐํPOST /api/dms/organizations/headquarters- ๋ณธ๋ถ ์์ฑPUT /api/dms/organizations/headquarters/{id}- ๋ณธ๋ถ ์์ DELETE /api/dms/organizations/headquarters/{id}- ๋ณธ๋ถ ์ญ์ GET /api/dms/organizations/groups- ๊ทธ๋ฃน ๋ชฉ๋ก ์กฐํPOST /api/dms/organizations/groups- ๊ทธ๋ฃน ์์ฑPUT /api/dms/organizations/groups/{id}- ๊ทธ๋ฃน ์์ DELETE /api/dms/organizations/groups/{id}- ๊ทธ๋ฃน ์ญ์ GET /api/dms/organizations/teams- ํ ๋ชฉ๋ก ์กฐํPOST /api/dms/organizations/teams- ํ ์์ฑPUT /api/dms/organizations/teams/{id}- ํ ์์ DELETE /api/dms/organizations/teams/{id}- ํ ์ญ์
๋ณ๊ฒฝ ํ์คํ ๋ฆฌ ๊ด๋ฆฌ
GET /api/dms/history- ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ ์กฐํ (ํํฐ๋ง, ํ์ด์ง๋ค์ด์ ์ง์)POST /api/dms/history- ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ ์์ฑ (์์คํ ๋ด๋ถ ์ฌ์ฉ)
์์คํ API
GET /api/system/metrics- ์์คํ ๋ฉํธ๋ฆญ ์กฐํGET /api/test- ํ ์คํธ APIGET /api/docs/swagger- Swagger UIGET /api/docs/openapi- OpenAPI ์คํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง
์ฃผ์ ํ ์ด๋ธ
Concentrix ์์คํ
- admin_users: ๊ด๋ฆฌ์ ์ฌ์ฉ์ ์ ๋ณด
- departments: ๋ถ์ ์ ๋ณด
- roles: ์ญํ ์ ๋ณด
- audit_logs: ๊ฐ์ฌ ๋ก๊ทธ
- newsletters: ๋ด์ค๋ ํฐ ๋ฐ์ดํฐ
- recruits: ์ฑ์ฉ๊ณต๊ณ ๋ฐ์ดํฐ
DMS ์์คํ
- dms_admin_users: DMS ๊ด๋ฆฌ์ ์ฌ์ฉ์ ์ ๋ณด
- dms_ip_access_control: DMS IP ์ ๊ทผ ์ ์ด ๊ท์น
- dms_clients: DMS ๊ณ ๊ฐ์ฌ ์ ๋ณด (๊ณ ๊ฐ์ฌ๋ช , ์์ฑ์ผ, ์์ ์ผ)
- dms_employees: DMS ์ง์ ์ ๋ณด (์ด๋ฆ, ์ด๋ฉ์ผ, ์ง๊ธ, ์ง๋ฌด, ์ํ, ์กฐ์ง ์ ๋ณด ๋ฑ)
- dms_headquarters: DMS ๋ณธ๋ถ ์ ๋ณด (๋ณธ๋ถ๋ช , ๋ฆฌ๋, ์ ๋ ฌ์์)
- dms_groups: DMS ๊ทธ๋ฃน ์ ๋ณด (๊ทธ๋ฃน๋ช , ์์ ๋ณธ๋ถ, ๋ฆฌ๋, ์ ๋ ฌ์์)
- dms_teams: DMS ํ ์ ๋ณด (ํ๋ช , ์์ ๊ทธ๋ฃน, ๋ฆฌ๋, ์ ๋ ฌ์์)
- dms_change_history: DMS ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ (์์ ์, ๋ฉ๋ด๋ช , ์์ ๋ด์ฉ, ์ธ๋ถ๋ด์ฉ, IP, ์์ ์ผ์)
ํ๊ฒฝ ์ค์
ํ์ ํ๊ฒฝ ๋ณ์
# ๋ฐ์ดํฐ๋ฒ ์ด์ค
DATABASE_URL="mysql://username:password@localhost:3306/database_name"
# AWS Cognito (Concentrix ์์คํ
)
NUXT_PUBLIC_COGNITO_USER_POOL_ID="your_user_pool_id"
NUXT_PUBLIC_COGNITO_APP_CLIENT_ID="your_app_client_id"
NUXT_PUBLIC_COGNITO_REGION="your_region"
NUXT_PUBLIC_COGNITO_DOMAIN="your_cognito_domain"
NUXT_PUBLIC_REDIRECT_SIGN_IN="http://localhost:3000/callback"
NUXT_PUBLIC_REDIRECT_SIGN_OUT="http://localhost:3000/logout"
๊ฐ๋ฐ ๊ฐ์ด๋
์ค์น ๋ฐ ์คํ
# ์์กด์ฑ ์ค์น
npm install
# ๊ฐ๋ฐ ์๋ฒ ์คํ
npm run dev
# ํ๋ก๋์
๋น๋
npm run build
์ฝ๋ ํ์ง ๊ด๋ฆฌ
# ๋ฆฐํ
npm run lint
# ๋ฆฐํ
์๋ ์์
npm run lint:fix
# ์ฝ๋ ํฌ๋งทํ
npm run format
# ํ์
์ฒดํฌ
npm run type-check
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ
# Prisma Studio ์คํ (GUI ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ)
npx prisma studio
# ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋๊ธฐํ
npx prisma db push
# ๋ง์ด๊ทธ๋ ์ด์
์์ฑ ๋ฐ ์ ์ฉ
npx prisma migrate dev --name migration_name
# Prisma Client ์ฌ์์ฑ
npx prisma generate
Prisma Studio
Prisma Studio๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๊ฐ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ์น ๊ธฐ๋ฐ GUI ๋๊ตฌ์ ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ:
- ํ ์ด๋ธ ๋ณด๊ธฐ: ๋ชจ๋ ํ ์ด๋ธ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ธ๋ผ์ฐ์ ์์ ํ์ธ
- ๋ฐ์ดํฐ ํธ์ง: ์ง์ ๋ฐ์ดํฐ ์ถ๊ฐ, ์์ , ์ญ์ ๊ฐ๋ฅ
- ๊ด๊ณ ์๊ฐํ: ํ ์ด๋ธ ๊ฐ ๊ด๊ณ๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์ธ
- ์คํค๋ง ํ์ธ: ํ ์ด๋ธ ๊ตฌ์กฐ์ ํ๋ ์ ๋ณด ํ์ธ
- ์ค์๊ฐ ์ ๋ฐ์ดํธ: ๋ณ๊ฒฝ์ฌํญ์ด ์ฆ์ ๋ฐ์
์ฌ์ฉ๋ฒ:
npx prisma studio์คํ- ๋ธ๋ผ์ฐ์ ์์
http://localhost:5555์ ์ - ์ํ๋ ํ ์ด๋ธ ์ ํํ์ฌ ๋ฐ์ดํฐ ๊ด๋ฆฌ
์ ๊ทผ ๊ฐ๋ฅํ ํ ์ด๋ธ:
admin_users: Concentrix ์ด๋๋ฏผ ์ฌ์ฉ์dms_admin_users: DMS ๊ด๋ฆฌ์ ์ฌ์ฉ์newsletters: ๋ด์ค๋ ํฐ ๋ฐ์ดํฐrecruits: ์ฑ์ฉ๊ณต๊ณ ๋ฐ์ดํฐdepartments: ๋ถ์ ์ ๋ณดroles: ์ญํ ์ ๋ณดaudit_logs: ๊ฐ์ฌ ๋ก๊ทธdms_clients: DMS ๊ณ ๊ฐ์ฌ ๋ฐ์ดํฐdms_employees: DMS ์ง์ ๋ฐ์ดํฐdms_headquarters: DMS ๋ณธ๋ถ ๋ฐ์ดํฐdms_groups: DMS ๊ทธ๋ฃน ๋ฐ์ดํฐdms_teams: DMS ํ ๋ฐ์ดํฐdms_change_history: DMS ๋ณ๊ฒฝ ํ์คํ ๋ฆฌdms_ip_access_control: DMS IP ์ ๊ทผ ์ ์ด ๊ท์น
๋ฐฐํฌ
๋น๋ ๋ฐ ๋ฐฐํฌ
- ํ๊ฒฝ ๋ณ์ ์ค์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์คํ
- ํ๋ก๋์
๋น๋:
npm run build - ์๋ฒ์ ๋ฐฐํฌ
AWS Cognito ์ค์
- User Pool ์์ฑ ๋ฐ ์ค์
- App Client ์์ฑ
- ๋๋ฉ์ธ ์ค์
- ๋ฆฌ๋ค์ด๋ ํธ URL ์ค์
๋ณด์ ๊ณ ๋ ค์ฌํญ
-
๋ฉํฐ ์ฌ์ดํธ ์ธ์ฆ:
- Concentrix ์ด๋๋ฏผ: AWS Cognito ๊ธฐ๋ฐ ์ธ์ฆ
- DMS: ๋ ๋ฆฝ์ ์ธ ๋ก๊ทธ์ธ ์์คํ (Concentrix ์ด๋ฉ์ผ + bcrypt)
- Concentrix ์ฌ์ดํธ: ๊ณต๊ฐ ์ ๊ทผ (์ธ์ฆ ๋ถํ์)
-
๊ถํ ๊ด๋ฆฌ:
- ์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด (RBAC)
- ์ฌ์ดํธ๋ณ ๋ ๋ฆฝ์ ์ธ ๊ถํ ์ฒด๊ณ
-
๊ฐ์ฌ ๋ก๊ทธ:
- ๋ชจ๋ ๊ด๋ฆฌ์ ํ๋ ์ถ์
- ์ฌ์ดํธ๋ณ ๋ก๊ทธ ๋ถ๋ฆฌ
- DMS ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ: ๋ชจ๋ CRUD ์์ ์๋ ๊ธฐ๋ก (Insert/Update/Delete)
-
API ๋ณด์:
- ์ฌ์ดํธ๋ณ API ์๋ํฌ์ธํธ ๋ถ๋ฆฌ
- ์ธ์ฆ์ด ํ์ํ API์ ๊ณต๊ฐ API ๋ถ๋ฆฌ
-
IP ์ ๊ทผ ์ ์ด:
- DMS ์์คํ ์ ๋ฑ๋ก๋ IP์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
- CIDR ํ๊ธฐ๋ฒ์ ํตํ IP ๋์ญ ํ์ฉ
- localhost ์๋ ํ์ฉ์ผ๋ก ๊ฐ๋ฐ ํ๊ฒฝ ์ง์
- ์ค์๊ฐ IP ์ฒดํฌ ๋ฐ ์ ๊ทผ ์ฐจ๋จ
-
๋ฐ์ดํฐ ๋ณดํธ:
- ๋ฏผ๊ฐํ ์ ๋ณด ์ํธํ ๋ฐ ์์ ํ ์ ์ฅ
- ์ฌ์ดํธ๋ณ ๋ฐ์ดํฐ ๊ฒฉ๋ฆฌ
๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น
-
๋ฉํฐ ์ฌ์ดํธ ๋ก๊น :
- Concentrix ์ฌ์ดํธ: ๊ณต๊ฐ ์ ๊ทผ ๋ก๊ทธ
- Concentrix ์ด๋๋ฏผ: ๊ด๋ฆฌ์ ํ๋ ๋ก๊ทธ
- DMS: Delivery Management System ์ฌ์ฉ์ ํ๋ ๋ก๊ทธ
- DMS ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ: ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์์ ์๋ ๊ธฐ๋ก ๋ฐ ์ถ์
- DMS ์ง์ ๊ด๋ฆฌ: ์ง์ ์ ๋ณด ๋ณ๊ฒฝ ์ถ์
- DMS ์กฐ์ง ๊ด๋ฆฌ: ๋ณธ๋ถ/๊ทธ๋ฃน/ํ ๊ตฌ์กฐ ๋ณ๊ฒฝ ์ถ์
- DMS ๊ณ ๊ฐ์ฌ ๊ด๋ฆฌ: ๊ณ ๊ฐ์ฌ ์ ๋ณด ๋ณ๊ฒฝ ์ถ์
-
์์คํ ๋ฉํธ๋ฆญ:
- ์ฌ์ดํธ๋ณ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง
- API ์๋ต ์๊ฐ ๋ฐ ์ฌ์ฉ๋ ์ถ์
-
์๋ฌ ๋ก๊น :
- ์ ํ๋ฆฌ์ผ์ด์ ์ค๋ฅ ์ถ์
- ์ฌ์ดํธ๋ณ ์๋ฌ ๋ถ๋ฅ ๋ฐ ์๋ฆผ
๊ธฐ์ฌ ๊ฐ์ด๋
- ์ฝ๋ ์คํ์ผ: ESLint + Prettier ๊ฐ์ด๋ ์ค์
- ํ์ ์์ ์ฑ: TypeScript ํ์ ์์ ์ฑ ์ ์ง
- ๋ฉํฐ ์ฌ์ดํธ ๊ณ ๋ ค:
- ์ฌ์ดํธ๋ณ ๋ ๋ฆฝ์ ์ธ ์ปดํฌ๋ํธ ๊ฐ๋ฐ
- ๋ ์ด์์๋ณ ์คํ์ผ ๋ถ๋ฆฌ
- API ์๋ํฌ์ธํธ ๋ช ๋ช ๊ท์น ์ค์
- ํ ์คํธ: ํ ์คํธ ์ฝ๋ ์์ฑ ๊ถ์ฅ
- ๋ฌธ์ํ: API ๋ฌธ์ ์ ๋ฐ์ดํธ (OpenAPI ์คํ)
- ๋ณด์: ๋ณด์ ๊ฒํ ํ์
- ์ฌ์ดํธ๋ณ ๋ธ๋๋ฉ: ๊ฐ ์ฌ์ดํธ์ ๋ธ๋๋ ๊ฐ์ด๋๋ผ์ธ ์ค์
๋ผ์ด์ ์ค
์ด ํ๋ก์ ํธ๋ ํ์ฌ ๋ด๋ถ ์ฌ์ฉ์ ์ํ ํ๋ผ์ด๋น ํ๋ก์ ํธ์ ๋๋ค.
์ต์ข ์ ๋ฐ์ดํธ: 2025๋ 9์ 29์ผ ๋ฌธ์ ๋ฒ์ : 0.0.5
