-
Notifications
You must be signed in to change notification settings - Fork 1
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
feat: 린트 액션을 추가합니다 #27
Conversation
run: chmod +x gradlew | ||
|
||
- name: Test with Spotless | ||
run: ./gradlew --info ktlintCheck No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
코드 패치를 검토해보면 다음과 같은 피드백을 드릴 수 있습니다:
- 파일의 마지막에는 항상 새줄(newline character)을 추가해주세요. 이는 Unix/Linux 스타일의 텍스트 파일에서 관례처럼 따르는 규칙입니다.
actions/setup-java@v1
대신actions/setup-java@v2
를 사용하는 것을 추천합니다. v2 버전은 병렬적인 작업이 가능하며, 보안 강화, 버그 픽스 등의 이점이 있습니다.- Gradle Wrapper Validation을 고려해 보세요. 이는 서드파티가 조작하지 못하도록 Gradle Wrapper를 보호해줍니다.
수정 제안:
@@ -0,0 +1,23 @@
+name: lint
+
+on:
+ pull_request:
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Validate Gradle Wrapper
+ uses: gradle/wrapper-validation-action@v1
+
+ - name: Set up JDK 11
+ uses: actions/setup-java@v2
+ with:
+ java-version: 11
+
+ - name: Grant execute permission for gradlew
+ run: chmod +x gradlew
+
+ - name: Test with Spotless
+ run: ./gradlew --info ktlintCheck
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 코드 조각을 보면, 실제로 수정된 부분은 파일의 끝에 새 줄이 추가되었다는 것입니다. 이것은 일반적으로 소스 파일의 끝에 새 줄을 포함하도록 요구하는 많은 프로그래밍 언어의 스타일 가이드를 따르기 위해 추천됩니다.
그러나 이 변경 사항 외에 특별히 리뷰할 내용은 없습니다. 사용한 종속성들이 앱 필요가 있거나 업데이트되어야 하는지 확인하십시오. 버전을 명시하지 않았으니, 빌드 시 최신 버전이 자동으로 받아질 것입니다. 이는 의도치 않은 변경 사항이나 동작에서 생길 수 있는 문제를 방지하기 위해 종속성의 버전을 명시적으로 지정하는 것이 좋습니다. 그 외에는 이 코드 조각에 대해 피드백할 중요한 사항이 없습니다.
@@ -15,4 +15,3 @@ dependencies { | |||
implementation("org.flywaydb:flyway-core:${DependencyVersion.FLYWAY}") | |||
implementation("org.flywaydb:flyway-mysql") | |||
} | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 패치의 변경 사항은 두 가지 입니다:
org.flywaydb:flyway-mysql
추가: 이 의존성은 FlywayDB에서 MySQL을 지원하기 위한 것으로 보입니다. 해당 데이터베이스를 사용하는 경우에만 필요합니다.- 불필요한 공백 라인 제거: 깔끔함과 코드 일관성 측면에서는 향상되었지만, 잠재적인 문제나 결함에 대해서는 영향을 주지 않습니다.
버그 리스크를 관리하려면, 이 변경 사항을 테스트 환경에서 적용하고, 테스트 케이스 실행을 통해 요구 사항을 충족하는지 검증해야 합니다.
더 개선시키려면, 버전 관리를 위해 ${DependencyVersion.FLYWAY}
치환자를 사용하고 있는데, flyway-mysql
에도 동일한 방식으로 버전 관리를 할 수 있는지 확인해야 합니다. 각 패키지가 자체 버전 관리를 하고 있다면, 이 점을 고려하아야 합니다. 그렇지 않으면, 일부 패키지 업데이트시 연관 패키지와 호환성 문제가 발생할 수 있습니다.
run: chmod +x gradlew | ||
|
||
- name: Test with Ktlint | ||
run: ./gradlew --info ktlintCheck No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 코드 패치에 대해 간략히 살펴보면 다음과 같습니다:
-
파일의 마지막에 개행 문자가 없습니다. 이는 일반적으로 스타일 가이드에서 권장하는 것 중 하나인데, 이로 인해 diff 출력을 읽거나 리다이렉트할 때 실수를 줄일 수 있습니다.
-
JDK 17을 사용하도록 설정되어 있습니다. 이것이 프로젝트의 필요한 Java 버전인지 확인하십시오.
-
작업 이름이 'lint'라고 되어 있는데, 실제로는 Ktlint를 통해 코드 검사를 진행하고 있습니다. 더 명확하게 작업 이름을 설정하여 해당 작업이 실제로 어떤 작업을 수행하는지 명확하게 드러내도록 합니다.
-
actions/checkout@v2
와actions/setup-java@v1
와 같은 액션을 사용할 때 가능하면 최신버전을 사용하는 것이 좋습니다. 그러나 이는 현재 당신의 프로젝트에서 호환성 문제를 발생시키지 않는 경우에만 적용됩니다. -
본 코드에서 실패 시 CI 파이프라인이 바로 중단된다는 점을 고려하였는지 생각해보세요. Gradle task가 실패하면 이후 스텝들은 수행되지 않습니다. 이것이 기대하는 동작인지 확인하십시오.
-
마지막으로,
--info
옵션을 사용해서 세부 내용까지 로그에 남기고 있습니다. 이 부분은 디버깅에 도움이 될 수 있지만 불필요하게 많은 정보를 로그에 남길 수도 있으니 운영 환경에서 필요한 만큼의 로그만 출력되도록 조절하는 것이 좋습니다.
🎫 연관 이슈
resolved: #10
💁♂️ PR 내용
🙏 작업
🙈 PR 참고 사항
이제 린트 액션을 통과해야 PR을 머지할 수 ..
📸 스크린샷
🤖 테스트 체크리스트