Go to file
Johngreen 15265ebfc9 Refactor deploy workflow to use SSH for k8s operations
Replaces direct kubectl usage with SSH-based remote execution for Kubernetes deployment steps. Updates secrets and environment variables to use SSH key and connection info, and modifies manifest transfer and deployment verification to operate over SSH. This improves security and flexibility for remote Kubernetes server management.
2025-12-22 17:39:26 +09:00
.cursor/rules restapi 도 경로보기 가능, 출발지목적지 동시에 같은거 못하게, 자물쇠걸면 컬럼 수정 못함 tablelistcomponent 2025-12-08 18:13:36 +09:00
.gitea/workflows Refactor deploy workflow to use SSH for k8s operations 2025-12-22 17:39:26 +09:00
.settings 최초커밋 2025-08-21 09:41:46 +09:00
WebContent 최초커밋 2025-08-21 09:41:46 +09:00
backend 화면관리 중간 커밋 2025-09-01 11:48:12 +09:00
backend-node 복사에러 수정 2025-12-22 09:53:22 +09:00
db 연쇄관계 관리 2025-12-10 13:53:44 +09:00
docker Merge remote-tracking branch 'upstream/main' 2025-12-15 17:41:00 +09:00
docs Add Kubernetes deployment and CI/CD workflow 2025-12-22 15:33:24 +09:00
frontend Merge origin/main into ksh - resolve conflicts 2025-12-19 16:38:12 +09:00
hooks 웹타입 컴포넌트 분리작업 2025-09-09 14:29:04 +09:00
k8s Add Kubernetes deployment and CI/CD workflow 2025-12-22 15:33:24 +09:00
lib/registry 웹타입 컴포넌트 분리작업 2025-09-09 14:29:04 +09:00
scripts Merge remote-tracking branch 'upstream/main' 2025-11-06 17:22:17 +09:00
src chore: Prisma 관련 파일 완전 제거 🧹 2025-10-01 14:54:44 +09:00
tomcat-conf 최초커밋 2025-08-21 09:41:46 +09:00
.classpath 최초커밋 2025-08-21 09:41:46 +09:00
.cursorrules revert: e27845a 커밋의 변경사항 되돌림 - 화면 레이아웃 문제 수정 2025-11-10 14:21:29 +09:00
.env.development 최초커밋 2025-08-21 09:41:46 +09:00
.gitignore Add Kubernetes deployment and CI/CD workflow 2025-12-22 15:33:24 +09:00
.project 최초커밋 2025-08-21 09:41:46 +09:00
DEPLOYMENT_GUIDE_KPSLP.md feat: 원본 최신 소스 반영 + NCP Kubernetes 배포 설정 추가 2025-11-10 14:20:10 +09:00
DETAILED_FILE_MIGRATION_PLAN.md feat: Complete Phase 1 of Prisma to Raw Query migration 2025-09-30 15:29:20 +09:00
DOCKER.md docs: 모든 문서에서 Prisma 참조 제거 및 Raw Query로 업데이트 2025-10-01 15:03:08 +09:00
Dockerfile feat: 원본 최신 소스 반영 + NCP Kubernetes 배포 설정 추가 2025-11-10 14:20:10 +09:00
Entity_조인_기능_개발계획서.md 조인기능 최적화 2025-09-16 16:53:03 +09:00
Jenkinsfile feat: 원본 최신 소스 반영 + NCP Kubernetes 배포 설정 추가 2025-11-10 14:20:10 +09:00
PLAN.MD 외부 REST API 커넥션 POST/Body + DB 토큰 테스트 지원 2025-11-27 16:42:48 +09:00
PLAN_RENEWAL.md 컴포넌트 통합 계획 2025-12-19 09:27:11 +09:00
PROJECT_STATUS_2025_11_20.md N-Level 계층 구조 및 공간 종속성 시스템 구현 2025-11-25 13:55:00 +09:00
README-WINDOWS.md 최초커밋 2025-08-21 09:41:46 +09:00
README.md 프로젝트 이름을 PLM 솔루션에서 WACE 솔루션으로 수정 2025-09-02 09:37:51 +09:00
SETTING_GUIDE.txt 최초커밋 2025-08-21 09:41:46 +09:00
UI_개선사항_문서.md 메일관리 콘솔로그 주석처리 세이브 2025-10-02 18:22:58 +09:00
control.html Fix codeCache import issues - add named export 2025-09-18 19:13:12 +09:00
cookies.txt 저장버튼 제어기능 (insert) 2025-09-18 10:05:50 +09:00
docker-compose.backend.win.yml rest api 액션노드 기능변경 2025-10-13 12:00:41 +09:00
docker-compose.frontend.win.yml Resolve merge conflicts: Use main branch versions for conflicting files 2025-09-22 18:16:24 +09:00
docker-compose.win.yml Resolve merge conflicts: Use main branch versions for conflicting files 2025-09-22 18:16:24 +09:00
env.development.example 최초커밋 2025-08-21 09:41:46 +09:00
env.production.example 최초커밋 2025-08-21 09:41:46 +09:00
fix-selects.sh 웹타입 컴포넌트 분리작업 2025-09-09 14:29:04 +09:00
kubernetes-setup-guide.md Add Kubernetes deployment and CI/CD workflow 2025-12-22 15:33:24 +09:00
package-lock.json ui개선 2025-10-17 16:21:08 +09:00
package.json ui개선 2025-10-17 16:21:08 +09:00
replace-selects.js 웹타입 컴포넌트 분리작업 2025-09-09 14:29:04 +09:00
run-windows.bat Resolve merge conflicts: Use main branch versions for conflicting files 2025-09-22 18:16:24 +09:00
start-all-separated.bat Resolve merge conflicts: Use main branch versions for conflicting files 2025-09-22 18:16:24 +09:00
start-windows-simple.bat 윈도우용 실행파일 커밋 2025-09-22 17:46:23 +09:00
test-backend-build.bat 윈도우용 실행파일 커밋 2025-09-22 17:46:23 +09:00
test-dataflow-features.js 저장버튼 제어기능 (insert) 2025-09-18 10:05:50 +09:00
test-upload.txt 문서뷰어기능구현 2025-09-29 13:29:03 +09:00
test_contract_list.html 최초커밋 2025-08-21 09:41:46 +09:00
values_logistream.yaml feat: 원본 최신 소스 반영 + NCP Kubernetes 배포 설정 추가 2025-11-10 14:20:10 +09:00
노드_플로우_데이터소스_설정_가이드.md 제어관리 개선판 2025-10-24 14:11:12 +09:00
데이터소스_일관성_개선_완료.md 제어관리 개선판 2025-10-24 14:11:12 +09:00
동적_테이블_접근_시스템_개선_완료.md 오류 수정 2025-11-26 14:44:49 +09:00
레포트드자이너.html 리포트관리 설계 2025-10-01 11:10:54 +09:00
메일관리_기능_리스트.md 메일관리 시스템 구현 완료 2025-10-01 17:01:31 +09:00
메일관리_시스템_구현_계획서.md 메일 관리 작업 저장용 커밋 2025-10-01 16:15:53 +09:00
메일시스템_검증_보고서.md 메일관리 시스템 구현 완료 2025-10-01 17:01:31 +09:00
버튼_제어관리_기능_통합_계획서.md 저장버튼 제어기능 (insert) 2025-09-18 10:05:50 +09:00
버튼_제어관리_기능_통합_잠재적_문제점_분석.md 저장버튼 제어기능 (insert) 2025-09-18 10:05:50 +09:00
버튼_제어관리_성능_최적화_전략.md 저장버튼 제어기능 (insert) 2025-09-18 10:05:50 +09:00
선택항목_상세입력_완전_자동화_가이드.md 상세입력 컴포넌트 테이블 선택 기능 추가 2025-11-17 15:25:08 +09:00
선택항목_상세입력_컴포넌트_완성_가이드.md 선택항목 상게입력 컴포넌트 구현 2025-11-17 12:23:45 +09:00
수주등록_화면_개발_계획서.md feat: 수주등록 모달 및 범용 컴포넌트 개발 2025-11-14 14:43:53 +09:00
스크롤_문제_해결_가이드.md 제어관리 개선판 2025-10-24 14:11:12 +09:00
시연_시나리오.md 탭기능 중간커밋 2025-11-24 17:24:47 +09:00
외부_데이터베이스_제어관리_시스템_계획서.md feature connection 2025-09-22 17:28:31 +09:00
외부호출_데이터_매핑_시스템_설계서.md 데이터 매핑 설정 중간커밋 2025-09-26 17:52:11 +09:00
제어관리_데이터소스_확장_가이드.md 제어관리 개선판 2025-10-24 14:11:12 +09:00
제어관리_시스템_개선_계획서.md 에러 수정 2025-09-29 10:23:21 +09:00
제어관리_외부커넥션_통합_개선_계획서.md 제어관리 외부 커넥션 설정기능 2025-09-24 18:23:57 +09:00
제어관리_외부커넥션_통합_기능_가이드.md 제어관리 외부 커넥션 설정기능 2025-09-24 18:23:57 +09:00
제어관리_외부호출_REST_API_구현_계획서.md 외부호출 기능(rest API) 2025-09-26 17:11:18 +09:00
제어관리_트랜잭션_및_조건부실행_개선방안.md 타입 관리 개선 및 화면 비율조정 중간커밋 2025-09-19 18:43:55 +09:00
채번규칙_테이블기반_자동감지_구현_완료.md feat: 채번 규칙 테이블 기반 자동 필터링 구현 2025-11-07 14:27:07 +09:00
채번규칙_테이블기반_필터링_구현_계획서.md feat: 채번 규칙 테이블 기반 자동 필터링 구현 2025-11-07 14:27:07 +09:00
채번규칙_테이블기반_필터링_구현_완료_보고서.md feat: 채번 규칙 테이블 기반 자동 필터링 구현 2025-11-07 14:27:07 +09:00
카테고리_관리_컴포넌트_구현_계획서.md 카테고리 기능 구현 2025-11-05 15:23:57 +09:00
카테고리_메뉴기반_전환_계획서.md 분할패널 테이블 리스트 구현 2025-11-11 11:37:26 +09:00
카테고리_시스템_구현_계획서.md 카테고리 2025-11-05 15:24:05 +09:00
카테고리_시스템_재구현_계획서.md 카테고리 기능 구현 2025-11-05 15:23:57 +09:00
카테고리_시스템_재구현_완료_보고서.md 카테고리 기능 구현 2025-11-05 15:23:57 +09:00
카테고리_시스템_최종_완료_보고서.md 카테고리 기능 구현 2025-11-05 15:23:57 +09:00
카테고리_채번_메뉴스코프_전환_통합_계획서.md feat: 채번규칙 메뉴 스코프 전환 완료 2025-11-11 14:32:00 +09:00
카테고리_컴포넌트_DB_호환성_분석.md 카테고리 기능 구현 2025-11-05 15:23:57 +09:00
카테고리_컴포넌트_구현_완료.md 카테고리 기능 구현 2025-11-05 15:23:57 +09:00
카테고리_타입_구현_완료.md 카테고리 기능 구현 2025-11-05 15:23:57 +09:00
코드_채번_규칙_컴포넌트_구현_계획서.md feat(screen-designer): 그리드 컬럼 시스템 개선 및 컴포넌트 너비 렌더링 수정 2025-11-04 16:17:19 +09:00
테이블_그룹핑_기능_구현_계획서.md feat: TableListComponent에 그룹핑 기능 구현 2025-11-03 14:08:26 +09:00
테이블_동적_생성_기능_개발_계획서.md 테이블 및 컬럼 생성기능 추가 2025-09-22 17:00:59 +09:00
테이블_변경_이력_로그_시스템_구현_계획서.md 테이블 변경 이력 로그 시스템 구현 2025-10-21 15:08:41 +09:00
테이블_복제_기능_구현_계획서.md feat: 테이블 복제 기능 구현 (최고 관리자 전용) 2025-10-31 17:58:49 +09:00
테이블_타입_관리_개선_계획서.md 테이블 추가기능 수정사항 2025-09-23 10:40:21 +09:00
테이블_타입_관리_개선_사용_가이드.md 테이블 추가기능 수정사항 2025-09-23 10:40:21 +09:00
플로우_위젯_컬럼_표시_설정_구현_완료.md 플로우 각 단계별 컬럼 설정기능 2025-10-27 09:49:13 +09:00
화면_임베딩_및_데이터_전달_시스템_구현_계획서.md 에러 수정 2025-12-18 16:35:55 +09:00
화면_임베딩_시스템_Phase1-4_구현_완료.md 에러 수정 2025-12-18 16:35:55 +09:00
화면_임베딩_시스템_충돌_분석_보고서.md 에러 수정 2025-12-18 16:35:55 +09:00
화면관리_검증_시스템_사용_가이드.md 타입 관리 개선 및 화면 비율조정 중간커밋 2025-09-19 18:43:55 +09:00
화면관리_및_테이블관리_개선사항_목록.md feat: 수정 모달 자동 닫기 및 테이블 새로고침 기능 구현 2025-11-03 09:58:04 +09:00
화면관리_타입_문제_분석_및_해결방안.md 메뉴생성시 화면할당기능 구현 2025-09-19 15:22:25 +09:00

README.md

WACE 솔루션 (PLM)

프로젝트 개요

본 프로젝트는 제품 수명 주기 관리(PLM - Product Lifecycle Management) 솔루션입니다. 기존 JSP 기반 프론트엔드를 Next.js 14로 완전 전환하여 현대적이고 사용자 친화적인 웹 애플리케이션을 제공합니다.

🚀 주요 특징

  • 모던 프론트엔드: Next.js 14 + TypeScript + shadcn/ui
  • 반응형 디자인: 데스크톱, 태블릿, 모바일 모든 기기 지원
  • 안정적인 백엔드: 검증된 Java Spring + MyBatis 기반 API
  • Docker 기반 배포: 개발/운영 환경 일관성 보장
  • 타입 안전성: TypeScript로 런타임 에러 방지

🛠️ 기술 스택

Frontend (Next.js 14)

  • 프레임워크: Next.js 14 (App Router)
  • 언어: TypeScript
  • UI 라이브러리: shadcn/ui + Radix UI
  • 스타일링: Tailwind CSS
  • 폼 처리: React Hook Form + Zod
  • 상태 관리: React Context + Hooks
  • 아이콘: Lucide React

Backend (기존 유지)

  • 언어: Java 7
  • 프레임워크: Spring Framework 3.2.4
  • ORM: MyBatis 3.2.3
  • 데이터베이스: PostgreSQL
  • WAS: Apache Tomcat 7.0

개발 도구

  • 컨테이너화: Docker + Docker Compose
  • 코드 품질: ESLint + TypeScript
  • 패키지 관리: npm

📁 프로젝트 구조

new_ph/
├── frontend/                 # Next.js 프론트엔드
│   ├── app/                 # Next.js App Router
│   │   ├── (auth)/         # 인증 관련 페이지
│   │   │   └── login/      # 로그인 페이지
│   │   ├── dashboard/      # 대시보드
│   │   └── layout.tsx      # 루트 레이아웃
│   ├── components/         # 재사용 컴포넌트
│   │   ├── ui/            # shadcn/ui 기본 컴포넌트
│   │   └── layout/        # 레이아웃 컴포넌트
│   ├── lib/               # 유틸리티 함수
│   └── types/             # TypeScript 타입 정의
├── src/                     # Java 백엔드 소스
│   └── com/pms/            # 패키지 구조
├── WebContent/             # 레거시 JSP (사용 중단)
├── db/                     # 데이터베이스 스크립트
└── docker-compose.win.yml  # Windows 환경 설정

🚀 빠른 시작

1. 필수 요구사항

  • Docker Desktop (Windows/Mac) 또는 Docker + Docker Compose (Linux)
  • Git (소스 코드 관리)

2. Windows 환경에서 실행

자동 실행 (권장)

# 프로젝트 시작
./run-windows.bat

# 서비스 상태 확인
./status-windows.bat

# 서비스 중지
./stop-windows.bat

수동 실행

# Docker 컨테이너 실행
docker-compose -f docker-compose.win.yml up --build -d

# 로그 확인
docker-compose -f docker-compose.win.yml logs -f

3. 서비스 접속

서비스 URL 설명
프론트엔드 http://localhost:9771 Next.js 기반 사용자 인터페이스
백엔드 API http://localhost:9090 Spring 기반 REST API

주의: 기존 JSP 화면(localhost:9090)은 더 이상 사용하지 않습니다. 모든 사용자는 **Next.js 프론트엔드(localhost:9771)**를 사용해주세요.

🎨 UI/UX 디자인 시스템

shadcn/ui 컴포넌트 라이브러리

  • 일관된 디자인: 전체 애플리케이션에서 통일된 UI 컴포넌트
  • 접근성: WCAG 가이드라인 준수
  • 커스터마이징: Tailwind CSS로 쉬운 스타일 변경
  • 다크모드: 자동 테마 전환 지원

공통 스타일 가이드

// 색상 팔레트
const colors = {
  primary: "hsl(222.2 47.4% 11.2%)", // 네이비 블루
  secondary: "hsl(210 40% 96%)", // 연한 그레이
  accent: "hsl(210 40% 98%)", // 거의 화이트
  destructive: "hsl(0 62.8% 30.6%)", // 레드
  muted: "hsl(210 40% 96%)", // 음소거된 그레이
};

// 타이포그래피
const typography = {
  fontFamily: "Inter, system-ui, sans-serif",
  fontSize: {
    xs: "0.75rem", // 12px
    sm: "0.875rem", // 14px
    base: "1rem", // 16px
    lg: "1.125rem", // 18px
    xl: "1.25rem", // 20px
  },
};

🔧 개발 가이드

컴포넌트 개발 원칙

1. 재사용 가능한 컴포넌트

// components/ui/button.tsx
interface ButtonProps {
  variant?: "default" | "destructive" | "outline" | "secondary" | "ghost";
  size?: "default" | "sm" | "lg" | "icon";
  children: React.ReactNode;
}

export function Button({
  variant = "default",
  size = "default",
  children,
  ...props
}: ButtonProps) {
  return (
    <button className={cn(buttonVariants({ variant, size }))} {...props}>
      {children}
    </button>
  );
}

2. 폼 컴포넌트

// React Hook Form + Zod 사용
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import * as z from "zod";

const loginSchema = z.object({
  userId: z.string().min(1, "사용자 ID를 입력해주세요"),
  password: z.string().min(1, "비밀번호를 입력해주세요"),
});

export function LoginForm() {
  const form = useForm<z.infer<typeof loginSchema>>({
    resolver: zodResolver(loginSchema),
  });

  // 폼 처리 로직
}

3. API 연동

// lib/api.ts
class ApiClient {
  private baseURL = process.env.NEXT_PUBLIC_API_URL || "http://localhost:9090";

  async login(credentials: LoginCredentials): Promise<LoginResponse> {
    const response = await fetch(`${this.baseURL}/api/auth/login`, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify(credentials),
      credentials: "include", // 세션 쿠키 포함
    });

    if (!response.ok) throw new Error("로그인 실패");
    return response.json();
  }
}

스타일링 가이드

1. Tailwind CSS 클래스

// 일반적인 레이아웃
<div className="flex items-center justify-center min-h-screen bg-slate-50">
  <div className="w-full max-w-md space-y-6">
    {/* 컨텐츠 */}
  </div>
</div>

// 카드 컴포넌트
<div className="bg-white rounded-lg shadow-lg border border-slate-200 p-6">
  {/* 카드 내용 */}
</div>

// 반응형 그리드
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
  {/* 그리드 아이템 */}
</div>

2. CSS 변수 활용

/* globals.css */
:root {
  --background: 0 0% 100%;
  --foreground: 222.2 84% 4.9%;
  --primary: 222.2 47.4% 11.2%;
  --primary-foreground: 210 40% 98%;
  --secondary: 210 40% 96%;
  --secondary-foreground: 222.2 84% 4.9%;
}

🔐 인증 시스템

세션 기반 인증 (기존 백엔드 호환)

// 로그인 프로세스
1. 사용자가 로그인  제출
2. Next.js에서 백엔드 API 호출
3. 백엔드에서 세션 생성 (기존 로직 사용)
4. 프론트엔드에서 인증 상태 관리
5. 보호된 라우트 접근 제어

라우트 보호

// middleware.ts
export function middleware(request: NextRequest) {
  const { pathname } = request.nextUrl;

  // 공개 페이지
  const publicPaths = ["/login", "/"];
  if (publicPaths.includes(pathname)) return NextResponse.next();

  // 인증 확인
  const sessionCookie = request.cookies.get("JSESSIONID");
  if (!sessionCookie) {
    return NextResponse.redirect(new URL("/login", request.url));
  }

  return NextResponse.next();
}

📊 주요 기능

1. 대시보드

  • 프로젝트 현황: 진행 중인 프로젝트 상태 모니터링
  • 작업 요약: 개인별 할당된 작업 목록
  • 알림 센터: 중요한 업데이트 및 알림
  • 차트 및 그래프: 프로젝트 진척도 시각화

2. 프로젝트 관리

  • 프로젝트 생성/수정: 새 프로젝트 등록 및 정보 관리
  • 팀 구성: 프로젝트 멤버 할당 및 역할 관리
  • 마일스톤: 주요 일정 및 목표 설정
  • 진행 상황 추적: 실시간 프로젝트 진척도 모니터링

3. 제품 관리

  • 제품 카탈로그: 제품 정보 및 사양 관리
  • BOM 관리: Bill of Materials 구성 및 버전 관리
  • 설계 변경: ECO/ECR 프로세스 관리
  • 문서 관리: 기술 문서 및 도면 버전 제어

4. 사용자 관리

  • 사용자 계정: 계정 생성/수정/비활성화
  • 권한 관리: 역할 기반 접근 제어 (RBAC)
  • 부서 관리: 조직 구조 및 부서별 권한 설정
  • 감사 로그: 사용자 활동 추적 및 보안 모니터링

🚢 배포 가이드

개발 환경

# 프론트엔드 개발 서버
cd frontend && npm run dev

# 백엔드 (Docker)
docker-compose -f docker-compose.win.yml up -d plm-app

운영 환경

# 전체 서비스 배포
docker-compose -f docker-compose.prod.yml up -d

# 무중단 배포 (blue-green)
./deploy-production.sh

환경 변수 설정

# .env.local (Next.js)
NEXT_PUBLIC_API_URL=http://localhost:9090
NEXT_PUBLIC_APP_ENV=development

# docker-compose.win.yml (백엔드)
DB_URL=jdbc:postgresql://db:5432/plm
DB_USERNAME=postgres
DB_PASSWORD=secure_password

🔧 문제 해결

자주 발생하는 문제

1. 로그인 화면이 업데이트되지 않는 경우

# 브라우저 캐시 클리어 후 다음 확인:
# - Next.js 서버 재시작
npm run dev

# - 올바른 URL 접속 확인
# 올바름: http://localhost:9771/login
# 잘못됨: http://localhost:9090/login.jsp

2. Docker 컨테이너 실행 오류

# 포트 충돌 확인
netstat -ano | findstr :9771
netstat -ano | findstr :9090

# Docker 시스템 정리
docker system prune -a
docker-compose -f docker-compose.win.yml down --volumes

3. API 연결 오류

# 백엔드 컨테이너 로그 확인
docker-compose -f docker-compose.win.yml logs plm-app

# 네트워크 연결 확인
curl http://localhost:9090/api/health

개발자 도구

브라우저 개발자 도구

  • Console: JavaScript 오류 확인
  • Network: API 요청/응답 모니터링
  • Application: 세션 쿠키 확인

로그 확인

# Next.js 개발 서버 로그
npm run dev

# 백엔드 애플리케이션 로그
docker-compose -f docker-compose.win.yml logs -f plm-app

# 데이터베이스 로그
docker-compose -f docker-compose.win.yml logs -f db

📈 성능 최적화

Next.js 최적화

  • 이미지 최적화: Next.js Image 컴포넌트 사용
  • 코드 분할: 동적 임포트로 번들 크기 최소화
  • 서버 사이드 렌더링: 초기 로딩 속도 개선
  • 정적 생성: 변경되지 않는 페이지 사전 생성

백엔드 최적화

  • 데이터베이스 인덱스: 자주 조회되는 필드 인덱싱
  • 쿼리 최적화: N+1 문제 해결
  • 캐싱: Redis를 통한 세션 및 데이터 캐싱
  • 리소스 최적화: JVM 메모리 튜닝

🤝 기여 가이드

코드 컨벤션

  • TypeScript: 엄격한 타입 정의 사용
  • ESLint: 코드 품질 유지.
  • Prettier: 일관된 코드 포맷팅
  • 커밋 메시지: Conventional Commits 규칙 준수

브랜치 전략

main      # 운영 환경 배포 브랜치
develop   # 개발 환경 통합 브랜치
feature/* # 기능 개발 브랜치
hotfix/*  # 긴급 수정 브랜치

Pull Request 프로세스

  1. 기능 브랜치에서 개발
  2. 테스트 코드 작성
  3. PR 생성 및 코드 리뷰
  4. 승인 후 develop 브랜치에 병합

📞 지원 및 문의

  • 개발팀 문의: 내부 Slack 채널 #plm-support
  • 버그 리포트: GitHub Issues
  • 기능 요청: Product Owner와 협의
  • 긴급 상황: 개발팀 직접 연락

📝 변경 이력

v2.0.0 (2025년 1월)

  • JSP → Next.js 14 완전 전환
  • shadcn/ui 디자인 시스템 도입
  • TypeScript 타입 안전성 강화
  • 반응형 디자인 적용
  • WACE 브랜딩 적용

v1.x (레거시)

  • JSP + jQuery 기반 (사용 중단)
  • 데스크톱 전용 UI
  • 제한적인 확장성

🎉 현재 버전 2.0.0에서는 완전히 새로운 사용자 경험을 제공합니다!