feat: 관리자 페이지 레이아웃 통일 및 JSX 구문 수정

- admin/screenMng, dataflow 페이지에 tableMng 레퍼런스 레이아웃 적용
- admin/standards 페이지 JSX 괄호 문제 수정
- 전체 관리자 페이지 UI 일관성 향상
- bg-gray-50 배경, container 구조, 통일된 제목 스타일 적용
This commit is contained in:
leeheejin
2025-09-24 18:07:36 +09:00
parent 3c839a56bf
commit 1a60177fe4
62 changed files with 1173 additions and 677 deletions

View File

@@ -56,6 +56,9 @@ export function useEntityJoinOptimization(columnMeta: Record<string, ColumnMetaI
const totalRequests = useRef(0);
const cacheHits = useRef(0);
const batchLoadCount = useRef(0);
// 변환된 값 캐시 (중복 변환 방지)
const convertedCache = useRef(new Map<string, string>());
// 공통 코드 카테고리 추출 (메모이제이션)
const codeCategories = useMemo(() => {
@@ -175,29 +178,41 @@ export function useEntityJoinOptimization(columnMeta: Record<string, ColumnMetaI
const startTime = Date.now();
totalRequests.current += 1;
// 🎯 디버깅: 캐시 상태 로깅
console.log(`🔍 optimizedConvertCode 호출: categoryCode="${categoryCode}", codeValue="${codeValue}"`);
// 🎯 중복 호출 방지: 이미 변환된 값인지 확인
const cacheKey = `${categoryCode}:${codeValue}`;
if (convertedCache.current.has(cacheKey)) {
return convertedCache.current.get(cacheKey)!;
}
// 🎯 디버깅: 캐시 상태 로깅 (빈도 줄이기)
if (totalRequests.current % 10 === 1) { // 10번마다 한 번만 로깅
console.log(`🔍 optimizedConvertCode 호출: categoryCode="${categoryCode}", codeValue="${codeValue}"`);
}
// 캐시에서 동기적으로 조회 시도
const syncResult = codeCache.getCodeSync(categoryCode);
console.log(`🔍 getCodeSync("${categoryCode}") 결과:`, syncResult);
if (totalRequests.current % 10 === 1) {
console.log(`🔍 getCodeSync("${categoryCode}") 결과:`, syncResult);
}
// 🎯 캐시 내용 상세 로깅 (키값들 확인)
if (syncResult) {
// 🎯 캐시 내용 상세 로깅 (키값들 확인) - 빈도 줄이기
if (syncResult && totalRequests.current % 10 === 1) {
console.log(`🔍 캐시 키값들:`, Object.keys(syncResult));
console.log(`🔍 캐시 전체 데이터:`, JSON.stringify(syncResult, null, 2));
}
if (syncResult && Array.isArray(syncResult)) {
cacheHits.current += 1;
console.log(`🔍 배열에서 코드 검색: codeValue="${codeValue}"`);
console.log(
`🔍 캐시 배열 내용:`,
syncResult.map((item) => ({
code_value: item.code_value,
code_name: item.code_name,
})),
);
if (totalRequests.current % 10 === 1) {
console.log(`🔍 배열에서 코드 검색: codeValue="${codeValue}"`);
console.log(
`🔍 캐시 배열 내용:`,
syncResult.map((item) => ({
code_value: item.code_value,
code_name: item.code_name,
})),
);
}
// 배열에서 해당 code_value를 가진 항목 찾기
const foundCode = syncResult.find(
@@ -205,7 +220,13 @@ export function useEntityJoinOptimization(columnMeta: Record<string, ColumnMetaI
);
const result = foundCode ? foundCode.code_name : codeValue;
console.log(`🔍 최종 결과: "${codeValue}" → "${result}"`, { foundCode });
// 변환 결과를 캐시에 저장
convertedCache.current.set(cacheKey, result);
if (totalRequests.current % 10 === 1) {
console.log(`🔍 최종 결과: "${codeValue}" → "${result}"`, { foundCode });
}
// 응답 시간 추적 (캐시 히트)
requestTimes.current.push(Date.now() - startTime);