Skip to content

[Refactor/#157] 개발/운영 서버 분리 - #158

Merged
jyvnee merged 8 commits into
developfrom
refactor/#157/dev-prod-server
Jul 21, 2026
Merged

[Refactor/#157] 개발/운영 서버 분리#158
jyvnee merged 8 commits into
developfrom
refactor/#157/dev-prod-server

Conversation

@jyvnee

@jyvnee jyvnee commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Related issue 🛠️

Work Description ✏️

  • dev/prod 서버 환경을 product flavor로 분리했습니다.
  • dev flavor는 poti.dev.base.url, prod flavor는 poti.prod.base.url을 사용하도록 변경했습니다.
  • dev 빌드에 applicationIdSuffix = ".dev"와 versionNameSuffix = "-dev"를 추가해 prod 앱과 구분되도록 했습니다.
  • CI fallback local.properties에 dev/prod base url 값을 모두 생성하도록 수정했습니다.
  • Compose BOM 업데이트에 따른 release 컴파일 오류를 수정했습니다.

Screenshot 📸

N/A

Uncompleted Tasks 😅

N/A

To Reviewers 📢

local.propertiespoti.dev.base.url, poti.prod.base.url 값 반영 필요합니다.
노션의 환경변수 페이지에 local.properties 값 적어놔서 그대로 복붙해서 사용하시면 될 것 같아욤

Summary by CodeRabbit

  • 버그 수정

    • 기록 목록과 파티 아티스트 선택 화면의 콘텐츠 여백 처리를 개선해 화면 하단 영역이 보다 일관되게 표시됩니다.
    • 파티 상세 화면의 레이아웃 호환성을 개선했습니다.
  • 개선 사항

    • Compose UI 구성 요소를 최신 버전으로 업데이트해 화면 구성과 동작의 안정성을 높였습니다.
    • 개발 및 운영 환경에 맞는 앱 설정 적용을 개선했습니다.

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

개발·운영 서버 URL을 product flavor별로 주입하도록 Gradle 설정을 변경하고, CI의 local.properties 생성을 이에 맞게 조정했습니다. Compose BOM과 Material3 버전 관리를 업데이트했으며, 일부 화면의 인셋 및 실험 API 설정을 변경했습니다.

Changes

서버 및 UI 설정 변경

Layer / File(s) Summary
개발·운영 서버 URL 주입
.github/workflows/pr-checker.yml, app/build.gradle.kts
local.properties에 개발·운영 URL을 기록하고, devprod flavor별 BASE_URL을 BuildConfig에 주입합니다.
Compose BOM 및 실험 API 설정
gradle/libs.versions.toml, app/src/main/java/com/poti/android/presentation/party/detail/component/PartyDetailContent.kt
Compose BOM 버전을 업데이트하고 Material3 버전을 BOM에서 관리하도록 변경했으며, ExperimentalLayoutApi 옵트인을 추가했습니다.
화면 콘텐츠 인셋 설정
app/src/main/java/com/poti/android/presentation/history/list/HistoryListScreen.kt, app/src/main/java/com/poti/android/presentation/party/create/PartyArtistSelectScreen.kt
두 화면의 Scaffold 콘텐츠 인셋을 WindowInsets(0.dp)로 설정했습니다.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • team-poti/POTI-ANDROID#132: Compose BOM 및 Material3 버전 설정을 변경한 PR로, 현재 의존성 버전 관리 변경과 직접 연관됩니다.

Suggested reviewers: doyeon0307

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning Compose BOM 업데이트, Insets 조정, 옵트인 추가 등은 #157의 서버 분리 범위를 넘어선 변경입니다. 서버 분리 관련 변경만 남기고 Compose BOM, Insets, 옵트인 수정은 별도 PR로 분리해 주세요.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed dev/prod flavor 분리와 base URL 구분, dev 앱 ID·버전 suffix 적용으로 #157의 서버 분리 요구를 충족합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed 제목이 개발/운영 서버 분리라는 주요 변경점을 간결하고 명확하게 요약합니다.
Description check ✅ Passed 필수 섹션이 모두 채워져 있고 관련 이슈, 작업 내용, 스크린샷, 검토자 안내까지 포함되어 템플릿을 충족합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/#157/dev-prod-server

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown

Ktlint check passed.

Run: https://github.com/team-poti/POTI-ANDROID/actions/runs/29750231505

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/build.gradle.kts`:
- Around line 18-24: Update requiredLocalProperty so it explicitly loads values
from the project’s local.properties file instead of relying only on
properties[key]. Preserve the required-key validation while ensuring
local.properties values are available during configuration, and provide a safe
flavor-specific default or fallback where missing keys would otherwise fail
productFlavors evaluation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e5e5b1d0-a410-4537-8fcb-044614b40e4e

📥 Commits

Reviewing files that changed from the base of the PR and between e90fb17 and 97e388d.

📒 Files selected for processing (6)
  • .github/workflows/pr-checker.yml
  • app/build.gradle.kts
  • app/src/main/java/com/poti/android/presentation/history/list/HistoryListScreen.kt
  • app/src/main/java/com/poti/android/presentation/party/create/PartyArtistSelectScreen.kt
  • app/src/main/java/com/poti/android/presentation/party/detail/component/PartyDetailContent.kt
  • gradle/libs.versions.toml

Comment thread app/build.gradle.kts
Comment on lines +18 to +24
fun requiredLocalProperty(key: String): String =
requireNotNull(properties[key] as? String) {
"$key is required in local.properties"
}

fun buildConfigString(value: String): String = "\"$value\""

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# local.properties 값을 Gradle properties로 강제 주입하는 로직이 존재하는지 확인합니다.
rg -i 'local\.properties' -g '*.gradle*' -g '*.kts'

Repository: team-poti/POTI-ANDROID

Length of output: 160


local.properties를 직접 읽도록 구성해 주세요

현재 properties[key]만 쓰고 있어서, local.properties 값은 자동으로 들어오지 않습니다. 또한 productFlavors는 구성 단계에서 모두 평가되므로, 한 키라도 없으면 빌드가 바로 실패할 수 있습니다.
local.properties를 명시적으로 로드하거나, flavor별 기본값/대체값을 두는 쪽이 더 안전합니다.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/build.gradle.kts` around lines 18 - 24, Update requiredLocalProperty so
it explicitly loads values from the project’s local.properties file instead of
relying only on properties[key]. Preserve the required-key validation while
ensuring local.properties values are available during configuration, and provide
a safe flavor-specific default or fallback where missing keys would otherwise
fail productFlavors evaluation.

@jyvnee
jyvnee requested review from cmj7271 and doyeon0307 July 20, 2026 14:30

@doyeon0307 doyeon0307 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Image

@cmj7271 cmj7271 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

PR 내용은 아니지만.... 수정사항일거 같아서 남겼습니닷
수고하셨습니다~

Comment on lines 93 to 97
topBar = {
PotiHeaderPage(
onNavigationClick = onBackClick,
title = stringResource(uiState.titleRes),
onTrailingIconClick = onSwitchModeClick,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

p1: PotiHeaderPagemodifier = Modifier.statusBarsPadding() 추가해야할 것 같습니다.

WindowInsets()WindowInsets(0.dp) 차이 찾으려고 Preview 를 확인했는데, 상태바 패딩이 안된 상태였던거 같습니다.

Image

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

앱 실행 시에는 MainScreen의 최상위 Scaffold에서 받은 innerPadding을 각 NavGraph 화면 modifier로 전달하고 있어서, PotiHeaderPage 바깥 레이어에서 이미 status bar inset이 적용되고 있습니다.

앱 실행시켜 보면 상단 상태바만큼 제대로 패딩 적용되고 있습니다.

Image

WindowInsets()를 WindowInsets(0.dp)로 바꾼 이유는 composeBom 버전을 올리면서 인자가 하나 더 추가되어 모호성을 줄이고자 추가했습니다. 기본 composeBom 버전이 mateiral3랑 안 맞아 release 버전에서 빌드 컴파일이 깨질 가능성이 있어서 수정했습니다.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

아 그렇네요 친절하게 알려주셔서 감사합니다!

Comment on lines 68 to 73
topBar = {
PotiHeaderPage(
onNavigationClick = onPopBackStack,
title = stringResource(R.string.create_header_artist_search),
)
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

import com.poti.android.data.mock.UiMockData
import com.poti.android.domain.model.party.PartyDetail

@OptIn(ExperimentalLayoutApi::class)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

p3: UI 변경사항이 없어보이는데 추가된 이유가 있을까여?
진짜 몰라서 질문입니다

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

UI 변경 목적이라기보다는 FlowRow를 사용하고 있는데, 해당 API가 ExperimentalLayoutApi라 컴파일 경고를 명시적으로 처리하려고 추가했습니다.

@github-project-automation github-project-automation Bot moved this from To-do to In review in POTI-ANDROID Jul 21, 2026

@cmj7271 cmj7271 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

친절한 설명 감사합니다 수고하셨습니다

@jyvnee
jyvnee merged commit 06da0dd into develop Jul 21, 2026
3 of 4 checks passed
@jyvnee
jyvnee deleted the refactor/#157/dev-prod-server branch July 21, 2026 12:09
@github-project-automation github-project-automation Bot moved this from In review to Done in POTI-ANDROID Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Refactor] 개발/운영 서버 분리

3 participants