Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
fbe6da7
chore: statics table create flyway script 추가
dev-ant Dec 26, 2025
daa0f5b
feat: stauction history atics entity 구현
dev-ant Dec 26, 2025
24d67bc
feat: statics 배치 및 조회 api 구현
dev-ant Dec 26, 2025
8521e5f
feat: 기존의 item min price table 제거
dev-ant Dec 26, 2025
66afcda
fix: auction history, statics cron 수정
dev-ant Dec 26, 2025
4f944a1
fix: 기존 item min price 조회 api 제거
dev-ant Dec 26, 2025
275a7c5
feat: statics test 코드 추가
dev-ant Dec 26, 2025
0e5036d
fix: min price cron 설정 docker-compose에서 제거
dev-ant Dec 26, 2025
434baec
feat: statics api security permit all 설정
dev-ant Dec 26, 2025
98f2041
feat: item statics table subcategory, topcategory 추가
dev-ant Dec 28, 2025
5855c46
feat: docker-compose-local root 사용자가 아닌 사용자로 접속하게 설정
dev-ant Dec 29, 2025
b73f671
feat: gitignore application.yml 제거
dev-ant Dec 29, 2025
c5343fb
feat: application.yml commit
dev-ant Dec 29, 2025
85562e8
fix: V13 flyway script 오타 수정
dev-ant Dec 29, 2025
5659972
feat: item statics query에 sub category, top category 추가
dev-ant Dec 29, 2025
95c83dd
Fix: auction history UTC+9 시간대로 변경
dev-ant Jan 7, 2026
7bcc3a1
fix: flyway V13 script charset 설정 제거
dev-ant Jan 7, 2026
b6807c9
fix: 불필요한 로그 파일 삭제
dev-ant Jan 7, 2026
ee71052
fix: auction history statics query date 기준 변경
dev-ant Jan 7, 2026
7ad53f3
Feat: 경매장 거래내역 적재 다음날 새벽 통계 집계 스케쥴러 추가
dev-ant Jan 8, 2026
c724711
fix: docker-compose-dev.yml 오타 수정
dev-ant Jan 13, 2026
2a6452e
fix: 도커 컴포즈에 STATISTICS_PREVIOUS_DAY_CRON 추가
dev-ant Jan 13, 2026
ba0243d
fix: subcategory weekly statics query inner join 조건 수정
dev-ant Jan 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,6 @@ spy.log
# - .env.prod: Production server configuration template
# NOTE: These template files should ONLY contain placeholder values, never real secrets!

### Spring Boot ###
application.yml

### node ###
node_modules/
package-lock.json
Expand Down
3 changes: 0 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,6 @@ dependencies {
implementation("org.flywaydb:flyway-core")
implementation("org.flywaydb:flyway-mysql")

// Docker-Compose
developmentOnly("org.springframework.boot:spring-boot-docker-compose")

// JWT
implementation("io.jsonwebtoken:jjwt-api:${property("jwtTokenVersion")}")
runtimeOnly("io.jsonwebtoken:jjwt-impl:${property("jwtTokenVersion")}")
Expand Down
3 changes: 2 additions & 1 deletion docker-compose-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ services:
- "${SERVER_PORT}:${SERVER_PORT}"
env_file:
- .env

labels:
# Autoheal: unhealthy 상태 시 자동 재시작 활성화
autoheal: "true"
Expand Down Expand Up @@ -38,7 +39,7 @@ services:
NEXON_OPEN_API_KEY: ${NEXON_OPEN_API_KEY}
AUCTION_HISTORY_DELAY_MS: ${AUCTION_HISTORY_DELAY_MS}
AUCTION_HISTORY_CRON: "${AUCTION_HISTORY_CRON}"
AUCTION_HISTORY_MIN_PRICE_CRON: "${AUCTION_HISTORY_MIN_PRICE_CRON}"
STATISTICS_PREVIOUS_DAY_CRON: "${STATISTICS_PREVIOUS_DAY_CRON:-0 0 * * * *}"

# === Docker Configuration ===
DOCKER_USERNAME: ${DOCKER_USERNAME}
Expand Down
31 changes: 17 additions & 14 deletions docker-compose-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ services:
image: open-api-batch-server:local
container_name: spring-app-local
ports:
- "${SERVER_PORT:-8080}:${SERVER_PORT:-8080}"
- "${SERVER_PORT:-8092}:${SERVER_PORT:-8092}"
env_file:
- .env.local # 로컬 환경 변수 파일
labels:
Expand All @@ -23,15 +23,15 @@ services:
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-local}
LANG: C.UTF-8
LC_ALL: C.UTF-8
SERVER_PORT: ${SERVER_PORT:-8080}
SERVER_PORT: ${SERVER_PORT:-8092}

# === Database Configuration ===
# Docker 네트워크 내부 연결 설정 (고정값)
DB_IP: mysql # Docker 서비스 이름
DB_PORT: 3306 # Docker 네트워크 내부 포트
DB_SCHEMA: ${DB_SCHEMA:-devnogi}
DB_USER: root # MySQL 컨테이너의 root 사용자
DB_PASSWORD: ${DB_ROOT_PASSWORD:-password}
DB_PORT: ${DB_PORT:-3318} # Docker 네트워크 내부 포트
DB_SCHEMA: ${DB_SCHEMA}
DB_USER: ${DB_USER} # 애플리케이션 전용 사용자 (local_oab)
DB_PASSWORD: ${DB_PASSWORD}

# === Security Configuration ===
JWT_SECRET_KEY: ${JWT_SECRET_KEY:-local-dev-secret-key-change-in-production}
Expand All @@ -42,7 +42,7 @@ services:
NEXON_OPEN_API_KEY: ${NEXON_OPEN_API_KEY}
AUCTION_HISTORY_DELAY_MS: ${AUCTION_HISTORY_DELAY_MS:-1000}
AUCTION_HISTORY_CRON: "${AUCTION_HISTORY_CRON:-0 0 * * * *}"
Copy link

Copilot AI Jan 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing the environment variable STATISTICS_PREVIOUS_DAY_CRON in the docker-compose configuration. The application.yml uses this property with a default value, but for consistency and explicit configuration in production, it should be added to the environment variables list.

Suggested change
AUCTION_HISTORY_CRON: "${AUCTION_HISTORY_CRON:-0 0 * * * *}"
AUCTION_HISTORY_CRON: "${AUCTION_HISTORY_CRON:-0 0 * * * *}"
STATISTICS_PREVIOUS_DAY_CRON: "${STATISTICS_PREVIOUS_DAY_CRON:-0 0 * * * *}"

Copilot uses AI. Check for mistakes.
AUCTION_HISTORY_MIN_PRICE_CRON: "${AUCTION_HISTORY_MIN_PRICE_CRON:-0 30 * * * *}"
STATISTICS_PREVIOUS_DAY_CRON: "${STATISTICS_PREVIOUS_DAY_CRON:-0 0 * * * *}"

# === JVM Configuration (로컬 개발용 - 메모리 사용량 감소) ===
JAVA_OPTS: >-
Expand Down Expand Up @@ -88,7 +88,7 @@ services:

# Health Check
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:${SERVER_PORT:-8080}/actuator/health"]
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:${SERVER_PORT:-8092}/actuator/health"]
interval: ${HEALTHCHECK_INTERVAL:-30s}
timeout: ${HEALTHCHECK_TIMEOUT:-10s}
retries: ${HEALTHCHECK_RETRIES:-3}
Expand All @@ -108,12 +108,15 @@ services:
env_file:
- .env.local # 환경 변수 파일 로드
ports:
- "${MYSQL_EXTERNAL_PORT:-3306}:3306" # 외부 접속용 포트 (호스트에서 접근 시)
- "${MYSQL_EXTERNAL_PORT:-3318}:${DB_PORT:-3318}" # 외부 접속용 포트 (호스트에서 접근 시)
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-password}
MYSQL_DATABASE: ${DB_SCHEMA:-devnogi}
# MYSQL_USER는 root를 지정할 수 없으므로 제거
# root 사용자는 MYSQL_ROOT_PASSWORD로 자동 생성됨
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MYSQL_DATABASE: ${DB_SCHEMA}
# 애플리케이션 전용 사용자 생성 (보안 best practice)
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
# 참고: MYSQL_USER는 자동으로 MYSQL_DATABASE에 대한 모든 권한을 받습니다
# root 사용자는 MYSQL_ROOT_PASSWORD로 별도 생성됨
LANG: C.UTF_8
TZ: Asia/Seoul
volumes:
Expand All @@ -128,6 +131,7 @@ services:
retries: 5
start_period: 30s
command:
- --port=${DB_PORT:-3318}
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_0900_ai_ci
- --skip-character-set-client-handshake
Expand Down Expand Up @@ -165,4 +169,3 @@ networks:
app-network:
driver: bridge
my-network:
driver: bridge
83 changes: 0 additions & 83 deletions error.log

This file was deleted.

Empty file removed logs/2025-04-11_log_data.log
Empty file.
Empty file removed logs/2025-04-11_log_data_error.log
Empty file.
Loading