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

[BE] 코드 품질 향상 도구 세팅 #7

Merged
merged 22 commits into from
Oct 1, 2024

Conversation

keem-hyun
Copy link
Contributor

@keem-hyun keem-hyun commented Sep 30, 2024

💡 코드 품질 향상 도구 세팅

  • flake8 설정
  • black 설정
  • PostgreSQL 연동
  • SonarQube 연동
  • pre-commit 설정
  • flake8-bugbear, flake8-comprehensions, flake8-pytest-style 설정
  • isort, mypy 설정
  • 코드 품질 관련 CI 작업

🫨 고민한 부분

메인 DB
PostgreSQL, MySQL, SQLite 중 PostreSQL 로 세팅.

linter, formatter
flake8와 black, pre-commit 설정

코드 분석 정적 도구 도입
sonarqube를 github 연동까지 해보려고 했으나, 아직 docker 등 인프라 세팅에 익숙치 않아
설정에 실패함..

📌 중점적으로 볼 부분

  • 셋업과 PR을 거의 처음 해봐서 제대로 한건지 종현님의 체크가 필요합니다
  • sonarqube는 일단 로컬로 연동하였습니다
  • sonarqube는 docker를 띄워서 9000번 포트로 접속해 사용 가능합니다.
    참고한 레퍼런스입니다.
  • 현재 세팅되지 않은 Setting 항목들은 주석 처리 진행하였습니다.

🎯 테스트 결과

(초기 세팅이므로 테스트 코드는 없음)

🎇 동작 화면

테이블이 잘 생성되었는지 조회한 스크린샷입니다.
스크린샷 2024-09-30 오전 8 46 23

📗 참고 자료 (선택)

추후 sonarqube - github 연동 세팅 참고 레퍼런스
[Sonarqube] Sonarqube 설치 + PR decoration 하기
SonarQube with Github Actions (PR Decoration)

🙏리뷰 요구사항(선택)

  • pre commit / flake8 / black 의 설정이 잘 된건지 확인해주시면 감사하겠습니다.
    레거시 코드들과 비교하고, 각 항목들을 참고하여 설정하였습니다.

🚩 후속 작업 (선택)

✅ 셀프 체크리스트

  • PR 제목을 형식에 맞게 작성했나요?
  • 브랜치 전략에 맞는 브랜치에 PR을 올리고 있나요?
  • 이슈는 close 했나요?
  • Reviewers, Labels, Projects를 등록했나요?
  • 작업 도중 문서 수정이 필요한 경우 잘 수정했나요?
  • 테스트는 잘 통과했나요?
  • 불필요한 코드는 제거했나요?

💫 기타사항

closed #5

keem-hyun and others added 16 commits September 29, 2024 16:01
- 파이썬 버전 변경
- workdir 변경
- libpq-dev: PostgreSQL 데이터베이스의 클라이언트 라이브러리 개발 파일을 포함하는 패키지
- .env 위치 변경
- volumes 경로 변경
- context 경로 변경
- 아직 정의되지 않은 setting에 해당하는 부분 주석 처리
- flake8, black: linter, formatter 관련 패키지 추가
-  itsdangerous, pydantic-settings: docker 빌드 시 no module 에러가 나타나 설치
- 현재 설정되어 있지 않은 부분 주석 처리
sonarqube 스캔 시 생기는 파일 경로 gitignore 처리
- sonarqube 로컬 연동
- pre commit 패키지 추가
closed #5
@keem-hyun keem-hyun added 👨🏻‍💻 backend 백엔드 작업 ⚙️ chore 세팅 관련 labels Sep 30, 2024
@keem-hyun keem-hyun requested a review from viaunixue September 30, 2024 14:40
@keem-hyun keem-hyun self-assigned this Sep 30, 2024
@viaunixue viaunixue linked an issue Sep 30, 2024 that may be closed by this pull request
7 tasks
Copy link
Member

@viaunixue viaunixue left a comment

Choose a reason for hiding this comment

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

코드 작성하시느라 고생 많으셨습니다:) 컨벤션도 PR이랑 Commit 모두 지금처럼 해주시면 되십니다!
(sonarqube PR 데코레이션은 제가 한번 삽질 이어나가 보겠습니당)
이제 PR 올리셨으니 해야할 가장 중요한(?) 부분이 있습니다.

  1. .github/workflows 에 코드 품질 관련 CI 파일 하나 만드시고 코드 포맷팅 추가된 pre-commit이 실행될 수 있도록 세팅하기
    (레거시 코드 참조)
  2. isort 추가 세팅 (import문 정리 도구)
  3. Mypy 추가 세팅 (타입 검사 도구)

(2, 3번은 black이랑 동일하게 pyproject.toml 파일에 세팅해주시고 pre-commit hooks에 추가해주면 되는데 black 잘 세팅하셨으니 금방 세팅하실 수 있을거에용)

app/backend/pyproject.toml Outdated Show resolved Hide resolved
app/backend/.pre-commit-config.yaml Outdated Show resolved Hide resolved
app/backend/.flake8 Outdated Show resolved Hide resolved
app/backend/.flake8 Outdated Show resolved Hide resolved
app/backend/.flake8 Outdated Show resolved Hide resolved
app/backend/.flake8 Show resolved Hide resolved
app/backend/.pre-commit-config.yaml Show resolved Hide resolved
- flake8 중복 설정 부분 제거
- flake8-bugbear, comprehensions, pytest-style 추가
- flake8-bugbear, comprehensions, pytest-style 추가
- isort 추가
- mypy 추가
- black: max-length 통일
- isort 추가
- mypy 추가
- ignore: 기본적인 것들만 남겨두고 나머지 삭제. 추후 필요 시 추가 예정
- bug bear, comprehensions, pytest 추가
- CI 단계에서 자동 포맷팅 수행 작업

close #5
- 프로젝트 경로 위치 수정
@keem-hyun keem-hyun requested a review from viaunixue October 1, 2024 12:30
Copy link
Member

@viaunixue viaunixue left a comment

Choose a reason for hiding this comment

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

CI 코드도 잘 동작하네요. 수고하셨습니다-!:)

@viaunixue viaunixue merged commit b8a2cf2 into neonadeuli-project:develop Oct 1, 2024
1 check passed
@keem-hyun keem-hyun deleted the feat/backend-setting branch October 1, 2024 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
👨🏻‍💻 backend 백엔드 작업 ⚙️ chore 세팅 관련
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[CHORE] 코드 품질 향상 도구 세팅
2 participants