본문 바로가기

개발자정보

vedi 시스템 구축

반응형

React17, Typescript 환경에서 Monorepo 관리 도구를 사용하여 vedi 프로젝트 생성하고 ancho 하위 프로젝트를 생성하고 하위에 어플리케이션은 ancho-app 폴더가 있고 ancho-biz 는 tsx 파일 또는 ts 가 있습니다.
프로젝트를 생성하고 샘플을 만들어 실행하는 방법 알려주세요.

 

1. 모노레포 초기 설정

# 프로젝트 루트 생성
mkdir vedi && cd vedi
yarn init -y

# Lerna 및 Workspaces 설정
npx lerna init
yarn add -W lerna

오류 발생하여 아래와 같이 조치
npm uninstall -g nx
npm cache clean --force

lerna 설치
npm install -g lerna
lerna init

cd packages/ancho-app
yarn add --dev webpack webpack-cli webpack-dev-server html-webpack-plugin ts-loader

 

nvm-setup.exe 설치 하고 최신 버젼으로 변경

nvm install latest

https://github.com/coreybutler/nvm-windows/releases

 

Releases · coreybutler/nvm-windows

A node.js version management utility for Windows. Ironically written in Go. - coreybutler/nvm-windows

github.com

 

PS C:\myfront\vedi> npm uninstall -g lerna
PS C:\myfront\vedi> npm install --save-dev lerna

 

Value & Versatile & Validated Electronic Data Interface

데이터 통합을 통해 가치를 높이고 다양한 검증된 데이터를 송수신 인터페이스 서비스를 제공하는 시스템

 

npx create-react-app . --template typescript

 

 

TMS (Tenant Management System) 분석 및 설계 문서
1. 시스템 개요
TMS는 다중 테넌트 환경에서 사용자, 메시지, 메뉴 및 권한을 관리하는 시스템입니다. 이 시스템은 각 테넌트가 독립적으로 운영될 수 있도록 하며, 사용자 관리 및 권한 부여를 통해 보안을 강화합니다.

2. 요구사항 분석
2.1 기능적 요구사항
사용자 관리
사용자 등록, 수정, 삭제 기능
사용자 역할 및 권한 설정
테넌트 관리
테넌트 생성, 수정, 삭제 기능
각 테넌트에 대한 정보 관리
메시지 관리
메시지 전송 및 수신 기능
메시지 기록 조회 기능
메뉴 관리
메뉴 항목 추가, 수정, 삭제 기능
사용자별 메뉴 접근 권한 설정
2.2 비기능적 요구사항
보안: 사용자 인증 및 권한 부여를 통한 데이터 보호
성능: 다수의 테넌트와 사용자를 지원할 수 있는 확장성
가용성: 시스템의 높은 가용성 및 장애 복구 기능
3. 시스템 설계
3.1 아키텍처
클라이언트-서버 아키텍처: 웹 기반 클라이언트와 RESTful API 서버로 구성
데이터베이스: 각 테넌트의 데이터를 분리하여 저장할 수 있는 다중 테넌트 데이터베이스 설계
3.2 데이터베이스 설계
테이블 구조
Users: 사용자 정보 (user_id, username, password, role, tenant_id)
Tenants: 테넌트 정보 (tenant_id, tenant_name, created_at)
Messages: 메시지 정보 (message_id, sender_id, receiver_id, content, timestamp)
Menus: 메뉴 정보 (menu_id, menu_name, tenant_id, permissions)
3.3 사용자 인터페이스
대시보드: 각 테넌트의 사용자 및 메시지 현황을 보여주는 대시보드
사용자 관리 페이지: 사용자 추가, 수정, 삭제 기능을 제공하는 페이지
메시지 관리 페이지: 메시지 전송 및 기록 조회 기능을 제공하는 페이지
메뉴 관리 페이지: 메뉴 항목을 관리하고 권한을 설정하는 페이지
4. 보안 설계
인증: JWT(JSON Web Token)를 사용한 사용자 인증
권한 관리: 역할 기반 접근 제어(RBAC)를 통해 사용자 권한 관리
5. 테스트 계획
단위 테스트: 각 모듈별 기능 테스트
통합 테스트: 모듈 간의 상호작용 테스트
성능 테스트: 다중 사용자 및 테넌트 환경에서의 성능 테스트

 

vedi-project/
├── anchor/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   │   └── com/
│   │   │   │       └── vedi/
│   │   │   │           └── anchor/
│   │   │   │               ├── controller/
│   │   │   │               ├── service/
│   │   │   │               ├── repository/
│   │   │   │               └── model/
│   │   │   ├── resources/
│   │   │   │   ├── mapper/
│   │   │   │   └── application.properties
│   │   ├── test/
│   │       └── java/
│   │           └── com/
│   │               └── vedi/
│   │                   └── anchor/
│   ├── pom.xml
├── edi/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   │   └── com/
│   │   │   │       └── vedi/
│   │   │   │           └── edi/
│   │   │   │               ├── controller/
│   │   │   │               ├── service/
│   │   │   │               ├── repository/
│   │   │   │               └── model/
│   │   │   ├── resources/
│   │   │   │   ├── mapper/
│   │   │   │   └── application.properties
│   │   ├── test/
│   │       └── java/
│   │           └── com/
│   │               └── vedi/
│   │                   └── edi/
│   ├── pom.xml
├── wms/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   │   └── com/
│   │   │   │       └── vedi/
│   │   │   │           └── wms/
│   │   │   │               ├── controller/
│   │   │   │               ├── service/
│   │   │   │               ├── repository/
│   │   │   │               └── model/
│   │   │   ├── resources/
│   │   │   │   ├── mapper/
│   │   │   │   └── application.properties
│   │   ├── test/
│   │       └── java/
│   │           └── com/
│   │               └── vedi/
│   │                   └── wms/
│   ├── pom.xml
├── crm/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   │   └── com/
│   │   │   │       └── vedi/
│   │   │   │           └── crm/
│   │   │   │               ├── controller/
│   │   │   │               ├── service/
│   │   │   │               ├── repository/
│   │   │   │               └── model/
│   │   │   ├── resources/
│   │   │   │   ├── mapper/
│   │   │   │   └── application.properties
│   │   ├── test/
│   │       └── java/
│   │           └── com/
│   │               └── vedi/
│   │                   └── crm/
│   ├── pom.xml
├── bop/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   │   └── com/
│   │   │   │       └── vedi/
│   │   │   │           └── bop/
│   │   │   │               ├── controller/
│   │   │   │               ├── service/
│   │   │   │               ├── repository/
│   │   │   │               └── model/
│   │   │   ├── resources/
│   │   │   │   ├── mapper/
│   │   │   │   └── application.properties
│   │   ├── test/
│   │       └── java/
│   │           └── com/
│   │               └── vedi/
│   │                   └── bop/
│   ├── pom.xml
├── sign/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   │   └── com/
│   │   │   │       └── vedi/
│   │   │   │           └── sign/
│   │   │   │               ├── controller/
│   │   │   │               ├── service/
│   │   │   │               ├── repository/
│   │   │   │               └── model/
│   │   │   ├── resources/
│   │   │   │   ├── mapper/
│   │   │   │   └── application.properties
│   │   ├── test/
│   │       └── java/
│   │           └── com/
│   │               └── vedi/
│   │                   └── sign/
│   ├── pom.xml
├── shared/
│   ├── components/
│   ├── core/
│   ├── lib/
│   ├── mid/
│   ├── ui/
├── pom.xml

 

React 17, TypeScript, java, Spring, ibatis, mariadb 환경에서 vedi 프로젝트에 하위 시스템으로 anchor, edi, wms, crm, bop, sign 시스템이 있습니다.
vedi 프로젝트에 shared 폴더는 하위 시스템에서 모두 사용 할 수 있습니다.
shared 폴더는 components, core, lib, mid, ui 폴더로 구성되어 있습니다.
anchor 시스템은 Tenant 관리, Tenant 사용자 관리, 시스템 관리, Tenant 사용자 권한 관리, 시스템 메뉴 관리, 시스템 코드 관리, 시스템 메시지 관리를 합니다.
edi는 Electronic Data Interchange 시스템으로 대시보드, 문서관리, 문서 전송, 설정 및 관리 화면이 있습니다.
wms는 창고관리 시스템으로 대시보드 화면, 입고 예정 목록 조회, 도착 처리, 입고 처리, 출고 관리화면, 재고 관리 화면, 창고위치 관리, 품목 설정 관리가 있습니다.
crm은 고객관리, 영업기회관리, 견적관리, 주문관리 있습니다.
bop는 salesforce 주문 수신, EDI 주문 수신, 자사 제품 및 관련 정보 매핑하여 자사 ERP 전송하는 시스템 입니다.
sign는 electronic approval system으로 결제선 관리, 결재 요청, 결재 승인를 처리 합니다.
프로젝트 개발 소스를 생성해 주세요.

 

React 17, TypeScript 기반으로 vedi 프로젝트 생성하려고 합니다.
vedi는 Electronic Data Interchange 시스템 입니다.
대시보드, 문서관리, 문서 전송, 설정 및 관리 화면 예제를 생성해주세요.

 

반응형