Skip to content

[UPLUS-73] CI 개선 - #8

Merged
k0081915 merged 6 commits into
developfrom
feat/UPLUS-73
Jan 14, 2026
Merged

k0081915 merged 6 commits into
developfrom
feat/UPLUS-73

Conversation

@swthewhite

Copy link
Copy Markdown
Contributor

🎫 지라 티켓

UPLUS-73


✅ 작업 사항

  • checkstyle 개선
  • cicd workflow 개선
  • 모니터링 시스템 추가
  • ops를 위한 github actions 추가
  • CI 맞춰서 코드 개선

⌨ 기타

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @swthewhite, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 CI/CD 파이프라인의 전반적인 견고성과 효율성을 높이는 데 중점을 둡니다. 코드 품질 표준을 강화하고, 배포 프로세스를 최적화하며, 애플리케이션의 가시성을 향상시키기 위한 모니터링 기능을 통합하여 개발 및 운영 환경 모두에서 안정성을 확보하는 것을 목표로 합니다.

Highlights

  • CI/CD 워크플로우 개선: CI/CD 파이프라인을 개선하고 GitHub Actions를 Ops를 위해 추가했습니다.
  • Checkstyle 규칙 강화 및 업데이트: Checkstyle 도구 버전을 업데이트하고 Google Java Style Guide 기반의 엄격한 코드 스타일 규칙을 적용하여 코드 품질을 향상시켰습니다.
  • 모니터링 시스템 통합: Prometheus 및 OpenTelemetry를 위한 Micrometer 의존성을 추가하고 관련 설정을 구성하여 애플리케이션 모니터링 기능을 강화했습니다.
  • 코드 스타일 정렬: 새로운 Checkstyle 규칙에 맞춰 기존 코드의 임포트 순서, 들여쓰기, 공백 및 레코드 정의 등 전반적인 코드 스타일을 정렬했습니다.
  • 배포용 Dockerfile 추가: CI/CD 파이프라인에서 미리 빌드된 JAR 파일을 효율적으로 배포하기 위한 Dockerfile.deploy를 새로 추가했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (6)
    • .github/workflows/deploy.yml
    • .github/workflows/integrate.yml
    • .github/workflows/pr-approval-check.yml
    • .github/workflows/pr-labeler.yml
    • .github/workflows/pr-reviewer.yml
    • .github/workflows/stale-pr.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

이 PR은 CI/CD 파이프라인 개선, 모니터링 시스템 추가, 그리고 코드 스타일 일관성 확보를 위한 중요한 변경 사항들을 포함하고 있습니다. Checkstyle과 Spotless를 도입하여 코드 품질을 높이고, JaCoCo 코드 커버리지를 상향 조정한 점이 인상적입니다. 또한, Prometheus, OTLP를 이용한 모니터링 및 구조화된 로깅 설정은 운영 안정성을 크게 향상시킬 것입니다. 전반적으로 훌륭한 개선 작업이라고 생각합니다. 몇 가지 추가 개선을 위해 아래에 리뷰 의견을 남겼습니다.

;
public enum GlobalErrorCode implements BaseErrorCode {
EXAMPLE_NOT_FOUND(HttpStatus.BAD_REQUEST, "EXAMPLE_001", "Example을 찾을 수 없습니다"),
INTERNAL_SERVER_ERROR(HttpStatus.BAD_REQUEST, "EXAMPLE_001", "Example을 찾을 수 없습니다"),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

critical

INTERNAL_SERVER_ERROR의 설정이 잘못되었습니다.

  • HTTP 상태 코드가 HttpStatus.BAD_REQUEST (400)으로 되어있습니다. 서버 내부 오류이므로 HttpStatus.INTERNAL_SERVER_ERROR (500)을 사용해야 합니다.
  • 커스텀 코드와 메시지가 EXAMPLE_NOT_FOUND와 동일합니다. 서버 오류에 맞는 적절한 코드와 메시지로 변경해야 합니다. 예를 들어, customCodeGLOBAL_001, 메시지는 "서버 내부 오류가 발생했습니다." 와 같이 설정할 수 있습니다.
Suggested change
INTERNAL_SERVER_ERROR(HttpStatus.BAD_REQUEST, "EXAMPLE_001", "Example을 찾을 수 없습니다"),
INTERNAL_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "GLOBAL_001", "서버 내부 오류가 발생했습니다."),

Comment thread Dockerfile.deploy
WORKDIR /app

# CI에서 빌드된 JAR 파일 복사
COPY build/libs/*.jar app.jar

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

COPY build/libs/*.jar app.jar 명령어는 build/libs 디렉토리에 여러 개의 JAR 파일이 있을 경우(예: Spring Boot가 생성하는 *-plain.jar 파일) 빌드가 실패할 수 있습니다. 와일드카드(*) 대신 특정 JAR 파일을 복사하도록 수정하는 것이 더 안전하고 예측 가능합니다. build.gradle에서 bootJararchiveFileName을 고정된 이름(예: app.jar)으로 설정하고 Dockerfile에서 해당 파일을 복사하는 것을 권장합니다.

## 🍀 이슈 번호
<!-- 이슈 번호를 작성해주세요 ex) #11 -->

- #이슈번호

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

## 🍀 이슈 번호 섹션에 - #이슈번호 항목이 추가되었습니다. 바로 위의 주석 <!-- 이슈 번호를 작성해주세요 ex) #11 -->에서 이미 작성 방법을 안내하고 있으므로, 이 줄은 중복으로 보입니다. PR 작성 시 혼동을 줄 수 있으니 삭제하는 것을 고려해 보세요.

…UPLUS-73

# Conflicts:
#	src/main/java/com/project/core/controller/CustomerController.java
#	src/main/java/com/project/core/controller/PlanController.java
#	src/main/java/com/project/core/controller/dto/Request/FindUserRequest.java
#	src/main/java/com/project/core/infra/entity/subscription/Subscription.java
#	src/main/java/com/project/core/infra/repository/customer/CustomerRepository.java
#	src/main/java/com/project/core/infra/repository/subscription/SubscriptionRepository.java
#	src/main/java/com/project/core/service/CustomerService.java
#	src/main/java/com/project/core/service/PlanService.java
#	src/main/resources/application.yml
@github-actions github-actions Bot added the size/XL PR size: XL label Jan 14, 2026
@k0081915
k0081915 merged commit bd8fe27 into develop Jan 14, 2026
1 of 2 checks passed
@k0081915
k0081915 deleted the feat/UPLUS-73 branch January 15, 2026 05:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XL PR size: XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants