- 회원가입 페이지 및 폼 컴포넌트 추가
- 로그인 페이지와 일관된 디자인
- 아이디, 비밀번호, 이름, 차량번호, 휴대폰번호 입력 필드
- 비밀번호 확인 필드 추가
- 유효성 검사 기능 구현
- 차량번호: 한국 차량번호 형식 검증 (12가3456, 123가4567, 서울12가3456 등)
- 휴대폰번호: 하이픈 포함 형식 검증 (010-1234-5678)
- 비밀번호: 최소 6자 이상, 확인 일치 검증
- 사용자ID: 최소 4자 이상
- 이름: 최소 2자 이상
- UI/UX 개선
- 각 필드별 실시간 유효성 검사 및 에러 메시지 표시
- 비밀번호 표시/숨김 토글 버튼
- 자동 설정된 필드에 안내 문구 표시
- 로그인 페이지로 돌아가기 버튼 추가
- 로그인 페이지에 회원가입 링크 추가
- 타입 및 훅 추가
- RegisterFormData, RegisterResponse 타입 정의
- useRegister 훅으로 비즈니스 로직 분리
- auth API mock 함수 (백엔드 연동 준비)
- 사용자 경험 고려
- 입력 필드별 placeholder 예시 제공
- 도움말 텍스트로 입력 형식 안내
- 로딩 상태 표시
- 드래그 드롭으로 배치되는 인풋 필드 기본 높이 30px로 변경
- 날짜 입력 컴포넌트의 모든 외부 div에 h-full 추가
- 모든 input 요소에 min-h-full 추가하여 부모 높이를 제대로 따르도록 수정
- daterange, year 타입도 동일하게 적용
- 원본 ERP-node 프로젝트의 최신 코드 반영
- NCP Kubernetes 배포를 위한 인프라 파일 추가
- Jenkinsfile: Kaniko 기반 CI/CD 파이프라인
- Dockerfile: 멀티스테이지 빌드 (백엔드 + 프론트엔드)
- values_logistream.yaml: Helm 차트 values 파일
- DEPLOYMENT_GUIDE_KPSLP.md: 배포 가이드 문서
- 불필요한 마이그레이션 계획 문서 36개 정리
- 데이터 조회 API에 회사별 자동 필터링 기능 추가
- GET /api/data/:tableName에 company_code 필터 자동 적용
- GET /api/data/join에 우측 테이블 회사별 필터링 추가
- 최고 관리자(company_code = '*')는 전체 데이터 조회 가능
- 분할 패널 레이아웃 우측 추가 시 조인 컬럼 자동 입력
- 좌측에서 선택한 항목의 조인 키 값을 우측 추가 모달에 자동 설정
- 자동 설정된 필드는 읽기 전용으로 표시 (disabled + 안내 문구)
- 사용자는 나머지 필드만 입력하면 됨
- 데이터 서비스 개선
- getJoinedData 함수에 companyCode 파라미터 추가
- checkColumnExists 함수를 public으로 변경하여 재사용성 향상
- 조인 쿼리에 DISTINCT 추가로 중복 데이터 방지
- 복합키 테이블의 레코드 삭제 지원
- 레코드 생성 시 멀티테넌시 자동 처리
- company_code와 company_name 자동 추가
- 테이블 컬럼 존재 여부 체크 후 자동 설정
- 분할 패널 설정 UI 개선
- 좌측 패널 표시 컬럼 선택 UI 추가
- 추가 폼에 표시할 컬럼 선택 기능 추가
- Primary Key 정보 자동 조회 및 표시
주요 변경사항:
- Dialog/DialogContent를 ResizableDialog/ResizableDialogContent로 변경
- DialogTitle을 ResizableDialogTitle로 변경
- 내부 컨텐츠 컨테이너를 유연한 크기(w-full h-full)로 변경
- minWidth/minHeight 사용으로 최소 크기 보장
참고:
- 컴포넌트 레이아웃이 화면관리에서 설정된 대로 정확히 렌더링됨
- 레이아웃 자체의 문제는 화면관리에서 재설계 필요
파일 변경:
- frontend/components/screen/SaveModal.tsx
주요 변경사항:
- 드래그앤드롭 컬럼의 라벨 숨김 및 placeholder로 라벨명 표시
- 기본 높이 30px로 변경
- 5개 시스템 컬럼(id, created_date, updated_date, writer, company_code) 숨김
- AI-개발자 협업 작업 수칙 문서 작성 및 .cursorrules에 통합
파일 변경:
- frontend/components/screen/ScreenDesigner.tsx
* getDefaultHeight(): 기본 높이를 30px로 변경
* handleDrop(): labelDisplay false, placeholder 추가
- frontend/components/screen/panels/TablesPanel.tsx
* hiddenColumns Set으로 시스템 컬럼 필터링
- .cursor/rules/ai-developer-collaboration-rules.mdc (신규)
* 확인 우선, 한 번에 하나, 철저한 마무리 원칙
* 데이터베이스 검증, 코드 수정, 테스트, 커뮤니케이션 규칙
- .cursorrules
* 필수 확인 규칙 섹션 추가
* 모든 작업 시작/완료 시 협업 규칙 확인 강제화
- 채번 규칙 scope_type을 table로 단순화
- 화면의 테이블명을 자동으로 감지하여 채번 규칙 필터링
- TextInputConfigPanel에 screenTableName prop 추가
- getAvailableNumberingRulesForScreen API로 테이블 기반 조회
- NumberingRuleDesigner에서 자동으로 테이블명 설정
- webTypeConfigConverter 유틸리티 추가 (기존 화면 호환성)
- AutoGenerationConfig 타입 개선 (enabled, options.numberingRuleId)
- 채번 규칙 선택 UI에서 ID 제거, 설명 추가
- 불필요한 console.log 제거
Backend:
- numberingRuleService: 테이블 기반 필터링 로직 구현
- numberingRuleController: available-for-screen 엔드포인트 수정
Frontend:
- TextInputConfigPanel: 테이블명 기반 채번 규칙 로드
- NumberingRuleDesigner: 적용 범위 UI 제거, 테이블명 자동 설정
- ScreenDesigner: webTypeConfig → autoGeneration 변환 로직 통합
- DetailSettingsPanel: autoGeneration 속성 매핑 개선