Skip to content

Conversation

@m6z1
Copy link
Member

@m6z1 m6z1 commented Jan 10, 2026

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

  • 나의 활동 api 모듈 분리
  • UserRepository 에서 fetchUserInfo 먼저 호출해서 완료 되면 fetchMyActivities 로 나의 활동 호출

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

Summary by CodeRabbit

릴리스 노트

  • New Features
    • 사용자 프로필 정보 조회 기능 추가 (닉네임, 성별 등)
    • 사용자별 활동 피드 및 콘텐츠 조회 기능 추가
    • 로컬 저장소에 사용자 ID 저장 및 관리 기능 추가

✏️ Tip: You can customize this high-level summary in your review settings.

@m6z1 m6z1 merged commit b6164cb into develop Jan 10, 2026
1 of 3 checks passed
@github-actions github-actions bot requested a review from s9hn January 10, 2026 11:33
@m6z1 m6z1 deleted the feat/783 branch January 10, 2026 11:33
@coderabbitai
Copy link

coderabbitai bot commented Jan 10, 2026

Caution

Review failed

The pull request is closed.

요약

새로운 data/user 모듈을 추가하여 사용자 정보 및 활동 데이터를 관리합니다. 원격 API와 로컬 DataStore를 통합하는 UserRepository, 관련 DTO/Entity 모델, 매퍼, 그리고 DI 설정을 포함합니다.

변경사항

모듈 / 파일(들) 변경 요약
모듈 설정
settings.gradle.kts
새로운 :data:user 모듈을 Gradle 프로젝트에 추가
네트워크 레이어
core/network/src/main/java/com/into/websoso/core/network/datasource/user/UserApi.kt
Retrofit 기반 UserApi 인터페이스 추가: getUserFeeds(), getUserInfo() 엔드포인트 및 Hilt 모듈
네트워크 DTO 모델
core/network/src/main/java/com/into/websoso/core/network/datasource/user/model/UserFeedsResponseDto.kt, ...UserInfoResponseDto.kt
API 응답 매핑용 데이터 클래스: UserFeedsResponseDto(중첩 UserFeedResponseDto), UserInfoResponseDto
로컬 저장소
core/datastore/src/main/java/com/into/websoso/core/datastore/datasource/user/DefaultAccountDataSource.kt
DefaultUserDataSource 구현: DataStore를 통한 userId 저장/조회, UserDataStorage 바인딩 모듈
DI 설정
core/datastore/src/main/java/com/into/websoso/core/datastore/di/DataStoreQualifier.kt, core/datastore/build.gradle.kts
@UserDataStore 한정자 추가, data.user 모듈 의존성 추가
데이터 모듈 구조
data/user/build.gradle.kts, data/user/.gitignore
새 모듈 빌드 설정 및 .gitignore
데이터 레이어 인터페이스
data/user/src/main/java/com/into/websoso/user/datasource/UserLocalDataSource.kt
로컬 데이터 소스 추상화 인터페이스: getUserId(), updateUserId()
데이터 엔티티 모델
data/user/src/main/java/com/into/websoso/user/model/UserFeedsEntity.kt, ...UserInfoEntity.kt
도메인 레이어용 데이터 클래스: UserFeedsEntity(중첩 UserFeedEntity), UserInfoEntity
데이터 매퍼
data/user/src/main/java/com/into/websoso/user/mapper/UserMapper.kt
DTO → Entity 변환 확장함수: toData() 메서드들
저장소 계층
data/user/src/main/java/com/into/websoso/user/UserRepository.kt
원격/로컬 데이터 소스 조합: fetchUserInfo(), fetchMyActivities(), fetchUserFeeds(), fetchUserId()

시퀀스 다이어그램

sequenceDiagram
    actor App
    participant Repo as UserRepository
    participant API as UserApi<br/>(Retrofit)
    participant LocalDS as UserLocalDataSource<br/>(DataStore)
    
    App->>Repo: fetchUserInfo()
    Repo->>API: getUserInfo()
    API-->>Repo: UserInfoResponseDto
    Repo->>Repo: mapToEntity()
    Repo->>LocalDS: updateUserId(userId)
    LocalDS-->>Repo: ✓
    Repo-->>App: UserInfoEntity
    
    App->>Repo: fetchMyActivities(lastFeedId, size)
    Repo->>LocalDS: getUserId()
    LocalDS-->>Repo: userId
    Repo->>API: getUserFeeds(userId, lastFeedId, size)
    API-->>Repo: UserFeedsResponseDto
    Repo->>Repo: mapToEntity()
    Repo-->>App: UserFeedsEntity
Loading

코드 리뷰 예상 소요 시간

🎯 3 (Moderate) | ⏱️ ~20 minutes

제안 라벨

🍯 [FEAT], 🚧 [BUILD]

제안 리뷰어

  • junseo511
  • yeonjeen

토끼의 축하 시

🐰 새로운 모듈이 쏙쏙 들어가고,
API와 DataStore가 손을 맞잡으니,
사용자의 활동이 반짝반짝 ✨
나의 활동도 이제 문제없네!
모듈 분리의 우아함, 정말 사랑스러워! 🐾

✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 99a26e1 and 7392e94.

📒 Files selected for processing (14)
  • core/datastore/build.gradle.kts
  • core/datastore/src/main/java/com/into/websoso/core/datastore/datasource/user/DefaultAccountDataSource.kt
  • core/datastore/src/main/java/com/into/websoso/core/datastore/di/DataStoreQualifier.kt
  • core/network/src/main/java/com/into/websoso/core/network/datasource/user/UserApi.kt
  • core/network/src/main/java/com/into/websoso/core/network/datasource/user/model/UserFeedsResponseDto.kt
  • core/network/src/main/java/com/into/websoso/core/network/datasource/user/model/UserInfoResponseDto.kt
  • data/user/.gitignore
  • data/user/build.gradle.kts
  • data/user/src/main/java/com/into/websoso/user/UserRepository.kt
  • data/user/src/main/java/com/into/websoso/user/datasource/UserLocalDataSource.kt
  • data/user/src/main/java/com/into/websoso/user/mapper/UserMapper.kt
  • data/user/src/main/java/com/into/websoso/user/model/UserFeedsEntity.kt
  • data/user/src/main/java/com/into/websoso/user/model/UserInfoEntity.kt
  • settings.gradle.kts

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 and usage tips.

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.

feat: 나의 활동 api 모듈 분리

2 participants