Skip to content

[RULE] BE-FLY-005 violations report #762

@github-actions

Description

@github-actions

왜 이 이슈가 열렸는지

  • BE-FLY-005 규칙과 연결된 위반 가능성을 추적하기 위해 생성된 이슈입니다.
  • 모드: runtime
  • 레벨: MUST
  • 규칙 이름: Index/unique constraint naming convention
  • 담당자: @chequer-io
  • 생성 시각: 2026-04-02T09:38:34.421Z

이 룰이 의미하는 것

  • BE-FLY-005가 기대하는 기준을 사용자 관점에서 다시 확인하기 위한 이슈입니다.
  • Index names use idx_{table}{columns}[suffix], unique index names use udx{table}{columns}[_suffix]. Remove internal underscores from column names (e.g. user_id -> userid)

감지 기준

  • 현재 raw 탐지 15건을 10개 예시로 묶어 정리했습니다.

지금 바로 알아야 할 점

  • 현재 단계에서는 사실 관계와 영향 범위를 먼저 확인해야 합니다.
  • backend/app/src/main/resources/db/migration/app/V1__init.sql 150-155행 구간에서 index "idx_party_profiles_type" must match "idx_party_profiles_partytype" (or "idx_party_profiles_partytype_<suffix>") 등을 포함한 연속 위반 후보 6건이 탐지되었습니다.
  • backend/app/src/main/resources/db/migration/app/V1__init.sql 158행 구간에서 index "uq_party_phone_numbers_primary" must match "udx_party_phone_numbers_partyid" (or "udx_party_phone_numbers_partyid_<suffix>") 패턴이 탐지되었습니다.
  • backend/app/src/main/resources/db/migration/app/V1__init.sql 161행 구간에서 index "uq_party_identifiers_primary" must match "udx_party_identifiers_partyid" (or "udx_party_identifiers_partyid_<suffix>") 패턴이 탐지되었습니다.
  • backend/app/src/main/resources/db/migration/app/V1__init.sql 164행 구간에서 index "uq_party_identifiers_country_type_value" must match "udx_party_identifiers_countrycode_idtype_normalizedvalue" (or "udx_party_identifiers_countrycode_idtype_normalizedvalue_<suffix>") 패턴이 탐지되었습니다.
  • backend/app/src/main/resources/db/migration/app/V1__init.sql 203행 구간에서 index "ux_users_party_id" must match "udx_users_partyid" (or "udx_users_partyid_<suffix>") 패턴이 탐지되었습니다.
  • 전체 JSON/Markdown 리포트 산출물도 함께 확인할 수 있습니다.

AI가 이번 단계에서 한 일

  • 이슈 본문 상단 요약과 전달용 초안을 준비했습니다.

이제 사람이 이어서 할 일

  • 실제 위반 여부와 후속 대응 방향을 검토합니다.

다음 액션

  • 담당 주체: 사람
  • 해야 할 일: 초안 내용을 검토하고 필요한 후속 작업을 결정합니다.
  • 판단 필요: 자동화 결과를 그대로 반영할지 추가 수정이 필요한지 확인합니다.
  • 검증 방법: 관련 변경사항과 남은 작업을 다시 검토합니다.

주요 위반 예시

파일 줄 범위 핵심 스니펫 비고
backend/app/src/main/resources/db/migration/app/V1__init.sql 150-155 index "idx_party_profiles_type" must match "idx_party_profiles_partytype" (or "idx_party_profiles_partytype_") 연속 위반 후보 6건
backend/app/src/main/resources/db/migration/app/V1__init.sql 158 index "uq_party_phone_numbers_primary" must match "udx_party_phone_numbers_partyid" (or "udx_party_phone_numbers_partyid_") 대표 예시 1건
backend/app/src/main/resources/db/migration/app/V1__init.sql 161 index "uq_party_identifiers_primary" must match "udx_party_identifiers_partyid" (or "udx_party_identifiers_partyid_") 대표 예시 1건
backend/app/src/main/resources/db/migration/app/V1__init.sql 164 index "uq_party_identifiers_country_type_value" must match "udx_party_identifiers_countrycode_idtype_normalizedvalue" (or "udx_party_identifiers_countrycode_idtype_normalizedvalue_") 대표 예시 1건
backend/app/src/main/resources/db/migration/app/V1__init.sql 203 index "ux_users_party_id" must match "udx_users_partyid" (or "udx_users_partyid_") 대표 예시 1건
backend/app/src/main/resources/db/migration/app/V1__init.sql 1168 index "idx_user_sessions_user_state_created_at" must match "idx_user_sessions_userid_sessionstate_createdat" (or "idx_user_sessions_userid_sessionstate_createdat_") 대표 예시 1건
backend/app/src/main/resources/db/migration/app/V1__init.sql 1171 index "idx_user_sessions_state_idle_absolute" must match "idx_user_sessions_sessionstate_idleexpiresat_absoluteexpiresat" (or "idx_user_sessions_sessionstate_idleexpiresat_absoluteexpiresat_") 대표 예시 1건
backend/deskpie/src/main/resources/db/migration/deskpie/V202603051200__deskpie_init.sql 76 index "idx_companies_party_id" must match "idx_companies_partyid" (or "idx_companies_partyid_") 대표 예시 1건
backend/deskpie/src/main/resources/db/migration/deskpie/V202603051200__deskpie_init.sql 114 index "idx_contacts_party_id" must match "idx_contacts_partyid" (or "idx_contacts_partyid_") 대표 예시 1건
backend/deskpie/src/main/resources/db/migration/deskpie/V202603051200__deskpie_init.sql 303 index "idx_contracting_parties_party_id" must match "idx_contracting_parties_partyid" (or "idx_contracting_parties_partyid_") 대표 예시 1건

🤖 rule-report-workflow

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions