Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

config#4/Jacoco 룰 설정 및 Jacoco 관련 깃허브 액션 추가 #8

Merged
merged 5 commits into from
Aug 12, 2024

Conversation

HyeonJun0530
Copy link
Member

@HyeonJun0530 HyeonJun0530 commented Aug 12, 2024

✅ PR 체크

  • 하나의 PR 에는 100줄 정도의 커밋을 한다는 규칙을 지키고 있나요?
  • 무엇을 변경했는지 충분히 설명하고 있나요?
  • 새로운 기술을 사용했다면, 그 기술을 설명하고 있나요?
  • 이해하기 어려운 비즈니스 로직에 관해서 부연 설명을 하고 있나요?
  • 팀원 한 명을 Assign 했나요?
  • 작업 범위에 대해서 테스트를 작성하셨나요?

🚨 관련 이슈

closes #4

🌈 작업 상황

  • 코드 커버리지 측정 및 브랜치 커버리지 측정을 위해 Jacoco를 도입했어요.
    • 코드 커버리지 80%, 브랜치 커버리지 70%가 넘지 않으면 빌드가 되지 않으니 주의 하세요.
  • 깃허브 액션을 통해 Report를 생성하고 이를 PR Comment에 달게 만들었어요.
    • 물론 커버리지를 채우지 못하면 build가 되지 않아 실패하니 유의하길 바랄께요.

📌 기타

kkyu0718 and others added 3 commits August 12, 2024 13:08
- PR 체크 이모지 추가
- 제목에 채워넣도록 수정
- 코드 커버리지 80%, 브랜치 커버리지 70%로 제한
- 메인 클래스 커버리지, 리포트에서 제외
- PR 내용에 Jacoco 코멘트가 달리도록 작성
- build 후에 Jacoco Report 생성
@HyeonJun0530 HyeonJun0530 added the 기능 New feature or request label Aug 12, 2024
@HyeonJun0530 HyeonJun0530 self-assigned this Aug 12, 2024
@HyeonJun0530 HyeonJun0530 changed the base branch from dev to main August 12, 2024 04:26
- PR 템플릿에서 제목 삭제
@@ -1,5 +1,4 @@
# PR 제목
## PR 체크
## ✅ PR 체크
- [ ] 하나의 PR 에는 100줄 정도의 커밋을 한다는 규칙을 지키고 있나요?
- [ ] 무엇을 변경했는지 충분히 설명하고 있나요?
- [ ] 새로운 기술을 사용했다면, 그 기술을 설명하고 있나요?

Choose a reason for hiding this comment

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

코드 리뷰를 위한 코드 diff에 대한 비판적 요약은 다음과 같습니다.

  1. 코드 품질 및 자바 모범 사례:

    • PR 제목을 내용이 아닌 경과로 바꾸는 방식은 혼란을 초래할 수 있으므로 표준 명명 규칙을 따르는 것이 좋습니다.
    • 설명 부분에서 "무엇을 변경했는지" 대신 구체적으로 기술적인 세부사항을 포함해야 합니다.
  2. 성능 및 효율성:

    • 성능 개선을 위한 참고사항이 부족해 보이며, 어떤 점에서 이 변경이 비효율적인지 상기시킬 필요가 있습니다.
  3. API 디자인 및 백엔드 아키텍처:

    • API 디자인의 일관성을 강조하고, 변경 사항이 기존 아키텍처와 잘 통합되는지를 검토해야 합니다. 문서화된 API 계약을 준수하는지도 확인해야 합니다.
  4. 보안 취약점:

    • 보안 점검이 필요한 부분에서는 암호화, 인증 및 권한 부여 메커니즘에서의 업데이트가 필요할 수 있습니다. OAuth 또는 JWT와 같은 안전한 인증 방법을 사용하는 것을 고려해야 합니다.
  5. 테스트 커버리지:

    • 변경 사항에 대한 테스트 커버리지가 충분한지 확인해야 하며, 특히 모든 새로운 기능과 버그 수정에 대해 유닛 테스트가 작성되었는지를 체크해야 합니다.

종합 요약:
코드 변경 사항에 대한 명확한 설명과 함께 일관된 API 사용자 경험을 유지하면서 보안 취약점을 사전에 예방하는 것이 중요합니다. 또한, 성능과 효율성을 고려한 반영과 충분한 테스트 커버리지를 보장하는 추가적인 진단이 필요합니다.

- PR 메시지를 쓸 수 있는 권한 추가
- dev 브랜치 적용 추가
echo "Changed files coverage: $changed_files_coverage%"
exit 1
fi

Choose a reason for hiding this comment

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

이 코드는 Java 백엔드 프로젝트의 GitHub Actions 설정으로, JaCoCo 코드 커버리지 리포트를 처리합니다. 아래는 몇 가지 주요 점검 사항입니다.

1. 코드 품질 및 Java 최선의 관행

  • Gradle wrapper 사용: gradlew를 사용하는 것은 좋은 접근입니다. 그러나 Gradle 버전을 명시적으로 정의하여 일관성을 유지하는 것도 고려해볼 수 있습니다.
  • 환경 설정: JDK 17을 사용하는 것은 현재 최신 버전 중 하나로, 장점이 있습니다.

2. 성능 및 효율성

  • 커버리지 검사 명령어: Jacoco 및 Gradle 테스트가 한 번에 실행되므로, 문제가 발생할 경우 디버깅이 어려워질 수 있습니다. 각 단계를 세분화하거나 로그 출력을 추가하는 것이 좋습니다.

3. API 설계 및 백엔드 아키텍처

  • 코드 검토위한 PR 주기: Pull Request에서 자동으로 코드 커버리지를 확인할 수 있는 부분은 유용하지만, 리포트가 잘못될 경우 수정이 필요합니다. 지속적인 통합(CI) 도구에서 안정적인 커밋 후 QA 절차를 고려하세요.

4. 보안 취약점

  • GitHub Token 관리: GITHUB_TOKEN을 사용하는 것은 일반적이지만, 보다 민감한 리소스를 다룰 때는 이 추가 정보를 보호하는 별도의 방법을 고려해야 합니다.

5. 테스트 범위

  • 테스트 임계값 설정: 전체 및 변경 파일 커버리지 기준이 각각 80%로 설정되어 있는 것은 긍정적이나, 실제 환경에 따라 조정할 수 있으며, 프로덕션에 대한 테스트 커버리지를 강화할 필요가 있습니다.

개선 제안 요약

  • Gradle 버전을 명시적으로 정의하여 환경 일관성 확보.
  • 단계별 빌드를 통해 문제 발생 시 로깅 및 디버깅 용이성 향상.
  • PR 제공 시 안정된 코드 품질을 보장하기 위한 추가적인 QA 절차 도입.
  • 민감한 정보 관리를 위한 보안 절차 추가.
  • 테스트 커버리지 기준의 정기적인 리뷰 및 조정.

이러한 변화를 통해 코드 품질과 시스템 성능을 더욱 향상시킬 수 있을 것입니다.

Copy link

Code Coverage Report

There is no coverage information present for the Files changed

Total Project Coverage 100% 🍏

@HyeonJun0530 HyeonJun0530 merged commit 079ba69 into main Aug 12, 2024
3 checks passed
@HyeonJun0530 HyeonJun0530 deleted the config#4 branch August 12, 2024 05:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
기능 New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Config] Jacoco 설정
2 participants