Conversation
Feat/#106 바텀시트 구현
There was a problem hiding this comment.
Copilot reviewed 7 out of 27 changed files in this pull request and generated no comments.
Files not reviewed (20)
- app/build.gradle.kts: Language not supported
- app/src/main/java/com/toyou/toyouandroid/data/UserDao.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/data/UserDatabase.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/data/UserEntity.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/data/home/dto/response/YesterdayCardResponse.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/data/home/service/HomeService.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/domain/home/repository/HomeRepository.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/model/YesterdayType.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/emotionstamp/HomeOptionFragment.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/HomeFragment.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/HomeViewModel.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/adapter/HomeBottomSheetAdapter.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/adapter/HomeBottomSheetCardDetailAdapter.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/mypage/MypageFragment.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/mypage/ProfileFragment.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/onboarding/SignupNicknameFragment.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/onboarding/SplashFragment.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/record/friend/FriendCardDetailFragment.kt: Language not supported
- app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/HomeViewModelFactory.kt: Language not supported
- app/src/main/res/layout/fragment_home.xml: Language not supported
Walkthrough이번 pull request는 Gradle 빌드 파일의 서명 구성과 버전명이 업데이트되었으며, 기존의 사용자 데이터 관련 DAO, 데이터베이스, 엔티티가 제거되었습니다. 대신 "YesterdayCard" 관련 새 데이터 클래스, 상수, API 메서드 및 Repository가 추가되어 해당 기능에 대한 데이터 흐름이 도입되었습니다. 또한 ViewModel, Fragment, Adapter 등이 새 데이터 모델을 반영하도록 수정되었으며, 레이아웃 파일 및 스타일, 문자열, CI/CD 워크플로우도 업데이트되었습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant UI as UI/Fragment
participant VM as HomeViewModel
participant Repo as HomeRepository
participant Service as HomeService
participant API as Server/API
UI->>VM: getYesterdayCard() 호출
VM->>Repo: getYesterdayCard() 호출
Repo->>Service: getCardYesterday() 호출
Service->>API: HTTP GET /diarycards/yesterday
API-->>Service: BaseResponse<YesterdayCardResponse> 전달
Service-->>Repo: 응답 전달
Repo-->>VM: YesterdayCard 데이터 반환
VM-->>UI: LiveData 업데이트 (yesterdayCards)
Possibly related PRs
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (13)
app/src/main/res/layout/item_yesterday_qa.xml (1)
1-42: 어제의 카드 Q&A 아이템 레이아웃 추가질문과 답변을 보여주는 새로운 레이아웃 파일이 추가되었습니다. ConstraintLayout을 사용하여 효율적인 UI 구조를 구현했습니다. 질문(question)과 답변(answer) TextView가 잘 정의되어 있으며, 답변은 LinearLayout 컨테이너 내에 배치되어 있습니다.
레이아웃의 구조가 명확하고, 스타일링이 일관되게 적용되었습니다. 질문과 답변이 시각적으로 구분되며, 적절한 여백(padding, margin)이 설정되어 있습니다.
개선 제안: 접근성 고려
접근성 향상을 위해 TextViews에 contentDescription 속성을 추가하는 것을 고려해 보세요.
<TextView android:id="@+id/question" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="요즘 어떻게 지내?" style="@style/gangwon8" android:textColor="@color/black" + android:contentDescription="질문" android:layout_marginTop="10dp"/> <TextView android:id="@+id/answer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="그냥 저냥.. 일하고 사랑하고 짜증도 내고.." style="@style/gangwon8" android:textColor="@color/black" + android:contentDescription="답변" />app/src/main/java/com/toyou/toyouandroid/presentation/fragment/mypage/MypageFragment.kt (1)
78-78: HomeRepository 인스턴스 생성 방식 검토 필요.HomeRepository 인스턴스가 파라미터 없이 직접 생성되고 있습니다. 이 접근 방식은 의존성 주입 패턴을 완전히 따르지 않아 단위 테스트가 어려울 수 있습니다.
의존성 주입 프레임워크(예: Dagger/Hilt)를 사용하거나, 팩토리 패턴을 통해 HomeRepository를 제공하는 것이 더 좋은 접근 방식일 수 있습니다.
app/src/main/res/layout/item_yesterday_option_three.xml (2)
13-13: 하드코딩된 텍스트 리소스 사용."요즘 어떻게 지내?"라는 텍스트가 하드코딩되어 있습니다. 다국어 지원과 유지보수를 위해 strings.xml 리소스 파일로 이동하는 것이 좋습니다.
- android:text="요즘 어떻게 지내?" + android:text="@string/yesterday_question_sample"
28-42: 반복되는 TextView 속성들.세 개의 TextView가 많은 속성을 공유하고 있습니다. 이를 스타일로 추출하여 코드 중복을 줄이는 것이 좋습니다.
styles.xml에 다음과 같은 스타일을 추가하고 각 TextView에 적용하는 것을 고려해보세요:
<style name="OptionTextView" parent="gangwon8"> <item name="android:background">@drawable/search_container</item> <item name="android:gravity">center</item> <item name="android:textColor">@color/black</item> <item name="android:ellipsize">none</item> <item name="android:singleLine">false</item> <item name="android:paddingVertical">8dp</item> <item name="android:maxLines">999</item> </style>그리고 각 TextView에서:
- style="@style/gangwon8" - android:background="@drawable/search_container" - android:gravity="center" - android:textColor="@color/black" - android:ellipsize="none" - android:singleLine="false" - android:paddingVertical="8dp" - android:maxLines="999" + style="@style/OptionTextView"Also applies to: 44-59, 61-76
app/src/main/res/layout/item_yesterday_option_two.xml (4)
13-13: 하드코딩된 텍스트 리소스 사용."요즘 어떻게 지내?"라는 텍스트가 하드코딩되어 있습니다. 다국어 지원과 유지보수를 위해 strings.xml 리소스 파일로 이동하는 것이 좋습니다.
- android:text="요즘 어떻게 지내?" + android:text="@string/yesterday_question_sample"
54-54: android:layout_marginLeft 대신 android:layout_marginStart 사용 권장.RTL(오른쪽에서 왼쪽) 언어 지원을 위해 marginLeft 대신 marginStart를 사용하는 것이 좋습니다.
- android:layout_marginLeft="20dp" + android:layout_marginStart="20dp"
20-20: 일관성 없는 ID 네이밍.item_yesterday_option_three.xml과 동일한 레이아웃 구조를 가지고 있지만, 여기서는 LinearLayout의 ID가 "choose_three_linear"로 되어 있습니다. 두 개의 옵션을 가진 레이아웃이므로 "choose_two_linear"로 변경하는 것이 더 일관성 있을 것입니다.
- android:id="@+id/choose_three_linear" + android:id="@+id/choose_two_linear"
32-32: 일관성 없는 ID 네이밍 (TextView).TextView의 ID도 동일한 문제가 있습니다. "choose_three_first_tv"와 "choose_three_second_tv"로 되어 있지만, 두 개의 옵션을 가진 레이아웃이므로 "choose_two_first_tv"와 "choose_two_second_tv"로 변경하는 것이 더 일관성 있을 것입니다.
- android:id="@+id/choose_three_first_tv" + android:id="@+id/choose_two_first_tv" - android:id="@+id/choose_three_second_tv" + android:id="@+id/choose_two_second_tv"Also applies to: 49-49
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/emotionstamp/HomeOptionFragment.kt (1)
61-61: HomeRepository 인스턴스 생성 방식 검토 필요.HomeRepository 인스턴스가 파라미터 없이 직접 생성되고 있습니다. 이 접근 방식은 의존성 주입 패턴을 완전히 따르지 않아 단위 테스트가 어려울 수 있습니다.
의존성 주입 프레임워크(예: Dagger/Hilt)를 사용하거나, 팩토리 패턴을 통해 HomeRepository를 제공하는 것이 더 좋은 접근 방식일 수 있습니다.
app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/HomeViewModelFactory.kt (1)
5-5: HomeViewModelFactory의 의존성 주입 업데이트가 적절합니다.
HomeViewModel에HomeRepository를 주입하기 위한 팩토리 클래스 수정이 잘 구현되었습니다. 다만,HomeOptionViewModel과 같이repository를 사용하지 않는 ViewModel도 있어 보이는데, 장기적으로는 모든 ViewModel 클래스가 일관된 의존성 패턴을 가지도록 리팩토링을 고려해 볼 수 있을 것 같습니다.의존성 주입 패턴을 일관되게 유지하기 위해, 나중에는
HomeOptionViewModel에도repository매개변수를 추가하거나, 각 ViewModel에 맞는 별도의 Factory를 만드는 것을 고려해 보세요.Also applies to: 12-13, 21-21
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/adapter/HomeBottomSheetCardDetailAdapter.kt (3)
12-12: [사용되지 않는 import 가능성]
Ytype1클래스가 코드 내에서 사용되지 않는다면 제거를 고려해 주세요. 불필요한 import는 코드를 복잡하게 만들 수 있습니다.
38-43: [getItemViewType 문자열 분기 사용]
질문 타입에 따른 뷰 타입 분기가 명확하나, 문자열 리터럴 대신 enum/상수화 등을 고려하면 유지보수에 유리할 수 있습니다.
159-165: [mapQuestionType 메서드 중복 가능성]
mapQuestionType이getItemViewType과 유사한 로직을 공유하므로, 중복된 분기를 하나의 메서드 또는 enum으로 합쳐 관리해 볼 수 있습니다.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (27)
app/build.gradle.kts(1 hunks)app/src/main/java/com/toyou/toyouandroid/data/UserDao.kt(0 hunks)app/src/main/java/com/toyou/toyouandroid/data/UserDatabase.kt(0 hunks)app/src/main/java/com/toyou/toyouandroid/data/UserEntity.kt(0 hunks)app/src/main/java/com/toyou/toyouandroid/data/home/dto/response/YesterdayCardResponse.kt(1 hunks)app/src/main/java/com/toyou/toyouandroid/data/home/service/HomeService.kt(2 hunks)app/src/main/java/com/toyou/toyouandroid/domain/home/repository/HomeRepository.kt(1 hunks)app/src/main/java/com/toyou/toyouandroid/model/YesterdayType.kt(1 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/emotionstamp/HomeOptionFragment.kt(2 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/HomeFragment.kt(6 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/HomeViewModel.kt(3 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/adapter/HomeBottomSheetAdapter.kt(2 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/adapter/HomeBottomSheetCardDetailAdapter.kt(2 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/mypage/MypageFragment.kt(2 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/mypage/ProfileFragment.kt(2 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/onboarding/SignupNicknameFragment.kt(2 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/onboarding/SplashFragment.kt(0 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/fragment/record/friend/FriendCardDetailFragment.kt(1 hunks)app/src/main/java/com/toyou/toyouandroid/presentation/viewmodel/HomeViewModelFactory.kt(1 hunks)app/src/main/res/layout/fragment_home.xml(1 hunks)app/src/main/res/layout/fragment_notice.xml(2 hunks)app/src/main/res/layout/item_home_bottom_sheet.xml(7 hunks)app/src/main/res/layout/item_yesterday_option_three.xml(1 hunks)app/src/main/res/layout/item_yesterday_option_two.xml(1 hunks)app/src/main/res/layout/item_yesterday_qa.xml(1 hunks)app/src/main/res/values/font_styles.xml(1 hunks)app/src/main/res/values/strings.xml(1 hunks)
💤 Files with no reviewable changes (4)
- app/src/main/java/com/toyou/toyouandroid/data/UserDao.kt
- app/src/main/java/com/toyou/toyouandroid/data/UserDatabase.kt
- app/src/main/java/com/toyou/toyouandroid/presentation/fragment/onboarding/SplashFragment.kt
- app/src/main/java/com/toyou/toyouandroid/data/UserEntity.kt
🧰 Additional context used
🧬 Code Definitions (1)
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/HomeViewModel.kt (1)
app/src/main/java/com/toyou/toyouandroid/domain/home/repository/HomeRepository.kt (1)
getYesterdayCard(13-13)
🪛 detekt (1.23.7)
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/HomeViewModel.kt
[warning] 86-86: The caught exception is swallowed. The original exception could be lost.
(detekt.exceptions.SwallowedException)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Continuous Deployment
🔇 Additional comments (70)
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/record/friend/FriendCardDetailFragment.kt (1)
82-82: 로깅 태그 수정이 적절합니다.Timber 로깅 태그를 클래스 이름과 일치하도록 변경한 것은 좋은 실천입니다. 이렇게 하면 로그를 필터링하고 식별하기가 더 쉬워져 디버깅 경험이 향상됩니다.
app/src/main/res/values/font_styles.xml (1)
3-9: 새 스타일gangwon8추가 검토
새로운 스타일인gangwon8가 문제없이 추가되었습니다. 폰트 스타일, 폰트 패밀리, 폰트 무게, 텍스트 크기가 기존 스타일과 일관되게 작성되어 있으며, 추가 후 UI에 제대로 적용될 것으로 예상됩니다.app/src/main/res/values/strings.xml (1)
108-108: 앱 버전 문자열 업데이트 검토
mypage_version_name문자열이 "1.0.10"에서 "1.1.0"으로 변경되어, 앱의 새로운 릴리스 버전을 올바르게 반영하고 있습니다.app/src/main/java/com/toyou/toyouandroid/model/YesterdayType.kt (1)
1-6: 새 상수 파일YesterdayType.kt검토
해당 파일에서 네 개의 상수가 올바르게 선언되었습니다. 상수명과 값이 명확하며, 이후 "Yesterday Card" 관련 API 응답 처리에 문제없이 사용될 것으로 보입니다.app/build.gradle.kts (1)
29-31: 버전 이름 업데이트 확인
defaultConfig블록 내에서versionName이 "1.1.0"으로 변경되어, 새로운 릴리스 버전이 올바르게 반영되었습니다. 다른 빌드 설정과도 일관되게 구성되어 있습니다.app/src/main/res/layout/fragment_notice.xml (2)
57-59: 친구 요청 제목 텍스트 스타일 변경 검토
tv_title_friend_request의 스타일이@style/sc_r15로 변경되었습니다. 이번 변경은 텍스트의 시각적 강조를 개선할 것으로 보이며, 기존 UI 디자인과 잘 어우러집니다.
92-98: 전체 알림 제목 텍스트 스타일 변경 검토
tv_title_entire_notice의 스타일도@style/sc_r15로 변경되어, UI 전체의 디자인 일관성을 유지하는 데 기여하고 있습니다.app/src/main/java/com/toyou/toyouandroid/data/home/service/HomeService.kt (2)
3-4: YesterdayCardResponse 모델 임포트 추가새로운 데이터 모델 YesterdayCardResponse를 임포트하여 어제의 카드 기능을 위한 응답 타입을 정의했습니다. 기존 코드 구조와 일관성 있게 작성되었습니다.
17-19: 어제의 카드 API 엔드포인트 추가어제 작성된 카드를 조회하는 새로운 API 엔드포인트를 추가했습니다. suspend 함수로 정의되어 코루틴과 함께 비동기적으로 사용할 수 있습니다. 기존 API 패턴과 일치하는 구현입니다.
app/src/main/res/layout/fragment_home.xml (1)
205-205: 사용자 메시지 업데이트"아직 준비중인 기능이에요"에서 "아직 친구들이 일기카드를\n작성하지 않았어요"로 텍스트를 변경했습니다. 이는 어제의 카드 기능 추가와 일관성 있게 사용자에게 더 구체적인 메시지를 제공합니다. 개행 문자(\n)를 추가하여 가독성을 높였습니다.
app/src/main/java/com/toyou/toyouandroid/domain/home/repository/HomeRepository.kt (3)
3-3: YesterdayCardResponse 임포트 추가새로운 어제의 카드 기능을 위한 응답 모델 임포트를 추가했습니다.
6-6: BaseResponse 임포트 추가네트워크 응답 래퍼 클래스인 BaseResponse 임포트를 추가했습니다.
13-13: 어제의 카드 조회 메소드 추가HomeService의 getCardYesterday() API를 호출하는 getYesterdayCard() 메소드를 추가했습니다. 기존 코드 스타일과 일관되게 작성되었으며, 구현이 간결합니다.
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/mypage/MypageFragment.kt (2)
24-24: HomeRepository 의존성 추가.HomeViewModel에 HomeRepository를 주입하기 위한 import가 추가되었습니다. 이는 아키텍처 변경의 일부로 적절합니다.
82-82: HomeViewModelFactory 생성자 파라미터 업데이트.HomeViewModelFactory 생성자에 homeRepository가 추가되었습니다. 이 변경은 AI 요약에서 언급된 데이터 모델과 API 변경에 맞춰 적절하게 수정되었습니다.
app/src/main/res/layout/item_yesterday_option_three.xml (1)
1-81: 새로운 레이아웃 파일이 잘 구성되었습니다."어제의 카드" 기능을 위한 세 가지 선택지를 표시하는 레이아웃이 잘 구현되었습니다. 레이아웃 구조와 스타일링이 일관되게 적용되었습니다.
app/src/main/res/layout/item_yesterday_option_two.xml (1)
1-65: 새로운 레이아웃 파일이 잘 구성되었습니다."어제의 카드" 기능을 위한 두 가지 선택지를 표시하는 레이아웃이 잘 구현되었습니다. 레이아웃 구조와 스타일링이 일관되게 적용되었습니다.
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/emotionstamp/HomeOptionFragment.kt (2)
22-22: HomeRepository 의존성 추가.HomeViewModel에 HomeRepository를 주입하기 위한 import가 추가되었습니다. 이는 아키텍처 변경의 일부로 적절합니다.
66-67: HomeViewModelFactory 생성자 파라미터 업데이트.HomeViewModelFactory 생성자에 homeRepository가 추가되었습니다. 이 변경은 AI 요약에서 언급된 데이터 모델과 API 변경에 맞춰 적절하게 수정되었습니다.
Also applies to: 73-74
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/mypage/ProfileFragment.kt (1)
23-23: HomeRepository 의존성 추가 구현이 적절합니다.
HomeRepository를 가져와ViewModelFactory에 전달하는 방식이 일관적으로 구현되었습니다. 이는 다른 프래그먼트들과의 일관성을 유지하는 좋은 패턴입니다.Also applies to: 67-67, 73-73
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/onboarding/SignupNicknameFragment.kt (1)
19-19: SignupNicknameFragment에 HomeRepository 주입이 적절하게 구현되었습니다.회원가입 화면에서
HomeRepository를 사용하는 것이 처음에는 의문스러울 수 있지만,HomeViewModel이 여러 프래그먼트에서 공유되는 구조상 일관된 의존성 주입 패턴을 따르고 있어 적절합니다.Also applies to: 51-51, 55-55
app/src/main/java/com/toyou/toyouandroid/data/home/dto/response/YesterdayCardResponse.kt (1)
1-29: YesterdayCard 관련 데이터 모델이 잘 구현되었습니다.전날 카드 기능을 위한 데이터 클래스들이 명확하게 정의되어 있으며, JSON 직렬화를 위한
@SerializedName어노테이션이 적절히 사용되었습니다. 데이터 구조가 계층적으로 잘 설계되어 있습니다.app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/adapter/HomeBottomSheetAdapter.kt (8)
3-3: 패키지 및 리소스 임포트 변경기존 임포트에 추가된
android.graphics.Color와R리소스는 감정 상태에 따른 UI 색상 처리를 위해 추가되었습니다.Also applies to: 8-8
10-10: 데이터 모델 변경
DiaryCard에서YesterdayCard로 변경되었습니다. 이는 앱 전체의 데이터 모델 변경에 따른 적절한 수정입니다.
14-14: 어댑터 생성자 파라미터 타입 변경
MutableList<DiaryCard>에서MutableList<YesterdayCard>로 변경되어 새로운 데이터 모델과 일관성을 유지합니다.
35-35: 바인딩 메소드 파라미터 타입 변경
bind메소드의 파라미터 타입이DiaryCard에서YesterdayCard로 변경되었습니다.
38-38: 어댑터 데이터 설정 변경
HomeBottomSheetCardDetailAdapter에YesterdayCard아이템을 전달하도록 수정되었습니다.
43-43: 데이터 바인딩 및 클릭 이벤트 처리 수정
item을 바인딩하고 클릭 이벤트에서cardId를 정수로 변환하여 전달하도록 수정되었습니다. 데이터 타입 변경에 맞게 적절히 수정되었습니다.Also applies to: 48-49
51-56: UI 요소 텍스트 설정 추가
YesterdayCard의cardContent속성을 활용하여 UI 요소의 텍스트 값을 설정하는 코드가 추가되었습니다. 이는 사용자에게 더 자세한 정보를 제공하기 위한 적절한 개선입니다.
57-82:Details
✅ Verification successful
감정 상태에 따른 UI 처리 추가
감정 상태(
emotion)에 따라 이미지 리소스와 배경색을 다르게 설정하는 코드가 추가되었습니다. 사용자 경험을 향상시키는 좋은 개선점입니다.주석에 "임의로 감정이 null일때..일수는 없지만"이라고 명시되어 있는데, 실제로 null 값이 전달되지 않도록 상위 로직에서 확인하는 것이 좋습니다.
🏁 Script executed:
#!/bin/bash # YesterdayCard에서 emotion이 null인 경우를 처리하는 코드가 있는지 확인 rg -A 2 $'emotion[^a-zA-Z0-9].*null' --glob "*.kt"Length of output: 1931
업데이트된 감정 처리 로직 확인 – 상위 로직의 null 처리 검증
- 현재 HomeBottomSheetAdapter에서는 감정 상태에 따라 이미지와 배경색을 다르게 적용하며,
else분기를 통해 예상치 못한 입력(예: null)을 안전하게 처리하고 있습니다.- 검증 결과, 상위 로직(HomeFragment, NoticeFragment, HomeOptionFragment 등)에서 이미 감정 값이 null이 전달되지 않도록 확인하는 코드가 구현되어 있음을 확인했습니다.
- 다만, null 값이 전혀 발생하지 않도록 상위 로직에서의 검증이 확실하게 이루어지고 있는지 다시 한 번 확인해주시기 바랍니다.
app/src/main/res/layout/item_home_bottom_sheet.xml (7)
10-10: 데이터 바인딩 변수 타입 변경
item_home_bottom_sheet변수의 타입이DiaryCard에서YesterdayCard로 변경되었습니다. 이는 앱 전체의 데이터 모델 변경에 따른 필요한 수정입니다.
22-22: 카드뷰 레이아웃 높이 변경
CardView의 높이가match_parent에서 고정 값260dp로 변경되었습니다. 이는 일관된 UI 레이아웃을 제공하기 위한 변경으로 보입니다.
34-35: RelativeLayout 마진 수정
RelativeLayout의 상단 마진이 감소되고 시작 및 끝 마진이 제거되었습니다. 이는 컨텐츠의 간격을 최적화하기 위한 UI 조정입니다.
39-43: 이미지뷰 크기 및 마진 변경
ImageView의 크기가 크게 감소하고 마진 값이 변경되었습니다. 이는 전체적인 디자인 개선 작업의 일부로 보입니다.
51-52: 텍스트뷰 마진 조정
item_title과item_detail텍스트뷰의 시작 마진이 미세 조정되었습니다. 레이아웃의 일관성을 높이기 위한 변경입니다.Also applies to: 63-64
74-77: RecyclerView 마진 조정
RecyclerView의 마진 값이 조정되었습니다. 이는 내부 요소들의 배치를 최적화하기 위한 변경으로 보입니다.
103-103: 친구 닉네임 텍스트 속성 및 제약 변경
friend_nickname텍스트뷰에 기본 텍스트 "닉네임"이 추가되었고, 제약 참조가 변경되었습니다. 이는 UI의 기본 상태를 개선하고 제약 조건을 명확히 하기 위한 변경입니다.Also applies to: 106-106
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/HomeViewModel.kt (3)
6-7: 필요 패키지 임포트 추가
viewModelScope,YesterdayCard,HomeRepository, 코루틴 관련 임포트가 추가되었습니다. 이는 새로운 비동기 데이터 처리 방식을 위한 필수 요소입니다.Also applies to: 12-14, 16-16, 21-21
23-24: 생성자 매개변수 변경
HomeRepository가 생성자 매개변수로 추가되었습니다. 이는 의존성 주입 패턴을 따르며, 데이터 접근 계층과 뷰모델 계층을 분리하는 좋은 아키텍처 접근 방식입니다.
47-48: 어제의 카드 데이터를 위한 LiveData 추가
_yesterdayCardsMutableLiveData와 해당 접근자가 추가되었습니다. 이는 UI 계층에서 데이터 변경을 관찰할 수 있도록 하는 좋은 패턴입니다.app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/HomeFragment.kt (6)
22-23: 데이터 모델 및 리포지토리 임포트 변경
DiaryCard에서YesterdayCard로 변경되고HomeRepository임포트가 추가되었습니다. 이는 앱 전체의 데이터 모델 변경과 리포지토리 패턴 적용에 따른 필요한 수정입니다.Also applies to: 30-31
81-81: HomeRepository 인스턴스 생성
HomeRepository인스턴스가 초기화되었습니다. 이는 뷰모델에 데이터 액세스 레이어를 제공하기 위한 적절한 추가입니다.
91-91: HomeViewModelFactory 파라미터 변경
HomeViewModelFactory에homeRepository가 추가되었습니다. 이는 뷰모델 생성자 변경에 맞춘 필요한 수정입니다.
142-144: 어제의 카드 데이터 로딩 메소드 호출
viewModel.getYesterdayCard()를 호출하여 어제의 카드 데이터를 로드합니다. 코드 주석으로 정확한 목적을 명시한 것은 좋은 관행입니다.
203-211: LiveData 옵저버 변경
diaryCards대신yesterdayCards를 관찰하고, 데이터 존재 여부에 따라 UI 가시성을 조정합니다. 이는 데이터 모델 변경에 따른 필요한 수정입니다.
319-319: RecyclerView 설정 메소드 파라미터 타입 변경
setupRecyclerView메소드의 파라미터 타입이List<DiaryCard>에서List<YesterdayCard>로 변경되었습니다. 이는 데이터 모델 변경에 맞춘 필요한 수정입니다.app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/adapter/HomeBottomSheetCardDetailAdapter.kt (24)
9-10: [Import 관련 추가]
YesterdayCard와YesterdayCardQuestion을 import하여 새로운 DTO에 대응하기 위한 변경입니다. 별다른 문제는 없어 보이며, 어댑터 내 로직과 잘 연동됩니다.
19-21: [어댑터 상태 변수 추가]
questionList,emotionMap,questionToCardMap를 통해 카드-질문-감정 정보를 분리해 두어 가독성이 향상되었습니다. 별다른 문제 없이 유용하게 보입니다.
23-35: [setCards 메서드 구현 점검]
newCards에서 질문 목록, 감정, 카드-질문 매핑을 각각 추출하고notifyDataSetChanged()로 갱신하는 로직이 적절해 보입니다. 다만, 데이터 규모가 커질 경우 전체 갱신 대신 부분 갱신을 고려해볼 수 있습니다.
46-46: [onCreateViewHolder 오버라이드 확인]
onCreateViewHolder메서드가 정상적으로 정의되어 있습니다. 현재 방식에는 별다른 문제점이 없어 보입니다.
49-49: [viewType=1,2 분기 처리]
LONG_ANSWER,SHORT_ANSWER타입에 대응하는 레이아웃을 정상적으로 inflate하고 있습니다.
51-51: [새 레이아웃 리소스 적용 (item_yesterday_qa)]
R.layout.item_yesterday_qa로 변경된 점 잘 확인했습니다. 문제 없어 보입니다.
55-55: [viewType=3 분기 처리]
OPTIONAL타입에 대한 뷰홀더 분기 처리가 간결하게 구성되어 있습니다.
57-57: [새 레이아웃 리소스 적용 (item_yesterday_option_two)]
두 개의 선택지를 가진 옵션 레이아웃으로 보입니다. 문제 없어 보입니다.
63-63: [새 레이아웃 리소스 적용 (item_yesterday_option_three)]
세 개의 선택지를 가진 옵션 레이아웃으로 보입니다. 문제 없어 보입니다.
71-78: [onBindViewHolder 내 cardId 및 emotion 연동 확인]
questionList[position]에서 질문 ID를 얻고,questionToCardMap와emotionMap을 통해 카드별 감정을 가져오는 구조가 잘 잡혀 있습니다. 감정이 없을 경우 "ANGRY"로 처리하는 기본값 또한 합리적으로 보입니다.
79-82: [item.options!!의 NPE 가능성 확인 요청 (LONG/SHORT ANSWER)]
옵션 배열을 강제로 언래핑(!!)하고 있어,item.options가 null인 경우 런타임 오류가 발생할 수 있습니다. 호출부 혹은 데이터 로더에서 null이 발생하지 않도록 보장하는지 확인해 주세요.
84-88: [item.options!!의 NPE 가능성 확인 요청 (OPTIONAL 2개 옵션)]
두 개 옵션을 사용하는OPTIONAL유형에서도 동일하게 강제 언래핑이 이루어지고 있습니다. 데이터가 항상 null이 아님을 보장하거나, 안전한 처리로 방어 로직을 강화해 주세요.
91-94: [item.options!!의 NPE 가능성 확인 요청 (기타 ELSE 분기)]
3개 이상의 유형(ELSE)에서도item.options!!를 사용하는 동일한 로직이 존재합니다. 예외 발생 가능성을 고려해야 하며, 데이터가 누락되지 않는지 재확인 부탁드립니다.
99-100: [getItemCount 구현]
questionList.size를 반환하는 간단한 메서드로, 별다른 문제는 없어 보입니다.
101-101: [MultiViewHolderPreview1 내부 클래스 선언]
텍스트 형태의 질문/답변을 단순 바인딩하는 뷰홀더로 보이며, 현재 변경 사항에서 이상은 없어 보입니다.
111-111: [MultiViewHolderPreview3 내부 클래스 선언]
두 옵션을 처리하는 뷰홀더를 추가한 것으로 보입니다. 별다른 문제 없이 잘 구성되어 있습니다.
116-116: [bind 메서드에 emotion 파라미터 추가]
MultiViewHolderPreview3의bind함수에서 감정을 활용할 수 있게 된 점이 자연스럽습니다. 구현 구조에 문제 없어 보입니다.
121-122: [applyEmotionStyle 호출 시 NPE 가능성]
item.options[0],item.options[1]강제 언래핑 사용은 NPE가 발생할 여지를 남길 수 있습니다. 데이터가 항상 유효함을 보장하는지 점검해 보세요.
126-126: [MultiViewHolderPreview4 내부 클래스 선언]
세 개의 옵션을 표시하는 뷰홀더 구조이며, 변경 사항 상 특별한 이슈는 없어 보입니다.
132-132: [bind 메서드에 emotion 파라미터 추가 (MultiViewHolderPreview4)]
OPTIONAL유형이 3개 옵션을 가질 때 감정을 반영할 수 있게 되어 있습니다. 문제 없어 보입니다.
138-141: [applyEmotionStyle 호출 시 NPE 가능성 (3개 옵션)]
item.options!!에서 여러 인덱스를 참조하므로, 데이터 불일치 시 런타임 예외 위험이 있습니다. 데이터 수를 사전에 검증하거나 예외 처리를 권장드립니다.
144-152: [applyEmotionStyle - 감정별 배경 처리 로직]
감정 코드에 따라 다른 배경 리소스를 적용하는 부분은 가독성이 좋습니다. 정의된 감정 외 문자열이 들어올 때의 처리(search_container)도 설정되어 있어 문제 없어 보입니다.
154-155: [applyEmotionStyle - 선택되지 않은 경우 처리]
옵션이 선택되지 않았을 시search_container로 설정하는 처리 방식은 명확합니다.
167-167: [마무리 중괄호 라인]
파일 종료 시점의 중괄호 변경 사항입니다. 특별한 이슈는 없어 보입니다.
app/src/main/java/com/toyou/toyouandroid/presentation/fragment/home/HomeViewModel.kt
Show resolved
Hide resolved
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/android_cd.yml (1)
68-69: 디버그 단계 주의
Debug Local Properties단계에서local.properties파일의 내용을 출력하도록 변경되었습니다. 해당 파일에 민감 정보가 포함될 수 있으므로, QA 검증 후에는 이 단계의 실행을 제한하거나 제거하는 방안을 고려해 주세요.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/android_cd.yml(3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Continuous Deployment
🔇 Additional comments (5)
.github/workflows/android_cd.yml (5)
6-6: 브랜치 트리거 업데이트 확인
push 이벤트의 브랜치가release/1.1.0로 변경되어, 해당 CI/CD 파이프라인이 새로운 릴리즈 조건에 맞게 동작하도록 수정되었습니다.
18-18: 새로운 환경변수 추가 확인
LOCAL_PROPERTIES_CONTENTS환경변수가 추가되어, local.properties 파일 생성 시 필요한 설정값을 제공하고 있습니다.
24-25: Checkout 단계 개선
with절에ref: ${{ github.head_ref }}가 추가되어 PR이 열릴 때 올바른 브랜치의 코드를 체크아웃할 수 있게 되었습니다.
64-65: 로컬 프로퍼티 설정 방식 개선
$LOCAL_PROPERTIES_CONTENTS를 사용하여local.properties파일을 생성하고,SIGNED_STORE_FILE=keystore.jks를 추가하는 방식이 의도한 대로 동작할 것으로 보입니다.
95-95: Firebase 앱 배포 그룹 업데이트
배포 단계의groups값이seungwon으로 변경되어, 올바른 QA 그룹에 APK가 배포되도록 설정되었습니다.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/android_cd.yml (1)
67-70: 디버그 단계 도입 주의
"Debug Local Properties" 단계가 추가되어local.properties파일의 내용이 출력됩니다. 이는 디버깅에는 유용하지만, 만약 파일 내에 민감한 정보가 있다면 CI 로그를 통해 노출될 위험이 있으므로, 필요시 해당 단계의 사용 여부 및 출력 내용을 재검토하시기 바랍니다.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/android_cd.yml(4 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Continuous Deployment
🔇 Additional comments (6)
.github/workflows/android_cd.yml (6)
4-7: 브랜치 트리거 업데이트 확인
푸시 이벤트에 대해 이제 "release/1.1.0" 브랜치에서만 워크플로우가 실행되도록 변경되었습니다. 이는 새 릴리즈 정책 및 CI/CD 파이프라인 자동화를 위해 적절해 보입니다.
16-19: 환경 변수 추가 검토
새로운 환경 변수LOCAL_PROPERTIES_CONTENTS가 추가되어 CI/CD 과정 중 동적으로 로컬 프로퍼티 파일을 구성할 수 있게 되었습니다. 이 변수에 민감한 정보가 포함된다면, 접근 제한 및 로그 노출 관리에 유의해 주세요.
22-26: PR 브랜치 체크아웃 개선
"Checkout code" 단계에with: ref: ${{ github.head_ref }}가 추가되어 PR이 생성된 브랜치가 정확하게 체크아웃됩니다. 이는 올바른 빌드 환경을 보장하는데 도움이 됩니다.
52-54: 키스토어 파일명 수정 검토
"Decode And Save Keystore Base64" 단계에서 출력 파일 이름이key.jks로 변경되었습니다. 빌드 설정 및 관련 문서에서 이 변경사항이 반영되었는지 확인 바랍니다.
61-66: 로컬 프로퍼티 설정 업데이트
"Add Local Properties" 단계에서$LOCAL_PROPERTIES_CONTENTS를 이용하여local.properties파일을 생성하고,SIGNED_STORE_FILE=key.jks항목을 추가하는 방식으로 수정되었습니다. 이 방식은 키스토어 파일 정보를 빌드 시 참조할 수 있도록 해주어 적절해 보입니다.
89-97: Firebase App Distribution 그룹 변경 확인
"Upload to Firebase App Distribution" 단계에서 테스트 그룹이seungwon으로 설정되었습니다. 이 수정이 의도한 QA 그룹과 일치하는지, 실제 배포 대상이 정확한지 최종 확인 바랍니다.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/android_cd.yml (1)
68-69: 디버그 스텝 주의
local.properties파일의 내용을 출력하는 디버그 스텝이 추가되었습니다. 이 파일에 민감한 정보가 포함될 수 있으므로, QA나 내부 디버깅이 완료된 후에는 해당 스텝을 제거하거나 접근 제한 설정을 검토하는 것이 좋겠습니다.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/android_cd.yml(4 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Continuous Deployment
🔇 Additional comments (8)
.github/workflows/android_cd.yml (8)
6-6: 브랜치 트리거 변경 확인
push 이벤트의 브랜치가 이제release/1.1.0으로 설정되었습니다. 이 변경이 릴리스 전략과 정확히 일치하는지 검토 바랍니다.
17-18: 새 환경 변수 추가 확인
LOCAL_PROPERTIES_CONTENTS환경 변수가 추가되어, 이후 로컬 프로퍼티 파일 생성에 사용됩니다. 시크릿 값이 올바르게 설정 및 관리되고 있는지 확인해 주세요.
24-25: 체크아웃 단계 개선
actions/checkout스텝에with: ref: ${{ github.head_ref }}를 추가하여 PR 브랜치를 정확하게 체크아웃합니다. 해당 변경사항은 올바르게 적용되었습니다.
52-53: 키 저장소 파일 이름 업데이트
Keystore Base64 디코딩 결과가app/key.jks로 저장되도록 변경되었습니다. 이 수정이app/build.gradle.kts파일의 서명 구성 설정과 일치하는지 재확인해 주세요.
63-65: 로컬 프로퍼티 구성 변경
LOCAL_PROPERTIES_CONTENTS를 사용하여local.properties파일이 생성되고,SIGNED_STORE_FILE=key.jks가 추가되었습니다. 이 방식으로 서명 관련 설정을 통합 관리할 수 있어 좋습니다.
75-80: AAB 아티팩트 업로드 경로 확인
AAB 파일이app/build/outputs/bundle/debug/app-debug.aab경로에서 업로드됩니다. 파일 경로와 이름이 정확히 생성되는지 최종 확인 바랍니다.
82-87: APK 아티팩트 업로드 단계 점검
APK 파일이app/build/outputs/apk/debug/app-debug.apk경로에서 업로드되도록 설정되어 있습니다. 설정이 요구사항에 맞게 반영되었는지 확인해 주세요.
89-97: Firebase App Distribution 설정 업데이트
Firebase 배포 단계에서groups파라미터가seungwon으로 변경되었으며, 업로드할 APK 파일 경로가 지정되었습니다. 이 설정이 QA 및 최종 배포 절차와 일치하는지 검토 바랍니다.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/android_cd.yml (1)
67-70: 디버그 단계 주의
디버깅을 위해local.properties파일의 내용을 출력하는 스텝이 추가되었습니다. 이 과정에서 민감한 정보가 로그에 노출될 가능성이 있으므로, 실제 배포 시에는 해당 스텝을 제거하거나 조건부로 실행하도록 조치하는 것을 권장합니다.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/android_cd.yml(4 hunks)
🔇 Additional comments (9)
.github/workflows/android_cd.yml (9)
3-10: 브랜치 트리거 업데이트 확인
푸시 이벤트의 브랜치가 이제 release/1.1.0으로 변경되었습니다. 이는 새로운 버전 관리 정책 및 CI/CD 파이프라인과 일치하므로 적절해 보입니다.
16-19: 새로운 환경 변수 추가 확인
env섹션에LOCAL_PROPERTIES_CONTENTS환경 변수가 추가되었습니다. 서명 파일 등의 추가 설정에 필요한 정보가 올바르게 전달되고 있는지 확인해주세요.
22-26: Checkout 코드 단계 업데이트
actions/checkout스텝에with블록을 통해ref: ${{ github.head_ref }}를 지정함으로써 PR 생성 시 해당 브랜치로 체크아웃 되도록 처리한 점이 적절합니다.
51-54: 키스토어 파일 이름 수정 확인
Base64 디코딩 결과를app/key.jks에 저장하도록 변경되었습니다. 이는 빌드 스크립트의 서명 관련 수정과 일치하며, 의도한 대로 동작할 것으로 보입니다.
62-66: Local Properties 설정 업데이트
Local properties 파일을 생성할 때, 환경 변수LOCAL_PROPERTIES_CONTENTS의 내용을 기록한 후SIGNED_STORE_FILE=key.jks를 추가하도록 수정되었습니다. 서명 관련 구성과 일치하며, 문제 없어 보입니다.
71-74: 릴리즈 APK 빌드 단계 검토
릴리즈 APK를 빌드하는 단계가 정상적으로 구성되어 있습니다. 추가적인 변경 없이 기존 빌드 프로세스를 그대로 유지하는 것으로 보입니다.
75-81: AAB 아티팩트 업로드 단계 확인
AAB 파일 업로드 스텝이 잘 구성되어 있으며, 경로 및 이름 지정도 올바르게 처리되고 있습니다.
82-88: APK 아티팩트 업로드 단계 확인
APK 파일 업로드 스텝 역시 정상적으로 설정되어 있습니다. 이 단계에서 별도의 이슈는 보이지 않습니다.
89-97: Firebase 배포 대상 그룹 업데이트 확인
Firebase App Distribution 스텝에서groups파라미터가seungwon으로 변경되었습니다. 이는 배포 대상 그룹을 올바르게 반영하는 것으로 보이며, QA 팀의 확인 후 최종 배포 준비에 적합해 보입니다.
There was a problem hiding this comment.
Actionable comments posted: 0
🔭 Outside diff range comments (1)
.github/workflows/android_cd.yml (1)
112-117:⚠️ Potential issueDiscord 알림 스텝 중복 URL 전달 문제
Notify Discord스텝에서 curl 명령어에$DISCORD_WEBHOOK_URL이 중복으로 전달되고 있습니다. URL은 한 번만 인자로 넘겨야 하므로 중복된 부분을 제거해 주세요.
예시 diff:- $DISCORD_WEBHOOK_URL - $DISCORD_WEBHOOK_URL + $DISCORD_WEBHOOK_URL
🧹 Nitpick comments (2)
.github/workflows/android_cd.yml (2)
68-69: 디버그 스텝 주의
Debug Local Properties스텝에서cat local.properties명령어로 파일 내용을 출력하도록 한 점은 디버깅에 유용하지만, CI/CD 로그에 민감한 정보가 노출될 수 있으므로 프로덕션 환경에서는 조건부 실행하거나 제거하는 것을 고려해 주세요.
106-106: 불필요한 공백 제거 필요라인 106에 불필요한 공백이 있는 것 같습니다. YAML 파일의 가독성을 위해 해당 공백을 제거해 주세요.
🧰 Tools
🪛 YAMLlint (1.35.1)
[error] 106-106: trailing spaces
(trailing-spaces)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/android_cd.yml(3 hunks)
🧰 Additional context used
🪛 YAMLlint (1.35.1)
.github/workflows/android_cd.yml
[error] 106-106: trailing spaces
(trailing-spaces)
🔇 Additional comments (7)
.github/workflows/android_cd.yml (7)
16-18: 환경변수 'LOCAL_PROPERTIES_CONTENTS' 추가 확인새롭게 추가된
LOCAL_PROPERTIES_CONTENTS변수는 로컬 프로퍼티 파일 작성에 사용됩니다. 환경 설정이 올바르게 이루어졌는지 확인 부탁드립니다.
24-25: Checkout 코드 업데이트
actions/checkout스텝에서with블록을 사용하여ref: ${{ github.head_ref }}로 PR이 열린 브랜치를 체크아웃하도록 변경한 점은 좋습니다. 해당 설정이 의도한 브랜치를 정확히 가리키는지 추가 확인 부탁드립니다.
53-53: Keystore 파일명 업데이트 검토
Decode And Save Keystore Base64스텝에서 출력 파일명을 기존의keystore.jks대신app/key.jks로 변경한 점은 일관성 유지 측면에서 좋습니다. 다만, 이후 스텝(예, SIGNED_STORE_FILE 설정)에서도 이 변경 사항이 올바르게 반영되고 있는지 확인해 주세요.
64-65: local.properties 업데이트
Add Local Properties스텝에서$LOCAL_PROPERTIES_CONTENTS를 이용해local.properties파일을 생성하고, 이어서SIGNED_STORE_FILE=key.jks를 추가한 변경 사항은 적절해 보입니다. 모든 환경에서 올바르게 작동하는지 한 번 더 검증해 주시기 바랍니다.
90-96: 앱 버전 추출 스크립트 검토
Get App Version스텝에서grep명령어를 사용해app/build.gradle파일에서versionName을 추출하도록 구현했습니다. 만약 프로젝트가 Kotlin DSL을 사용하여app/build.gradle.kts파일을 운영한다면, 파일 경로를 업데이트할 필요가 있으니 이 부분을 확인해 주세요.
97-107: Firebase App Distribution 업로드 스텝 수정Firebase App Distribution 스텝에서
groups값이seungwon으로, 그리고 릴리즈 노트에v${{ env.VERSION }}가 포함되도록 업데이트한 점은 긍정적입니다. 변경 사항이 의도한 대로 동작하는지 최종 검증 부탁드립니다.🧰 Tools
🪛 YAMLlint (1.35.1)
[error] 106-106: trailing spaces
(trailing-spaces)
4-9:Details
❓ Verification inconclusive
브랜치 트리거 업데이트 검토
현재 push 및 pull_request 이벤트 트리거가
master브랜치로 설정되어 있습니다. PR 목표에 따라 브랜치 이름을release/1.1.0으로 업데이트할 필요가 있는지 검토해 주세요.
예시 diff:- - master + - release/1.1.0
주요 검토: 이벤트 트리거 브랜치 업데이트 여부 확인
- 파일:
.github/workflows/android_cd.yml(라인 4-9)- 현재
push및pull_request이벤트가master브랜치로 설정되어 있습니다.- 배포 전략이나 PR 타깃에 따라, 해당 브랜치가 최신 정책을 반영하는지 검토 후, 필요하다면 아래와 같이 업데이트하는 것을 고려해 주세요:
- - master + - release/1.1.0업데이트 여부는 프로젝트의 브랜치 정책과 배포 전략에 따라 달라질 수 있으므로, 관련 내용을 다시 한 번 확인해 주시길 바랍니다.
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/android_cd.yml(3 hunks)
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/android_cd.yml
72-72: "github.event.pull_request.title" is potentially untrusted. avoid using it directly in inline scripts. instead, pass it through an environment variable. see https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions for more details
(expression)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Continuous Deployment
🔇 Additional comments (2)
.github/workflows/android_cd.yml (2)
101-101: 일관성 확인: releaseNotes 업데이트
releaseNotes필드가 이전의 환경 변수 대신 이제steps.extract_version.outputs.version을 참조하도록 올바르게 변경되었습니다. 이로써 버전 정보가 메시지에 일관되게 반영됩니다.
108-111: 일관성 확인: Discord 알림 메시지 업데이트
Discord 알림 메시지에서도 버전 정보가steps.extract_version.outputs.version을 통해 전달되고 있습니다. 업데이트된 메시지 형식이 최신 버전 추출 로직과 일치하여 올바르게 동작할 것으로 예상됩니다.
📝작업 내용
💬리뷰 요구사항(선택)
CI/CD를 구축하고 나서 첫 PR입니다.
Summary by CodeRabbit
New Features
Refactor
Style
Chores