Refactor code structure for improved readability and maintainability

This commit is contained in:
DDD1542
2026-03-31 09:34:54 +09:00
parent c465141f53
commit 87498b9940
141 changed files with 6275 additions and 1939 deletions
+1 -1
View File
@@ -96,7 +96,7 @@ echo [완료] 모든 서비스가 시작되었습니다!
echo ============================================
echo.
echo [DATABASE] PostgreSQL: http://39.117.244.52:11132
echo [BACKEND] Node.js API: http://localhost:8080/api
echo [BACKEND] Spring Boot API: http://localhost:8081/api
echo [FRONTEND] Next.js: http://localhost:9771
echo.
echo [서비스 상태 확인]
+1 -1
View File
@@ -151,7 +151,7 @@ Write-Host "[완료] 모든 서비스가 시작되었습니다!" -ForegroundColo
Write-Host "============================================" -ForegroundColor Cyan
Write-Host ""
Write-Host "[DATABASE] PostgreSQL: http://39.117.244.52:11132" -ForegroundColor White
Write-Host "[BACKEND] Node.js API: http://localhost:8080/api" -ForegroundColor White
Write-Host "[BACKEND] Spring Boot API: http://localhost:8081/api" -ForegroundColor White
Write-Host "[FRONTEND] Next.js: http://localhost:9771" -ForegroundColor White
Write-Host ""
Write-Host "[서비스 상태 확인]" -ForegroundColor Yellow
+22 -23
View File
@@ -7,10 +7,10 @@ START_TIME_FORMATTED=$(date '+%Y-%m-%d %H:%M:%S')
echo "============================================"
echo "WACE 솔루션 - 전체 서비스 시작 (병렬 최적화)"
echo "============================================"
echo "🕐 시작 시간: $START_TIME_FORMATTED"
echo "시작 시간: $START_TIME_FORMATTED"
echo ""
echo "🚀 백엔드와 프론트엔드를 병렬로 빌드 및 시작합니다..."
echo "백엔드(Spring Boot)와 프론트엔드를 병렬로 빌드 및 시작합니다..."
echo ""
# 기존 컨테이너 강제 삭제 (이름 충돌 방지)
@@ -29,29 +29,29 @@ echo "1. 병렬 빌드 시작 (백엔드 + 프론트엔드)"
echo "============================================"
# 백엔드 빌드 (백그라운드)
echo "🔧 백엔드 빌드 시작..."
echo "백엔드(Spring Boot) 빌드 시작..."
(
docker-compose -f docker/dev/docker-compose.backend.mac.yml build
echo "백엔드 빌드 완료"
echo "백엔드 빌드 완료"
) &
BACKEND_PID=$!
# 프론트엔드 빌드 (백그라운드)
echo "🔧 프론트엔드 빌드 시작..."
# 프론트엔드 빌드 (백그라운드)
echo "프론트엔드 빌드 시작..."
(
docker-compose -f docker/dev/docker-compose.frontend.mac.yml build
echo "프론트엔드 빌드 완료"
echo "프론트엔드 빌드 완료"
) &
FRONTEND_PID=$!
# 두 빌드가 모두 완료될 때까지 대기
echo "병렬 빌드 진행 중..."
echo "병렬 빌드 진행 중..."
wait $BACKEND_PID
wait $FRONTEND_PID
PARALLEL_END=$(date +%s)
PARALLEL_DURATION=$((PARALLEL_END - PARALLEL_START))
echo "병렬 빌드 완료 (${PARALLEL_DURATION}초 소요)"
echo "병렬 빌드 완료 (${PARALLEL_DURATION}초 소요)"
# 서비스 시작
echo ""
@@ -66,12 +66,12 @@ docker-compose -f docker/dev/docker-compose.backend.mac.yml down -v 2>/dev/null
docker-compose -f docker/dev/docker-compose.frontend.mac.yml down -v 2>/dev/null
# 백엔드 시작 (백그라운드)
echo "🚀 백엔드 서비스 시작..."
echo "백엔드(Spring Boot) 서비스 시작..."
docker-compose -f docker/dev/docker-compose.backend.mac.yml up -d &
BACKEND_START_PID=$!
# 프론트엔드 시작 (백그라운드)
echo "🚀 프론트엔드 서비스 시작..."
echo "프론트엔드 서비스 시작..."
docker-compose -f docker/dev/docker-compose.frontend.mac.yml up -d &
FRONTEND_START_PID=$!
@@ -80,21 +80,21 @@ wait $BACKEND_START_PID
wait $FRONTEND_START_PID
echo ""
echo "서비스 안정화 대기 중... (8초)"
sleep 8
echo "서비스 안정화 대기 중... (15초)"
sleep 15
SERVICE_END=$(date +%s)
SERVICE_DURATION=$((SERVICE_END - SERVICE_START))
echo "서비스 시작 완료 (${SERVICE_DURATION}초 소요)"
echo "서비스 시작 완료 (${SERVICE_DURATION}초 소요)"
echo ""
echo "============================================"
echo "🎉 모든 서비스가 시작되었습니다!"
echo "모든 서비스가 시작되었습니다!"
echo "============================================"
echo ""
echo "[DATABASE] PostgreSQL: http://39.117.244.52:11132"
echo "[BACKEND] Node.js API: http://localhost:8080/api"
echo "[FRONTEND] Next.js: http://localhost:9771"
echo "[BACKEND] Spring Boot API: http://localhost:8081/api"
echo "[FRONTEND] Next.js: http://localhost:9771"
echo ""
echo "서비스 상태 확인:"
echo " 백엔드: docker-compose -f docker/dev/docker-compose.backend.mac.yml ps"
@@ -107,7 +107,6 @@ echo ""
echo "서비스 중지:"
echo " 백엔드: docker-compose -f docker/dev/docker-compose.backend.mac.yml down"
echo " 프론트엔드: docker-compose -f docker/dev/docker-compose.frontend.mac.yml down"
echo " 전체: ./stop-all.sh"
echo ""
echo "============================================"
@@ -118,12 +117,12 @@ DURATION=$((END_TIME - START_TIME))
MINUTES=$((DURATION / 60))
SECONDS=$((DURATION % 60))
echo "🕐 종료 시간: $END_TIME_FORMATTED"
echo "⏱️ 총 소요 시간: ${MINUTES}${SECONDS}"
echo "종료 시간: $END_TIME_FORMATTED"
echo "총 소요 시간: ${MINUTES}${SECONDS}"
echo ""
echo "📊 단계별 소요 시간:"
echo " 병렬 빌드: ${PARALLEL_DURATION}"
echo " 서비스 시작: ${SERVICE_DURATION}"
echo "단계별 소요 시간:"
echo " 병렬 빌드: ${PARALLEL_DURATION}"
echo " 서비스 시작: ${SERVICE_DURATION}"
echo "============================================"
read -p "계속하려면 아무 키나 누르세요..."
+2 -2
View File
@@ -1,7 +1,7 @@
#!/bin/bash
echo "============================================"
echo "WACE 솔루션 - 백엔드 (Node.js) 시작"
echo "WACE 솔루션 - 백엔드 (Spring Boot) 시작"
echo "============================================"
echo ""
@@ -30,7 +30,7 @@ echo "백엔드 서비스가 시작되었습니다!"
echo "============================================"
echo ""
echo "[DATABASE] PostgreSQL: http://39.117.244.52:11132"
echo "[BACKEND] Node.js API: http://localhost:8080/api"
echo "[BACKEND] Spring Boot API: http://localhost:8081/api"
echo ""
echo "상태 확인: docker-compose -f docker/dev/docker-compose.backend.mac.yml ps"
echo "로그 확인: docker-compose -f docker/dev/docker-compose.backend.mac.yml logs -f"
+10 -10
View File
@@ -1,7 +1,7 @@
#!/bin/bash
echo "============================================"
echo "WACE 솔루션 - npm 직접 실행 (Docker 없이)"
echo "WACE 솔루션 - 직접 실행 (Docker 없이)"
echo "============================================"
echo ""
@@ -14,20 +14,20 @@ FRONTEND_LOG="$LOG_DIR/frontend.log"
# 기존 프로세스 정리
echo "[1/4] 기존 프로세스 정리 중..."
lsof -ti:8080 | xargs kill -9 2>/dev/null
lsof -ti:8081 | xargs kill -9 2>/dev/null
lsof -ti:9771 | xargs kill -9 2>/dev/null
echo " 완료"
echo ""
# 백엔드 npm install + 실행
echo "[2/4] 백엔드 의존성 설치 중..."
cd "$PROJECT_ROOT/backend-node"
npm install --silent
# 백엔드 빌드 + 실행 (Spring Boot)
echo "[2/4] 백엔드(Spring Boot) 빌드 중..."
cd "$PROJECT_ROOT/backend-spring"
./gradlew bootJar --no-daemon -q
echo " 완료"
echo ""
echo "[3/4] 백엔드 서버 시작 중 (포트 8080)..."
npm run dev > "$BACKEND_LOG" 2>&1 &
echo "[3/4] 백엔드 서버 시작 중 (포트 8081)..."
java -jar build/libs/*.jar > "$BACKEND_LOG" 2>&1 &
BACKEND_PID=$!
echo " PID: $BACKEND_PID"
echo ""
@@ -41,13 +41,13 @@ FRONTEND_PID=$!
echo " PID: $FRONTEND_PID"
echo ""
sleep 3
sleep 5
echo "============================================"
echo "모든 서비스가 시작되었습니다!"
echo "============================================"
echo ""
echo " [BACKEND] http://localhost:8080/api"
echo " [BACKEND] http://localhost:8081/api"
echo " [FRONTEND] http://localhost:9771"
echo ""
echo " 백엔드 PID: $BACKEND_PID"
+1 -1
View File
@@ -49,7 +49,7 @@ docker-compose -f docker/prod/docker-compose.backend.prod.yml logs --tail=15
echo ""
echo "7. 헬스체크 수행 중..."
for i in {1..10}; do
if curl -s http://localhost:8080/health >/dev/null 2>&1; then
if curl -s http://localhost:8081/health >/dev/null 2>&1; then
echo " ✅ 백엔드 서비스 정상 복구!"
echo ""
echo "🎉 수정 완료! 백엔드가 정상적으로 실행 중입니다."
+30 -39
View File
@@ -5,14 +5,14 @@ echo "WACE 솔루션 - 전체 서비스 시작 (분리형) - Linux"
echo "============================================"
echo ""
echo "🔄 최신 코드 가져오기..."
echo "최신 코드 가져오기..."
echo ""
git pull origin main || {
echo "Git pull 실패. 계속 진행합니다..."
echo "Git pull 실패. 계속 진행합니다..."
}
echo ""
echo "🚀 백엔드와 프론트엔드를 순차적으로 시작합니다..."
echo "백엔드(Spring Boot)와 프론트엔드를 순차적으로 시작합니다..."
echo ""
# 시스템 정보 출력
@@ -24,8 +24,8 @@ echo ""
# Docker 및 Docker Compose 버전 확인
echo "Docker 환경 확인:"
docker --version 2>/dev/null || echo " Docker가 설치되지 않았습니다."
docker-compose --version 2>/dev/null || echo " Docker Compose가 설치되지 않았습니다."
docker --version 2>/dev/null || echo " Docker가 설치되지 않았습니다."
docker-compose --version 2>/dev/null || echo " Docker Compose가 설치되지 않았습니다."
echo ""
# 기존 컨테이너 정리
@@ -33,24 +33,21 @@ echo "============================================"
echo "0. 기존 서비스 정리 중..."
echo "============================================"
# 기존 컨테이너 중지 및 제거 (무시하고 계속)
docker-compose -f docker/prod/docker-compose.backend.prod.yml down -v 2>/dev/null || true
docker-compose -f docker/prod/docker-compose.frontend.prod.yml down -v 2>/dev/null || true
# 사용하지 않는 이미지 정리
echo "사용하지 않는 Docker 이미지 정리 중..."
docker image prune -f 2>/dev/null || true
# 백엔드 먼저 시작
echo ""
echo "============================================"
echo "1. 백엔드 서비스 시작 중..."
echo "1. 백엔드(Spring Boot) 서비스 시작 중..."
echo "============================================"
# 네트워크 생성 (존재하지 않는 경우)
docker network create pms-network 2>/dev/null || echo "네트워크가 이미 존재합니다."
# 백엔드 빌드 및 시작
echo "백엔드 이미지 빌드 중..."
docker-compose -f docker/prod/docker-compose.backend.prod.yml build --no-cache
@@ -58,8 +55,8 @@ echo "백엔드 서비스 시작 중..."
docker-compose -f docker/prod/docker-compose.backend.prod.yml up -d
echo ""
echo "백엔드 서비스 안정화 대기 중... (30초)"
sleep 30
echo "백엔드(Spring Boot) 서비스 안정화 대기 중... (45초)"
sleep 45
# 백엔드 상태 확인
echo "백엔드 서비스 상태 확인:"
@@ -78,7 +75,7 @@ echo "프론트엔드 서비스 시작 중..."
docker-compose -f docker/prod/docker-compose.frontend.prod.yml up -d
echo ""
echo "프론트엔드 서비스 안정화 대기 중... (15초)"
echo "프론트엔드 서비스 안정화 대기 중... (15초)"
sleep 15
# 프론트엔드 상태 확인
@@ -87,15 +84,15 @@ docker-compose -f docker/prod/docker-compose.frontend.prod.yml ps
echo ""
echo "============================================"
echo "🎉 모든 서비스가 시작되었습니다!"
echo "모든 서비스가 시작되었습니다!"
echo "============================================"
echo ""
echo "📊 서비스 접속 정보:"
echo "서비스 접속 정보:"
echo " [DATABASE] PostgreSQL: http://39.117.244.52:11132"
echo " [BACKEND] Spring Boot: http://localhost:8080/api"
echo " [BACKEND] Spring Boot: http://localhost:8081/api"
echo " [FRONTEND] Next.js: http://localhost:5555"
echo ""
echo "🔧 관리 명령어:"
echo "관리 명령어:"
echo " 서비스 상태 확인:"
echo " 백엔드: docker-compose -f docker/prod/docker-compose.backend.prod.yml ps"
echo " 프론트엔드: docker-compose -f docker/prod/docker-compose.frontend.prod.yml ps"
@@ -104,38 +101,32 @@ echo ""
echo " 로그 확인:"
echo " 백엔드: docker-compose -f docker/prod/docker-compose.backend.prod.yml logs -f"
echo " 프론트엔드: docker-compose -f docker/prod/docker-compose.frontend.prod.yml logs -f"
echo " 실시간: docker-compose -f docker/prod/docker-compose.backend.prod.yml -f docker-compose.frontend.linux.yml logs -f"
echo ""
echo " 서비스 중지:"
echo " 백엔드: docker-compose -f docker/prod/docker-compose.backend.prod.yml down"
echo " 프론트엔드: docker-compose -f docker/prod/docker-compose.frontend.prod.yml down"
echo " 전체: ./stop-all-linux.sh"
echo ""
echo " 시스템 모니터링:"
echo " Docker 상태: docker system df"
echo " 리소스 사용: docker stats"
echo ""
echo "============================================"
# 서비스 헬스체크
echo ""
echo "🏥 서비스 헬스체크 수행 중..."
echo "서비스 헬스체크 수행 중..."
echo ""
# 백엔드 헬스체크 (최대 60초 대기)
# 백엔드 헬스체크 (최대 90초 대기 - Spring Boot는 시작이 느림)
echo "백엔드 헬스체크..."
backend_healthy=false
for i in {1..12}; do
if curl -s http://localhost:8080/health >/dev/null 2>&1; then
echo " 백엔드 서비스 정상"
for i in {1..18}; do
if curl -s http://localhost:8081/health >/dev/null 2>&1; then
echo " 백엔드 서비스 정상"
backend_healthy=true
break
else
echo " 백엔드 응답 대기 중... ($i/12)"
if [ $i -eq 6 ]; then
echo " 📋 백엔드 컨테이너 상태 확인:"
echo " 백엔드 응답 대기 중... ($i/18)"
if [ $i -eq 9 ]; then
echo " 백엔드 컨테이너 상태 확인:"
docker-compose -f docker/prod/docker-compose.backend.prod.yml ps
echo " 📋 백엔드 로그 (최근 10줄):"
echo " 백엔드 로그 (최근 10줄):"
docker-compose -f docker/prod/docker-compose.backend.prod.yml logs --tail=10
fi
sleep 5
@@ -143,30 +134,30 @@ for i in {1..12}; do
done
if [ "$backend_healthy" = false ]; then
echo " 백엔드 헬스체크 실패"
echo " 📋 상세 진단 정보:"
echo " 백엔드 헬스체크 실패"
echo " 상세 진단 정보:"
echo " 컨테이너 상태:"
docker-compose -f docker/prod/docker-compose.backend.prod.yml ps
echo " 최근 로그:"
docker-compose -f docker/prod/docker-compose.backend.prod.yml logs --tail=20
echo " 포트 8080 사용 현황:"
netstat -tln 2>/dev/null | grep ':8080' || echo " 포트 8080이 사용되지 않음"
echo " 포트 8081 사용 현황:"
netstat -tln 2>/dev/null | grep ':8081' || echo " 포트 8081이 사용되지 않음"
fi
# 프론트엔드 헬스체크 (최대 30초 대기)
echo "프론트엔드 헬스체크..."
for i in {1..6}; do
if curl -s http://localhost:5555 >/dev/null 2>&1; then
echo " 프론트엔드 서비스 정상"
echo " 프론트엔드 서비스 정상"
break
else
echo " 프론트엔드 응답 대기 중... ($i/6)"
echo " 프론트엔드 응답 대기 중... ($i/6)"
sleep 5
fi
done
echo ""
echo "🎯 시작 완료! 브라우저에서 http://localhost:5555 을 확인하세요."
echo "시작 완료! 브라우저에서 http://localhost:5555 을 확인하세요."
echo ""
read -p "계속하려면 Enter 키를 누르세요..."
read -p "계속하려면 Enter 키를 누르세요..."
+1 -1
View File
@@ -10,7 +10,7 @@ import * as path from "path";
import * as fs from "fs";
const BASE_URL = "http://localhost:9771";
const API_URL = "http://localhost:8080/api";
const API_URL = "http://localhost:8081/api";
const PAGE_URL = `${BASE_URL}/screens/1421`;
const CREDENTIALS = [
{ userId: "SUPER", password: "1234" },
+1 -1
View File
@@ -11,7 +11,7 @@ import * as path from "path";
import * as fs from "fs";
const BASE_URL = "http://localhost:9771";
const API_URL = "http://localhost:8080/api";
const API_URL = "http://localhost:8081/api";
const TABLE_MNG_PATH = "/admin/systemMng/tableMngList";
const USER_ID = "wace";
const PASSWORD = "qlalfqjsgh11";