Skip to content

[global] 수동 작성 모델 클래스 제거 및 shared 타입 도입 + GitHub Packages CI/CD 구성#15

Merged
wwwcomcomcomcom merged 11 commits into
mainfrom
refactor/replace-manual-models-with-shared
Jul 9, 2026
Merged

[global] 수동 작성 모델 클래스 제거 및 shared 타입 도입 + GitHub Packages CI/CD 구성#15
wwwcomcomcomcom merged 11 commits into
mainfrom
refactor/replace-manual-models-with-shared

Conversation

@wwwcomcomcomcom

@wwwcomcomcomcom wwwcomcomcomcom commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • 수동으로 작성된 모델 클래스(Club, Student, Project, Meal, Timetable 등 20개+) 전체 제거 (~1,500 라인 감소)
  • datagsm-shared 의존성 도입으로 공유 타입을 단일 소스로 관리
  • JSON 라이브러리 Gson → Jackson으로 교체 (Kotlin data class 지원)
  • JitPack 배포 방식을 GitHub Packages 배포로 전환
  • GitHub Actions CI/CD 워크플로우 추가 (빌드 + 배포)

Changes

Refactor

  • model/ 패키지 내 수동 작성 모델 클래스 전체 삭제
  • ClubApi, NeisApi, ProjectApi, StudentApi 및 각 Impl 클래스에서 shared 타입 import로 교체
  • JsonUtil: Gson 제거, Jackson ObjectMapper + KotlinModule 도입
    • kotlinx.datetime.LocalDate 커스텀 역직렬화기 추가 (LocalDate.parse(String)이 synthetic이므로 fromEpochDays 방식 사용)

Breaking Changes ⚠️

  • NeisApi.getMeals() 반환 타입: List<Meal>MealResDto
  • NeisApi.getSchedules() 반환 타입: List<Schedule>ScheduleResDto
  • NeisApi.getTimetables() 반환 타입: List<Timetable>TimetableResDto
  • ClubApi.getClub() 반환 타입: ClubDetailClubResDto
  • ProjectApi.getProject() 반환 타입: ProjectProjectResDto
  • StudentApi.getStudent() 반환 타입: StudentStudentResDto
  • 버전: 1.7.02.0.0 (Major bump — 위 인터페이스 변경 반영)

Build / CI

  • build.gradle.kts: GitHub Packages 저장소 추가, datagsm-shared 의존성 추가, Java 17 타겟으로 통일
  • jitpack.yml 제거
  • .github/workflows/CI.yml: develop 브랜치 빌드 트리거 추가, GitHub Packages 인증 환경변수 추가
  • .github/workflows/CD.yml: GitHub Packages 배포로 전환, permissions: packages: write 추가, JDK 21 + Temurin으로 교체
  • .github/workflows/build.yml 추가 (PR/push 시 빌드 검증) — CI.yml과 통합 가능 여부 검토 필요

Known Issues / Follow-up

  • build.ymlCI.yml이 동일 트리거에서 중복 실행되는 문제 → 추후 통합 검토
  • datagsm-shared-jvm:20260514-2 날짜 기반 버전 → semantic versioning으로 전환 검토

Test Plan

  • ./gradlew build 로컬 빌드 통과 확인
  • GitHub Actions CI 빌드 워크플로우 통과 확인
  • 각 API 클라이언트(ClubApi, StudentApi, NeisApi, ProjectApi)가 shared 타입으로 정상 동작하는지 통합 확인
  • SDK 소비자 코드에서 변경된 반환 타입으로 마이그레이션 확인

🤖 Generated with Claude Code

Comment thread .github/workflows/build.yml Outdated
Comment thread .github/workflows/build.yml Outdated
Comment thread .github/workflows/CD.yml
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@wwwcomcomcomcom wwwcomcomcomcom marked this pull request as ready for review June 25, 2026 03:11
@wwwcomcomcomcom wwwcomcomcomcom self-assigned this Jun 25, 2026
@ZaMan0806 ZaMan0806 changed the title refactor(sdk): 수동 작성 모델 클래스 제거 및 shared 타입 도입 + GitHub Packages CI/CD 구성 [global] 수동 작성 모델 클래스 제거 및 shared 타입 도입 + GitHub Packages CI/CD 구성 Jun 25, 2026
@wwwcomcomcomcom wwwcomcomcomcom merged commit bf3656a into main Jul 9, 2026
1 check passed
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.

3 participants