feat: Embedded Redis 적용 — Docker 없이 Redis 자동 구동

- EmbeddedRedisConfig: 외부 Redis 없으면 Embedded Redis 자동 시작
- RedisCacheAutoConfig: Redis 연결 실패 시 인메모리 캐시 fallback
- install.bat/sh: Docker/Redis 필수 의존성 제거, 인메모리 전환 안내
- application yml: Redis 설정을 선택 사항으로 변경

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
이 Commit은 다음에 포함되어 있습니다:
2026-03-27 14:37:57 +09:00
부모 c44b1273b1
커밋 6b248c6a69
8개의 변경된 파일131개의 추가작업 그리고 44개의 파일을 삭제

파일 보기

@@ -136,7 +136,7 @@ echo "3. Docker 확인 (선택)"
if command -v docker &>/dev/null; then
ok "$(docker --version | head -1)"
else
warn "Docker 미설치 — DB/Redis를 직접 설치해야 합니다"
info "Docker 미설치 — DB를 직접 설치해야 합니다"
fi
# ---------- 4. Redis 확인 ----------
@@ -145,19 +145,8 @@ REDIS_HOST="${SPRING_DATA_REDIS_HOST:-localhost}"
REDIS_PORT="${SPRING_DATA_REDIS_PORT:-6379}"
if command -v redis-cli &>/dev/null && redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ping 2>/dev/null | grep -q PONG; then
ok "Redis 응답 OK ($REDIS_HOST:$REDIS_PORT)"
elif command -v docker &>/dev/null; then
if docker ps --format '{{.Names}}' 2>/dev/null | grep -q redis; then
ok "Redis Docker 컨테이너 실행 중"
else
info "Redis 미실행 — Docker로 자동 시작..."
if docker run -d --name redis -p "${REDIS_PORT}:6379" redis:7-alpine &>/dev/null; then
ok "Redis 컨테이너 시작 완료"
else
warn "Redis 자동 시작 실패 — 수동으로 Redis를 실행하세요"
fi
fi
else
warn "Redis 연결 불가 ($REDIS_HOST:$REDIS_PORT) — Redis를 설치/실행하세요"
info "Redis 미실행 — 인메모리 캐시로 자동 전환됩니다 (운영 환경에서는 Redis 권장)"
fi
# ---------- 5. MySQL 연결 확인 ----------
@@ -213,8 +202,8 @@ DB_NAME=mos
DB_USER=jsh
DB_PASS=jsh@
# --- Redis ---
SPRING_DATA_REDIS_HOST=localhost
# --- Redis (선택 — 미설정 시 인메모리 캐시 자동 사용) ---
# SPRING_DATA_REDIS_HOST=localhost
# --- CORS ---
CORS_ORIGINS=https://app.company.com