Skip to content

test(platform): MVI 계약 konsist 강제 + docs/convention/mvi.md 신설 #1801

Closed

Description

@OnlyReadOneBook

작업 유형

test — 테스트·검증·회귀 방지

주 담당 모듈

platform — Android 앱·CI·빌드·릴리스·저장소 운영

개요

MVI 계약을 konsist 로 강제하고 docs/convention/mvi.md 를 신설한다. 강제 없이 시작하면 반쪽 도입으로 파편화만 늘어난다 — 지금 onEvent 단일 진입점이 51개 중 1개인 상태가 그 증거다.

konsist 규칙

  • A. MviViewModel 상속체는 MutableStateFlow·MutableSharedFlow·Channel 을 선언하지 않는다. 별도 상태 홀더를 두면 전이가 reduce 밖으로 새고 베이스를 도입한 의미가 사라진다. Channel 금지는 refactor(setting): 남은 이벤트 스트림 2곳을 UiState·MVI로 전환하고 재유입을 막는다 #1502 가 세우려는 규칙과 같은 방향이므로 두 규칙을 하나로 합친다 — 따로 두면 나중에 서로를 덮는다.
  • B. feature/*/presentation 의 새 ViewModel 은 MviViewModel 을 상속한다. 전환 전 기존 49개는 allowlist 예외로 두고, 모듈 전환 이슈가 닫힐 때마다 목록에서 뺀다. 목록이 비면 규칙 B 의 예외도 함께 지운다.
  • C. Intent·ReducerEvent·Effect 는 sealed interface 이고 각 마커를 구현한다.

konsist 모듈에 이미 PresentationLayerDependencyKonsistTest 가 있으므로 신규 테스트 클래스로 나란히 둔다.

docs/convention/mvi.md

완료 조건

  • konsist 규칙 A·B·C 가 있고 :konsist:test 가 초록이다
  • allowlist 에 전환 전 ViewModel 49개가 등재돼 있고, 각 항목이 어느 전환 이슈에 속하는지 주석으로 표시돼 있다
  • docs/convention/mvi.md 가 있고 #1388 규약과의 관계가 적혀 있다

자식 이슈

No response

참고

konsist 초록이 «안 돌린» 결과였던 전례가 있다(#1657, #1614) — 규칙 추가 후 :konsist:test 가 실제로 실행됐는지 확인한다.

Activity

  1. added
    test테스트·검증·회귀 방지 작업
    area:platformCI·빌드·릴리스·저장소 운영 영역
    on Sep 3, 2026
  2. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 3, 2026
  3. github-actions commented on Sep 3, 2026

    @github-actions
    Contributor

    이 이슈를 맡은 PR 은 #1823 다 (base refactor/1800-mvi-base).

    base 가 기본 브랜치(develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에
    아무것도 표시하지 않는다. 본문에 Closes #N 이 있어도 마찬가지다 — 그 링크는 기본 브랜치를
    target 하는 PR 에서만 만들어진다.

    PR 이 닫히거나 머지되면 이 이슈의 pr-open 라벨은 다음 리컨사일에서 떨어진다.

  4. added 2 commits that reference this issue on Sep 3, 2026
  5. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:platformCI·빌드·릴리스·저장소 운영 영역test테스트·검증·회귀 방지 작업

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions