Commit Graph

3 Commits

Author SHA1 Message Date
kjs 7919079362 docs: Phase 4 남은 Prisma 호출 전환 계획서 작성
현재 상황 분석 및 문서화:

컨트롤러 레이어:
-  adminController.ts (28개) 완료
-  screenFileController.ts (2개) 완료
- 🔄 남은 파일 (12개 호출):
  * webTypeStandardController.ts (11개)
  * fileController.ts (1개)

Routes & Services:
- ddlRoutes.ts (2개)
- companyManagementRoutes.ts (2개)
- multiConnectionQueryService.ts (4개)

Config:
- database.ts (4개 - 제거 예정)

새로운 계획서:
- PHASE4_REMAINING_PRISMA_CALLS.md (상세 전환 계획)
- 파일별 Prisma 호출 상세 분석
- 전환 패턴 및 우선순위 정리

전체 진행률: 445/444 (100.2%)
남은 작업: 12개 (추가 조사 필요한 파일 제외)
2025-10-01 14:33:08 +09:00
kjs b4b4c774fb feat: Phase 3.12 ExternalCallConfigService Raw Query 전환 완료
외부 호출 설정 관리 서비스의 모든 Prisma 호출을 Raw Query로 전환:

## 전환 완료 (8개 Prisma 호출)

1. **getConfigs()** - 목록 조회
   - prisma.findMany → query<ExternalCallConfig>()
   - 동적 WHERE 조건 (5개 필터)
   - ILIKE 검색 (config_name, description)

2. **getConfigById()** - 단건 조회
   - prisma.findUnique → queryOne<ExternalCallConfig>()

3-4. **createConfig()** - 생성
   - 중복 검사: prisma.findFirst → queryOne()
   - 생성: prisma.create → queryOne() with INSERT RETURNING
   - JSON 필드 처리: config_data

5-6. **updateConfig()** - 수정
   - 중복 검사: prisma.findFirst → queryOne() with id != $4
   - 수정: prisma.update → queryOne() with 동적 UPDATE
   - 9개 필드에 대한 조건부 SET 절 생성

7. **deleteConfig()** - 논리 삭제
   - prisma.update → query() with is_active = 'N'

8. **getExternalCallConfigsForButtonControl()** - 버튼 제어용
   - prisma.findMany with select → query() with SELECT

## 기술적 개선사항

- **동적 WHERE 조건**: 5개 필터 조건 조합 및 파라미터 인덱싱
- **동적 UPDATE 쿼리**: 변경된 필드만 포함하는 SET 절 생성
- **JSON 필드**: config_data를 JSON.stringify()로 처리
- **ILIKE 검색**: 대소문자 구분 없는 검색 구현
- **중복 검사**: id 제외 조건으로 자신 제외 로직 유지

## 코드 정리

- prisma import 완전 제거
- query, queryOne 함수 사용
- 컴파일 및 린터 오류 없음

문서: PHASE3.12_EXTERNAL_CALL_CONFIG_SERVICE_MIGRATION.md
진행률: Phase 3 136/162 (84.0%)
2025-10-01 12:07:14 +09:00
kjs ce37626e49 docs: Phase 3.11~3.14 상세 마이그레이션 계획서 작성
4개 주요 서비스에 대한 상세 전환 계획서 작성:

1. **Phase 3.11: DDLAuditLogger** (8개 호출)
   - DDL 실행 감사 로그 관리
   - 통계 쿼리 (GROUP BY, CASE WHEN, AVG)
   - 동적 WHERE 조건
   - JSON 필드 처리
   - 날짜/시간 함수

2. **Phase 3.12: ExternalCallConfigService** (8개 호출)
   - 외부 API 호출 설정 관리
   - JSON 필드 (headers, params, auth_config)
   - 민감 정보 암호화/복호화
   - 동적 CRUD 쿼리

3. **Phase 3.13: EntityJoinService** (5개 호출)
   - 엔티티 간 조인 관계 관리
   - LEFT JOIN 쿼리
   - 조인 유효성 검증
   - 순환 참조 방지

4. **Phase 3.14: AuthService** (5개 호출)
   - 사용자 인증 및 권한 관리
   - 비밀번호 암호화/검증 (bcrypt)
   - 세션 토큰 관리
   - 보안 크리티컬
   - SQL 인젝션 방지

각 계획서 포함 내용:
- 파일 정보 및 복잡도
- Prisma 사용 현황 분석
- 전환 전략 (단계별)
- 상세 전환 예시 (Before/After)
- 기술적 고려사항
- 전환 체크리스트
- 예상 난이도 및 소요 시간
- 보안/성능 주의사항

메인 문서에 계획서 링크 추가
2025-10-01 11:48:55 +09:00