Skip to content

[GAMSS-41] feat: Android 멀티모듈 기반 및 공통 아키텍처 구축#3

Merged
soyeonLee126 merged 35 commits into
developfrom
feature/setting-module
Jul 21, 2026
Merged

[GAMSS-41] feat: Android 멀티모듈 기반 및 공통 아키텍처 구축#3
soyeonLee126 merged 35 commits into
developfrom
feature/setting-module

Conversation

@seunghee17

@seunghee17 seunghee17 commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

작업 개요

멀티모듈 구조(app / domain / data / core:common / core:ui / feature:home)를 확립하고 의존성 방향을 정리했습니다.
Navigation3 기반 화면 이동, Retrofit/Hilt 기반 데이터 계층, Orbit 상태 관리 예시를 추가하고 Firebase Analytics·Crashlytics 및 실제 프로젝트 구조를 README에 반영했습니다.

Auth API와 Home 데이터는 아키텍처 흐름 검증을 위한 예시이며, 실제 서버 명세와 기능 구현에 맞춰 교체할 예정입니다.

작업 유형

  • feat: 새 기능
  • fix: 버그 수정
  • refactor: 리팩토링 (동작 변경 없음)
  • build: 빌드/의존성 설정
  • chore: 기타 (문서, 설정 등)
  • test: 테스트 추가/수정

변경 사항

모듈 구조

  • corecore:common, core:ui로 분리
  • feature:home 모듈 추가
  • app, domain, data, core, feature 간 의존성 방향 정리
  • 실제 멀티모듈 구조를 README에 반영

Navigation 및 UI

  • Navigation3 기반 Navigation 상태와 Navigator 추가
  • BottomBar 탭별 back stack 유지 구조 적용
  • 공용 GamssBottomBar 컴포넌트 추가
  • Home 화면을 feature:home으로 분리

데이터 계층

  • Retrofit, OkHttp, Kotlinx Serialization 기반 네트워크 설정 추가
  • Auth mock API를 통해 데이터 흐름 예시 구현
  • Hilt를 이용한 Network 및 Repository DI 구성
  • 실제 서버 주소와 API 명세는 확정 후 교체 예정

상태 관리

  • Home 화면에 Orbit 상태 관리 예시 적용
  • State, SideEffect, ViewModel 역할 분리
  • 현재 데이터와 로딩은 구조 확인을 위한 mock

기타

  • Firebase Analytics 및 Crashlytics 추가
  • CI에서 google-services.json 파일을 GOOGLE_SERVICES_JSON secret(base64)으로 복원하는 스텝 추가

관련 이슈

  • 해당없음

관련 작업 (Notion)

스크린샷 / 동작 화면

image

체크리스트

  • base 브랜치가 develop으로 설정되어 있다
  • 로컬 빌드 및 실행을 확인했다
  • 커밋 메시지가 컨벤션(feat:, fix: 등)을 따른다
  • 불필요한 로그/주석/디버그 코드를 제거했다
  • 리뷰어가 이해할 수 있도록 설명을 작성했다

리뷰 요청 사항

  • 모듈별 책임과 의존성 방향이 적절한지 확인 부탁드립니다.
  • Navigation3의 탭별 back stack 관리 방식이 적절한지 확인 부탁드립니다.
  • Auth mock을 통해 정의한 DTO, Repository, Domain 경계가 적절한지 확인 부탁드립니다.
  • ci.yml에 추가한 google-services.json 복원 스텝 확인 부탁드립니다. (repo secret으로 등록 완료)

- 탭별 back stack을 관리하는 NavigationState 추가
- 탭 재선택, 뒤로가기, 중복 key 처리를 담당하는 Navigator 추가
- Navigation3 ViewModelStore decorator 의존성 추가
@seunghee17
seunghee17 requested a review from soyeonLee126 as a code owner July 16, 2026 17:44
# Conflicts:
#	build.gradle.kts
#	gradle/libs.versions.toml
- develop 병합 후 Firebase 관련 종속성이 추가되면서 com.google.gms.google-services 플러그인이 app/google-services.json을 요구하는데, 이 파일은 .gitignore에 포함돼 저장소에 없어 CI의 build/lint/test가 전부 실패했음. GOOGLE_SERVICES_JSON repo secret(base64)을 디코드해 CI 실행 전 파일을 복원하는 스텝을 추가
- 파일 끝 개행 누락 11개 파일 (data, domain, feature:home)
- import 순서/wildcard import 정리 (NavigationState.kt, ExampleUnitTest.kt)
- NetworkModule.kt, HomeViewModel.kt의 TODO 주석에서 forbidden 마커 제거 (내용은 유지)
Comment thread core/ui/src/main/kotlin/com/gamss/android/core/ui/GamssBottomBar.kt Fixed
Comment thread feature/home/build.gradle.kts Outdated
Comment thread domain/src/main/kotlin/com/gamss/android/domain/model/AuthResponse.kt Outdated
Comment thread core/common/build.gradle.kts Outdated
Comment thread core/ui/build.gradle.kts Outdated
Comment thread app/src/main/kotlin/com/gamss/android/app/navigation/Navigator.kt Outdated
Comment thread domain/src/main/kotlin/com/gamss/android/domain/repository/AuthRepository.kt Outdated
Comment thread app/src/main/kotlin/com/gamss/android/app/navigation/GamssNavHost.kt Outdated
@theminjunchoi

Copy link
Copy Markdown

🙂

@seunghee17
seunghee17 requested a review from soyeonLee126 July 20, 2026 23:41

@soyeonLee126 soyeonLee126 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

고생하셨습니다.

@soyeonLee126
soyeonLee126 merged commit 1373d21 into develop Jul 21, 2026
5 checks passed
@soyeonLee126
soyeonLee126 deleted the feature/setting-module branch July 21, 2026 06:44
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.

4 participants