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

conflict 해결 및 전략 패턴 적용 #4

Merged
merged 4 commits into from
Apr 17, 2024

Conversation

rkaehdaos
Copy link
Owner

No description provided.

@rkaehdaos rkaehdaos self-assigned this Apr 17, 2024
Copy link

GitHub Action Summary

JaCoCo 커버리지 요약

  • Instruction Coverage: 95.00%
  • Branch Coverage: 96.00%

PMD Code Analysis

문제 없음

@rkaehdaos rkaehdaos merged commit 3a88c8d into step4_carracing Apr 17, 2024
2 checks passed
@rkaehdaos rkaehdaos deleted the step4_carracing-fix branch April 17, 2024 23:27
rkaehdaos added a commit that referenced this pull request Apr 18, 2024
* step1 squash

* step2 squash

* step3 squash

* docs(README): STEP4 README.md 작성

* feat(car): Move, getDistance 구현

* feat(car): name 필드

* feat(car): Car 구현 완료 및 정리

* feat(Race): Race 생성자 및 getter 처리

* feat(Race): Race runRound

- 이전 study test depreacated 주석처리

* feat(Input): Input 구현

* feat(result): 자동차 이름과 함께 움직임 출력

* feat(result): 최종 우승자 출력: 1명 이상 일 수 있음

* feat(result): result 구현 완료

* check: UI를 InputView, ResultView로 분리

* 메서드가 15라인을 넘어가지 않도록 구현

- pmd로 ncss 15line 강제화
- jdk21 apply
- 기존 에
* 에러 정의 차이

리플렉션을 사용하여 생성자를 호출하면, 생성자 내부에서 발생하는 예외는 InvocationTargetException에 감싸져서 발생합니다. 이 때문에 예외가 직접적으로 UnsupportedOperationException가 아니라 InvocationTargetException으로 포착되는 것입니다.

* 최적화

* Car 상수 사용 및 보완

* formatting

* 가독성

* workflow 수정

* workflow 수정

* pmdtest4에 step4 넣음

* workflow에 pmd summary 추가

* 15라인 rule은 main 코드에만 ㅋㅋ

* Extract PMD info and update step summary

* test dependon pmdmain

* pmd 실패여도 진행

* xmllint 사용 제거

* 메시지 추출 부분 수정

* 일단 원복

* awk로 개선된 스크립트

설명
파일 처리:

awk를 사용하여 <file> 태그로 시작하고 </file> 태그로 끝나는 블록을 찾습니다. 이는 awk '/<file name=/,/<\/file>/' 명령으로 처리합니다.
파일 내부 처리:

awk 스크립트는 각 파일 블록을 처리하면서 파일 이름을 추출하고, 각 위반 사항의 정보를 파싱합니다.
파일 이름은 gensub() 함수를 사용하여 추출하고, 위반의 라인 번호, 메시지, URL을 추출하여 출력합니다.
Markdown 형식:

추출된 정보는 콘솔에 출력되고 pmd_summary.md 파일에 Markdown 형식으로 기록됩니다.
최종적으로, 이 Markdown 파일은 GitHub Actions 단계 요약에 추가됩니다.
장점
성능: awk는 스트림을 처리하면서 발생하는 데이터를 효율적으로 처리할 수 있으므로, 큰 XML 파일에 대해서도 성능상의 이점이 있습니다.
간결성: awk를 사용하면 복잡한 grep 및 sed 조합을 하나의 명령으로 대체할 수 있어 스크립트가 더욱 간결해집니다.
유지 관리: 스크립트가 간결해지므로 유지 관리가 용이해지며, 변경 사항을 적용하기 쉬워집니다.

* awk로 개선된 스크립트2 - 텍스트 한정

변경된 부분 설명
태그 내용 처리 로직: <violation> 태그를 만나면 내용 캡처를 시작하고, </violation> 태그를 만나면 내용 캡처를 종료하며, 그 사이에 있는 모든 텍스트를 content 변수에 누적합니다.
텍스트 출력: 최종적으로 각 violation의 설명이 content 변수에 저장되고, 이를 Markdown 링크의 텍스트로 사용하여 출력합니다.
이 수정을 통해 PMD 요약 정보에는 각 violation의 상세 설명이 <violation> 태그 사이의 텍스트로 정확히 제공됩니다. 이 방법은 XML 데이터에서 필요한 정보만을 추출하여 보다 명확하고 유용한 요약을 생성하는 데 도움이 됩니다.

* message 수정

* workflow-PR 생성

* NCSS 5->15

* NCSS 5->15

* NCSS 15->5

* README.md 수정

* onPRTest

* onPRTest -             $GITHUB_STEP_SUMMARY

* onPRTest

* Comment SUMMARY Report on PR body check

* body-path: 'PR_summary.md'

* body-path: 'PR_summary.md'

* PUSH_summary.md 에 모으기

* PR_summary.md 에 total count 추가

* push workflow는 pr이 있으면 작동하지 않음

* pr workflow type 지정

* PR시에는 build task

* github.event.pull_request삭제 - pr workflow에서만 true 가능

* types 가독성

* graalvm 적용

* 정리

* 언어 정리

* pmd pmdtest는 전부 제외, pmdmin은 step4만

* 메서드라인은 15라인

* 문제가 없을시 pmd report 요약 액션 에러 수정

* push workflow - 문제가 없을시 pmd report 요약 액션 에러 수정

* PR 멈추기

* push test

* push test2

* error 수정: branches-ignore: ['*']

* total_violations 출력 수정

* 극단적 test

* 극단적 test2

* 극단적 test3

* PMD 리포트 요약 복원

* grep 명령 실패 허용

* jacoco summary 지워지는 거 방지

* PR workflow 활성화

---------

Co-authored-by: GeunChang Ahn <[email protected]>

* Step4 - 단일 책임원칙 확인

* psvm 클래스 rename

* 패키지 이동

* 메서드명 변경

* CarRacingRunner 생성

* 단일책임 원칙

---------

Co-authored-by: GeunChang Ahn <[email protected]>

* Merge remote-tracking branch 'origin/step4_carracing' into step4_carr… (#3)

conflict 해결 ㅠ

* conflict 해결 및 전략 패턴 적용 (#4)

* conflict ㅎㅐ결

* RandomMovingStrategy 작성

* stragegy 패턴 적용

* 포맷팅
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant