Commit Graph

17 Commits

Author SHA1 Message Date
kjs 4c20d93c87 feat: Phase 3.7 LayoutService Raw Query 전환 완료
10개 Prisma 호출을 모두 Raw Query로 전환
- 레이아웃 목록 조회 (getLayouts - 복잡한 OR 조건, Promise.all)
- 레이아웃 단건 조회 (getLayoutById - OR 조건)
- 레이아웃 생성 (createLayout - JSON 필드)
- 레이아웃 수정 (updateLayout - 동적 UPDATE, 10개 필드)
- 레이아웃 삭제 (deleteLayout - Soft Delete)
- 레이아웃 복제 (duplicateLayout - 기존 함수 재사용)
- 카테고리별 통계 (getLayoutCountsByCategory - GROUP BY)
- 코드 자동 생성 (generateLayoutCode - LIKE 검색)

주요 기술적 해결:
- 복잡한 OR 조건 처리 (company_code OR is_public)
- 동적 WHERE 조건 생성 (ILIKE 다중 검색)
- 동적 UPDATE 쿼리 (10개 필드 조건부 업데이트)
- JSON 필드 처리 (default_size, layout_config, zones_config)
- GROUP BY 통계 쿼리 (카테고리별 개수)
- LIKE 검색 (코드 생성 시 패턴 검색)
- Promise.all 병렬 쿼리 (목록 + 개수 동시 조회)
- safeJSONStringify 헬퍼 함수 활용

TypeScript 컴파일 성공
Prisma import 완전 제거

Phase 3 진행률: 97/162 (59.9%)
전체 진행률: 348/444 (78.4%)
2025-10-01 11:25:08 +09:00
kjs 45ec38790b feat: Phase 3.6 CollectionService 전환 완료 및 Phase 3.7-3.9 계획서 작성
CollectionService 전환 완료:
- 11개 Prisma 호출을 모두 Raw Query로 전환
- 수집 설정 CRUD (getCollectionConfigs, getCollectionConfigById, createCollectionConfig, updateCollectionConfig, deleteCollectionConfig)
- 수집 작업 관리 (executeCollection, getCollectionJobs, getCollectionHistory)
- 동적 WHERE 조건 생성 (ILIKE 검색, OR 조건)
- 동적 UPDATE 쿼리 (변경된 필드만 업데이트)
- JSON 필드 처리 (collection_options)
- LEFT JOIN (작업 목록 조회 시 설정 정보 포함)
- 비동기 작업 처리 (setTimeout 내 query 사용)
- 필드명 수정 (schedule_expression → schedule_cron)
- TypeScript 컴파일 성공
- Prisma import 완전 제거

Phase 3 남은 서비스 계획서 작성:
- PHASE3.7_LAYOUT_SERVICE_MIGRATION.md (10개 호출)
  - 레이아웃 표준 관리 (CRUD, 통계, JSON 필드)
- PHASE3.8_DB_TYPE_CATEGORY_SERVICE_MIGRATION.md (10개 호출)
  - DB 타입 카테고리 관리 (CRUD, 통계, UPSERT)
- PHASE3.9_TEMPLATE_STANDARD_SERVICE_MIGRATION.md (6개 호출)
  - 템플릿 표준 관리 (복합 키, JSON 필드, DISTINCT)

Phase 3 진행률: 87/162 (53.7%)
전체 진행률: 338/444 (76.1%)
2025-10-01 11:20:21 +09:00
kjs 7fb2ce582c feat: Phase 3.5 DataflowDiagramService Raw Query 전환 완료
12개 Prisma 호출을 모두 Raw Query로 전환
- 관계도 목록 조회 (getDataflowDiagrams - 페이지네이션, ILIKE 검색)
- 관계도 단건 조회 (getDataflowDiagramById - 동적 WHERE)
- 관계도 생성 (createDataflowDiagram - JSON 필드)
- 관계도 수정 (updateDataflowDiagram - 동적 UPDATE, JSON 필드)
- 관계도 삭제 (deleteDataflowDiagram)
- 관계도 복제 (copyDataflowDiagram - LIKE 검색, 번호 증가)
- 버튼 제어용 조회 (getAllRelationshipsForButtonControl)

주요 기술적 해결:
- 동적 WHERE 조건 생성 (company_code 필터링)
- 동적 UPDATE 쿼리 (변경된 필드만 업데이트)
- JSON 필드 처리 (relationships, node_positions, control, category, plan)
- LIKE 검색 (복제 시 이름 패턴 검색)
- 복잡한 복제 로직 (자동 번호 증가)

TypeScript 컴파일 성공
Prisma import 완전 제거

Phase 3 진행률: 76/162 (46.9%)
전체 진행률: 327/444 (73.6%)
2025-10-01 11:12:41 +09:00
kjs 34295d6afa docs: Phase 3.4 CommonCodeService 완료 문서 업데이트 및 코드 포맷 정리
- PRISMA_TO_RAW_QUERY_MIGRATION_PLAN.md 업데이트
  - CommonCodeService (10개) 완료 표시
  - Phase 3 진행률 반영
- commonCodeService.ts 코드 포맷 정리

Phase 3 진행률: 64/162 (39.5%)
전체 진행률: 315/444 (70.9%)
2025-10-01 10:58:11 +09:00
kjs a5653eee3e docs: Phase 3.3 ComponentStandardService 완료 문서 업데이트 및 코드 포맷 정리
- PRISMA_TO_RAW_QUERY_MIGRATION_PLAN.md 업데이트
  - ComponentStandardService (15개) 완료 표시
  - Phase 3 진행률 반영
- componentStandardService.ts 코드 포맷 정리

Phase 3 진행률: 54/162 (33.3%)
전체 진행률: 305/444 (68.7%)
2025-10-01 10:51:09 +09:00
kjs c37b74a8bb docs: Phase 3.2 BatchService 완료 문서 업데이트 및 코드 포맷 정리
- PRISMA_TO_RAW_QUERY_MIGRATION_PLAN.md 업데이트
  - BatchService (14개) 완료 표시
  - Phase 3 진행률 반영
- batchService.ts 코드 포맷 정리

Phase 3 진행률: 39/162 (24.1%)
전체 진행률: 290/444 (65.3%)
2025-10-01 10:45:32 +09:00
kjs 143f851190 docs: Phase 3.1 MultiLangService 완료 문서 업데이트 및 코드 포맷 정리
- PRISMA_TO_RAW_QUERY_MIGRATION_PLAN.md 업데이트
  - MultiLangService (25개) 완료 표시
  - Phase 3 진행률 반영
- multilangService.ts 코드 포맷 정리

Phase 3 진행률: 25/162 (15.4%)
전체 진행률: 276/444 (62.2%)
2025-10-01 10:27:15 +09:00
kjs 399afc62d8 docs: Phase 2.4 DynamicFormService 전환 완료 확인 및 문서 업데이트
Phase 2.4: DynamicFormService (13개) - 이미 완료되어 있었음
-  13개 Prisma 호출이 이미 Raw Query로 전환되어 있었음
-  query() / queryOne() 함수 사용 확인
-  동적 UPSERT, 부분 UPDATE 구현 완료
-  PostgreSQL 타입 자동 변환 로직 유지
-  Prisma import 완전 제거 확인

전체 성과:
- Phase 2 진행률: 165/162 (101.9%) - **Phase 2 완료!** 🎉
- 전체 진행률: 251/444 (56.5%)
- Phase 2.3 ~ 2.6 모두 완료 확인
2025-10-01 10:18:31 +09:00
kjs e5180b7659 feat: Phase 2.5 & 2.6 완료 - ExternalDbConnectionService + DataflowControlService Raw Query 전환
Phase 2.5: ExternalDbConnectionService (15개)
- 15개 Prisma 호출을 모두 Raw Query로 전환
- 동적 WHERE 조건 생성 및 동적 UPDATE 쿼리 구현
- 비밀번호 암호화/복호화 로직 유지
- ILIKE 검색 지원

Phase 2.6: DataflowControlService (6개)
- 6개 Prisma 호출을 모두 Raw Query로 전환
- 파라미터 바인딩 수정 (MySQL ? → PostgreSQL $1, $2)
- 복잡한 비즈니스 로직 및 다중 커넥션 지원 유지
- 조건부 실행, 에러 처리 로직 보존

전체 성과:
- TypeScript 컴파일 성공 (linter 에러 0개)
- Prisma import 완전 제거
- Phase 2 진행률: 152/162 (93.8%)
- 전체 진행률: 238/444 (53.6%)
2025-10-01 10:14:16 +09:00
kjs 5f3f869135 feat: Phase 2.5 ExternalDbConnectionService Raw Query 전환 완료
- 15개 Prisma 호출을 모두 Raw Query로 전환
- 동적 WHERE 조건 생성 구현 (ILIKE 검색 지원)
- 동적 UPDATE 쿼리 구현 (변경된 필드만 업데이트)
- 비밀번호 암호화/복호화 로직 유지
- TypeScript 컴파일 성공 (linter 에러 0개)
- Prisma import 완전 제거

전환된 주요 함수:
- getConnections() - 외부 DB 연결 목록 조회
- createConnection() - 새 연결 생성 + 중복 확인
- updateConnection() - 연결 정보 수정
- deleteConnection() - 연결 삭제
- testConnectionById() - 연결 테스트
- getTables() - 테이블 목록 조회

Phase 2 진행률: 131/162 (80.9%)
전체 진행률: 217/444 (48.9%)
2025-10-01 10:11:19 +09:00
kjs 57f1d8274e phase2.4 전환 완료 2025-10-01 10:03:41 +09:00
kjs 3c06d35374 phase 2.3 테이블 및 컬럼 동적생성기능 변경 2025-09-30 18:28:54 +09:00
kjs f9f31c7bd3 phase 2 변환계획 작성 2025-09-30 17:40:21 +09:00
kjs 824e5f4827 feat: Complete Phase 1.5 - AuthService Raw Query migration
Phase 1.5 완료: 인증 서비스 Raw Query 전환 및 테스트 완료

 AuthService 전환 완료 (5개 Prisma 호출 제거):
- loginPwdCheck(): Raw Query로 사용자 비밀번호 조회
- insertLoginAccessLog(): Raw Query로 로그인 로그 기록
- getUserInfo(): Raw Query로 사용자/권한/회사 정보 조회
  - authority_sub_user ↔ authority_master JOIN (master_objid ↔ objid)
  - 3개 쿼리로 분리 (사용자, 권한, 회사)
- processLogin(): 전체 로그인 플로우 통합
- processLogout(): 로그아웃 로그 기록

🧪 테스트 완료:
- 단위 테스트: 30개 테스트 모두 통과 
  - 로그인 검증 (6개)
  - 사용자 정보 조회 (5개)
  - 로그인 로그 기록 (4개)
  - 전체 로그인 프로세스 (5개)
  - 로그아웃 (2개)
  - 토큰 검증 (3개)
  - Raw Query 전환 검증 (3개)
  - 성능 테스트 (2개)
- 통합 테스트: 작성 완료 (auth.integration.test.ts)
  - 로그인 → 토큰 발급 → 인증 → 로그아웃 플로우

🔧 주요 변경사항:
- Prisma import 제거 → Raw Query (query from db.ts)
- authority 테이블 JOIN 수정 (auth_code → master_objid/objid)
- 파라미터 바인딩으로 SQL Injection 방지
- 타입 안전성 유지 (TypeScript Generic 사용)

📊 성능:
- 로그인 프로세스: < 1초
- 사용자 정보 조회: < 500ms
- 모든 테스트 실행 시간: 2.016초

🎯 다음 단계:
- Phase 2: 핵심 서비스 전환 (ScreenManagement, TableManagement 등)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 15:59:32 +09:00
kjs e837ccc1d1 docs: Add Phase 1.5 for Auth and Admin service migration
Phase 2 진행 전 인증/관리자 시스템 우선 전환 계획 수립

🔐 Phase 1.5 추가:
- AuthService 우선 전환 (5개 Prisma 호출)
- AdminService 확인 (이미 Raw Query 사용)
- AdminController 전환 (28개 Prisma 호출)

📋 변경 사항:
- Phase 1.5를 Phase 2보다 우선 실행하도록 계획 변경
- 인증/관리자 시스템을 먼저 안정화한 후 핵심 서비스 전환
- 로그인 → 인증 → API 호출 전체 플로우 검증

📚 새 문서:
- PHASE1.5_AUTH_MIGRATION_PLAN.md (상세 전환 계획)
  - AuthService 전환 방법 및 코드 예시
  - 단위 테스트 및 통합 테스트 계획
  - 완료 체크리스트

🎯 목표:
- 전체 시스템의 안정적인 인증 기반 구축
- Phase 2 이후 모든 서비스가 안전하게 인증 시스템 사용

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 15:40:18 +09:00
kjs ed78ef184d feat: Complete Phase 1 of Prisma to Raw Query migration
Phase 1 완료: Raw Query 기반 데이터베이스 아키텍처 구축

 구현 완료 내용:
- DatabaseManager 클래스 구현 (연결 풀, 트랜잭션 관리)
- QueryBuilder 유틸리티 (동적 쿼리 생성)
- 타입 정의 및 검증 로직 (database.ts, databaseValidator.ts)
- 단위 테스트 작성 및 통과

🔧 전환 완료 서비스:
- externalCallConfigService.ts (Raw Query 전환)
- multiConnectionQueryService.ts (Raw Query 전환)

📚 문서:
- PHASE1_USAGE_GUIDE.md (사용 가이드)
- DETAILED_FILE_MIGRATION_PLAN.md (상세 계획)
- PRISMA_TO_RAW_QUERY_MIGRATION_PLAN.md (Phase 1 완료 표시)

🧪 테스트:
- database.test.ts (핵심 기능 테스트)
- 모든 테스트 통과 확인

이제 Phase 2 (핵심 서비스 전환)로 진행 가능

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 15:29:20 +09:00
kjs f336e3b31f query 변환 계획 2025-09-29 17:19:31 +09:00