Skip to content

OCI용 CD 파이프라인 마이그레이션#234

Merged
Hwanvely merged 8 commits intodevfrom
fix/fever-time-latency
Apr 6, 2026
Merged

OCI용 CD 파이프라인 마이그레이션#234
Hwanvely merged 8 commits intodevfrom
fix/fever-time-latency

Conversation

@Hwanvely
Copy link
Copy Markdown
Collaborator

@Hwanvely Hwanvely commented Apr 6, 2026

No description provided.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request implements containerization with Jib, adds deployment scripts for development and rolling updates, and introduces anti-cheating logic for the Fever Time mechanic. It also refactors session management to include event timestamps and adds a global exception handler for multipart requests. Key feedback includes correcting a logic error in the percentile calculation query, optimizing property types for null-safety in the domain model, removing redundant transaction propagation, and improving the reliability of deployment health checks.

I am having trouble creating individual review comments. Click here to see my feedback.

src/main/java/com/snackgame/server/game/snackgame/core/domain/SnackgameRepository.kt (15-28)

high

현재 쿼리는 WHERE 절에서 session_id를 필터링한 후 percent_rank()를 계산하므로, 항상 단일 행에 대한 순위인 0.0을 반환하게 됩니다. 올바른 백분위를 계산하려면 모든 대상 세션에 대해 먼저 순위를 매긴 후 특정 session_id를 선택해야 합니다.

        value = """
        SELECT percentile FROM (
            SELECT session_id, percent_rank() over (order by score desc) as percentile
            FROM snackgame 
            WHERE expires_at <= now() + INTERVAL 1 SECOND
        ) t WHERE session_id = :sessionId
        
        UNION ALL
        
        SELECT 0.0 as percentile
        FROM snackgame
        WHERE session_id = :sessionId
          AND expires_at > now() + INTERVAL 1 SECOND
        LIMIT 1
        """,

src/main/java/com/snackgame/server/game/snackgame/core/domain/item/FeverTime.kt (13)

medium

feverStreakCount는 항상 0으로 초기화되며 도메인 로직에서 널이 될 가능성이 없으므로, 비널(non-nullable) 타입인 Int로 선언하여 불필요한 엘비스 연산자(?: 0) 사용을 줄이는 것이 좋습니다.

    var feverStreakCount: Int = 0

src/main/java/com/snackgame/server/game/snackgame/core/domain/item/FeverTime.kt (34-38)

medium

feverStreakCount를 비널 타입으로 변경함에 따라 관련 로직의 널 안전성 연산자를 제거할 수 있습니다.

    fun canApplyFeverMultiplier(): Boolean = feverStreakCount < MAX_FEVER_STREAKS

    fun incrementFeverStreak() {
        feverStreakCount += 1
    }

src/main/java/com/snackgame/server/game/snackgame/core/service/SnackgameService.kt (115)

medium

getEndResponse는 단순히 결과를 조회하는 메서드이며, 호출부인 컨트롤러에서 이미 end() 트랜잭션이 완료된 후 호출하므로 Propagation.REQUIRES_NEW는 불필요합니다. 이는 불필요한 데이터베이스 커넥션 점유를 유발할 수 있습니다.

    @Transactional(readOnly = true)

scripts/deploy-rolling.sh (15)

medium

헬스 체크 URL에 특정 리소스 ID(rankings/1)가 포함되어 있습니다. 해당 데이터의 존재 여부에 따라 배포 성공 여부가 결정되는 것은 위험할 수 있으므로, 애플리케이션의 상태를 직접 나타내는 /actuator/health와 같은 엔드포인트를 사용하는 것이 안전합니다.

@Hwanvely Hwanvely merged commit 0a6e22f into dev Apr 6, 2026
1 check passed
Hwanvely added a commit that referenced this pull request Apr 6, 2026
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다

* refactor: 인터페이스로 묶는다

