Skip to content

Conversation

@nahyeongjin1
Copy link
Member

@nahyeongjin1 nahyeongjin1 commented Aug 4, 2025

지라 팀에 추가되는대로 이슈 추가하여 PR title이랑 description 변경하겠습니다.

poetry run pre-commit install을 반드시 실행해야 사용할 수 있음

  1. .pre-commit-config.yaml에 등록된 ruff 관련 셋업의 id가 ruff라는 legacy alias로 세팅되어 린팅이 제대로 수행되지 않았습니다. 이를 개선하기 위해 id를 ruff에서 ruff-check로 변경하였습니다. 앞으로는 커밋시 아래와 같이 ruff check 작업과 black 작업이 시행됨을 확인할 수 있을 것입니다.
프리커밋 시행 스크린샷
스크린샷 2025-08-04 112530
  1. 그동안 작업한 코드에 린팅이 되어있지 않을 것으로 판단되어 poetry run ruff check . --fix 명령어로 전체 린팅을 실시했습니다.
  2. 중요: 과정 중에 exception 추적을 위해 ruff에서 권장하는 방식으로 exception 관련 코드들 변경했습니다. ruff로 인해 try-except 문에는 반드시 from 절을 통해 에러를 추적해야 커밋에 성공할 것입니다. 아래는 예시 코드입니다.
@router.get("/drivers/{driverId}", response_model=ResponseMessage[DriverInfo], summary="DB 드라이버 정보 조회 API")
def read_driver_info(driverId: str):
    """DB 드라이버 정보 조회"""
    try:
        # DBTypesEnum에서 driverID에 맞는 객체를 가져옵니다.
        db_type_enum = DBTypesEnum[driverId.lower()]
        return ResponseMessage.success(value=db_driver_info(DriverInfo.from_enum(db_type_enum)))
    # db_type_enum 유효성 검사 실패
    except KeyError: # or except KeyError as e
        raise APIException(CommonCode.INVALID_ENUM_VALUE) from KeyError # or from e

협업을 위한 프리커밋 셋업이므로 테스트는 따로 진행할 수 없습니다.
이 브랜치가 합쳐지게 되면 앞으로는 ruff의 권장사항을 잘 준수해야 합니다.

ruff-check으로 린팅을 ruff-format으로 포맷팅도 동시에 진행할 수 있어서 이 방식으로 구성한다면 일관성이 더 높을 것 같아 논의해보는게 좋을 것 같습니다.

3번 관련 참고자료

@nahyeongjin1 nahyeongjin1 self-assigned this Aug 4, 2025
@nahyeongjin1 nahyeongjin1 deleted the feature/lint-pre-commit branch August 4, 2025 03:58
@nahyeongjin1
Copy link
Member Author

feature보다는 hotfix가 적합한 것으로 판단되어 브랜치 이름 변경으로 PR을 닫았습니다.

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.

2 participants