* 피버타임 관련 문제 해결 (#228)

* fix: 점수 증가 로직 오류 해결

* fix: 스트릭 발생 시각을 받는다

* refactor: 네이밍 수정

* fix(test): 스트릭 발생 시각 추가

* fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229)

* fix: 피버타임 네트워크 지연 문제 해결 (#231)

* 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* OCI용 CD 파이프라인 마이그레이션 (#234)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리
Hwanvely added a commit that referenced this pull request Apr 6, 2026
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다

* refactor: 인터페이스로 묶는다

* 피버타임 관련 문제 해결 (#228)

* fix: 점수 증가 로직 오류 해결

* fix: 스트릭 발생 시각을 받는다

* refactor: 네이밍 수정

* fix(test): 스트릭 발생 시각 추가

* fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229)

* fix: 피버타임 네트워크 지연 문제 해결 (#231)

* 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* OCI용 CD 파이프라인 마이그레이션 (#234)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* OCI 경로 수정 (#236)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* fix: oci 경로 수정
Hwanvely added a commit that referenced this pull request Apr 6, 2026
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다

* refactor: 인터페이스로 묶는다

* 피버타임 관련 문제 해결 (#228)

* fix: 점수 증가 로직 오류 해결

* fix: 스트릭 발생 시각을 받는다

* refactor: 네이밍 수정

* fix(test): 스트릭 발생 시각 추가

* fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229)

* fix: 피버타임 네트워크 지연 문제 해결 (#231)

* 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* OCI용 CD 파이프라인 마이그레이션 (#234)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* OCI 경로 수정 (#236)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* fix: oci 경로 수정

* fix: oci 옵션 수정

* fix: shebang 추가
Hwanvely added a commit that referenced this pull request Apr 6, 2026
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다

* refactor: 인터페이스로 묶는다

* 피버타임 관련 문제 해결 (#228)

* fix: 점수 증가 로직 오류 해결

* fix: 스트릭 발생 시각을 받는다

* refactor: 네이밍 수정

* fix(test): 스트릭 발생 시각 추가

* fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229)

* fix: 피버타임 네트워크 지연 문제 해결 (#231)

* 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* OCI용 CD 파이프라인 마이그레이션 (#234)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* OCI 경로 수정 (#236)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* fix: oci 경로 수정

* fix: oci 옵션 수정

* fix: shebang 추가

* fix: oci 옵션 수정
Hwanvely added a commit that referenced this pull request Apr 6, 2026
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다

* refactor: 인터페이스로 묶는다

* 피버타임 관련 문제 해결 (#228)

* fix: 점수 증가 로직 오류 해결

* fix: 스트릭 발생 시각을 받는다

* refactor: 네이밍 수정

* fix(test): 스트릭 발생 시각 추가

* fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229)

* fix: 피버타임 네트워크 지연 문제 해결 (#231)

* 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* OCI용 CD 파이프라인 마이그레이션 (#234)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* OCI 경로 수정 (#236)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* fix: oci 경로 수정

* fix: oci 옵션 수정

* fix: shebang 추가

* fix: oci 옵션 수정

* fix: drain 경합으로 인한 409 해결
Hwanvely added a commit that referenced this pull request Apr 7, 2026
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다

* refactor: 인터페이스로 묶는다

* 피버타임 관련 문제 해결 (#228)

* fix: 점수 증가 로직 오류 해결

* fix: 스트릭 발생 시각을 받는다

* refactor: 네이밍 수정

* fix(test): 스트릭 발생 시각 추가

* fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229)

* fix: 피버타임 네트워크 지연 문제 해결 (#231)

* 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* OCI용 CD 파이프라인 마이그레이션 (#234)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* OCI 경로 수정 (#236)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* fix: oci 경로 수정

* fix: oci 옵션 수정

* fix: shebang 추가

* fix: oci 옵션 수정

* fix: drain 경합으로 인한 409 해결

* 모니터링 추가 (#241)

* feat: drain 연결 종료 대기 추가

* feat: actuator 추가
Hwanvely added a commit that referenced this pull request Apr 7, 2026
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다

* refactor: 인터페이스로 묶는다

* 피버타임 관련 문제 해결 (#228)

* fix: 점수 증가 로직 오류 해결

* fix: 스트릭 발생 시각을 받는다

* refactor: 네이밍 수정

* fix(test): 스트릭 발생 시각 추가

* fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229)

* fix: 피버타임 네트워크 지연 문제 해결 (#231)

* 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* OCI용 CD 파이프라인 마이그레이션 (#234)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* OCI 경로 수정 (#236)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* fix: oci 경로 수정

* fix: oci 옵션 수정

* fix: shebang 추가

* fix: oci 옵션 수정

* fix: drain 경합으로 인한 409 해결

* 모니터링 추가 (#241)

* feat: drain 연결 종료 대기 추가

* feat: actuator 추가

* Grafana Env 추가 및 배포 스크립트 수정 (#243)

* feat: drain 연결 종료 대기 추가

* feat: actuator 추가

* feat: grafana 환경변수 추가

* refactor: 앱 컨테이너만 교체하도록 수정
Hwanvely added a commit that referenced this pull request Apr 14, 2026
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다

* refactor: 인터페이스로 묶는다

* 피버타임 관련 문제 해결 (#228)

* fix: 점수 증가 로직 오류 해결

* fix: 스트릭 발생 시각을 받는다

* refactor: 네이밍 수정

* fix(test): 스트릭 발생 시각 추가

* fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229)

* fix: 피버타임 네트워크 지연 문제 해결 (#231)

* 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* OCI용 CD 파이프라인 마이그레이션 (#234)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* OCI 경로 수정 (#236)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* fix: oci 경로 수정

* fix: oci 옵션 수정

* fix: shebang 추가

* fix: oci 옵션 수정

* fix: drain 경합으로 인한 409 해결

* 모니터링 추가 (#241)

* feat: drain 연결 종료 대기 추가

* feat: actuator 추가

* Grafana Env 추가 및 배포 스크립트 수정 (#243)

* feat: drain 연결 종료 대기 추가

* feat: actuator 추가

* feat: grafana 환경변수 추가

* refactor: 앱 컨테이너만 교체하도록 수정

* chore: mysql-exporter 추가
Hwanvely added a commit that referenced this pull request Apr 14, 2026
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227)

* fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결

* refactor: 바뀐 dto에 맞게 BIZ 및 test 수정

* fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다

* refactor: 인터페이스로 묶는다

* 피버타임 관련 문제 해결 (#228)

* fix: 점수 증가 로직 오류 해결

* fix: 스트릭 발생 시각을 받는다

* refactor: 네이밍 수정

* fix(test): 스트릭 발생 시각 추가

* fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229)

* fix: 피버타임 네트워크 지연 문제 해결 (#231)

* 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* OCI용 CD 파이프라인 마이그레이션 (#234)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* OCI 경로 수정 (#236)

* fix: 치팅 및 네트워크 지연 해결

* comment: 디버깅을 위한 로그 추가

* fix: session과 fevertime 일시정지 동기화

* fix: 세션 예외 오류 해결

* feat: multipart 예외 핸들링

* refactor: CD 파이프라인 OCI로 마이그레이션

* fix: end response 분리

* fix: oci 경로 수정

* fix: oci 옵션 수정

* fix: shebang 추가

* fix: oci 옵션 수정

* fix: drain 경합으로 인한 409 해결

* 모니터링 추가 (#241)

* feat: drain 연결 종료 대기 추가

* feat: actuator 추가

* Grafana Env 추가 및 배포 스크립트 수정 (#243)

* feat: drain 연결 종료 대기 추가

* feat: actuator 추가

* feat: grafana 환경변수 추가

* refactor: 앱 컨테이너만 교체하도록 수정

* chore: mysql-exporter 추가

* chore: p95,p99 메트릭 수집
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant