Skip to content

[HCR-64] feat: 회원 & 상품 관련 스키마 설계 및 JPA 엔티티 매핑#16

Merged
YeongHyeonHeo merged 32 commits into
devfrom
feat/HSC-64
Feb 15, 2026
Merged

[HCR-64] feat: 회원 & 상품 관련 스키마 설계 및 JPA 엔티티 매핑#16
YeongHyeonHeo merged 32 commits into
devfrom
feat/HSC-64

Conversation

@YeongHyeonHeo
Copy link
Copy Markdown
Contributor

📝작업 내용

Flyway 마이그레이션 스키마 구현

  • 13개 테이블에 대한 초기 스키마 정의(V1__init.sql) 및 flyway_schema_history 기반의 형상 관리 체계 구축

JPA 도메인 엔티티 매핑 완료

  • 4개 주요 도메인(회원, 상품, 서비스 활동, 혜택)에 속하는 13개 엔티티 클래스 구현

공통 Audit 기능 적용

  • 모든 엔티티에 BaseEntity를 상속하여 created_at, updated_at 자동 기록 설정

👀변경 사항

DB 역할 및 권한 분리 적용

  • 보안 강화를 위해 마이그레이션 전용 계정(db_migrator)과 서비스 운영 계정(app_customer)의 역할을 엄격히 분리했습니다.
    팀원분들은 로컬 환경 구축 시 공유된 GRANT 스크립트를 postgres 계정으로 1회 실행해야 합니다.

🎫 Jira Ticket

  • Jira Ticket: HCR-64

#️⃣관련 이슈


@YeongHyeonHeo YeongHyeonHeo self-assigned this Feb 15, 2026
@github-actions github-actions Bot added Customer Team ✨ feat 새로운 기능 추가, 기존 기능을 요구 사항에 맞추어 수정 🔥 priority: P0 즉시 처리 필요(서비스/데모 블로커) 🗄️ area: DB 데이터베이스/쿼리/마이그레이션 영역 labels Feb 15, 2026
@github-actions github-actions Bot changed the title feat: 회원 & 상품 관련 스키마 설계 및 JPA 엔티티 매핑 [HCR-64] feat: 회원 & 상품 관련 스키마 설계 및 JPA 엔티티 매핑 Feb 15, 2026
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @YeongHyeonHeo, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 애플리케이션의 핵심 데이터 모델을 정의하고 데이터베이스 스키마를 초기화하여 시스템의 견고한 기반을 마련합니다. Flyway를 통한 데이터베이스 버전 관리 시스템을 도입하고, JPA 엔티티 매핑을 통해 객체-관계형 매핑을 완성하며, 모든 엔티티에 공통 감사 기능을 적용하여 데이터 무결성과 추적성을 향상시킵니다. 또한, 데이터베이스 사용자 권한을 분리하여 보안을 강화했습니다.

Highlights

  • Flyway 마이그레이션 스키마 구현: 13개 테이블에 대한 초기 스키마 정의(V1__init.sql) 및 flyway_schema_history 기반의 형상 관리 체계를 구축했습니다.
  • JPA 도메인 엔티티 매핑 완료: 회원, 상품, 서비스 활동, 혜택 등 4개 주요 도메인에 속하는 13개 엔티티 클래스를 구현했습니다.
  • 공통 Audit 기능 적용: 모든 엔티티가 BaseEntity를 상속하도록 하여 created_at, updated_at 필드가 자동으로 기록되도록 설정했습니다.
  • DB 역할 및 권한 분리 적용: 보안 강화를 위해 마이그레이션 전용 계정(db_migrator)과 서비스 운영 계정(app_customer)의 역할을 엄격히 분리했습니다. 로컬 환경 구축 시 공유된 GRANT 스크립트를 postgres 계정으로 1회 실행해야 합니다.
Changelog
  • .env
    • Flyway 데이터베이스 사용자 및 비밀번호 환경 변수(FLYWAY_USER, FLYWAY_PASSWORD)를 추가했습니다.
  • node_modules/.bin/husky
    • Husky Git 훅 관리 도구의 실행 스크립트를 추가했습니다.
  • node_modules/.bin/husky.CMD
    • Windows 환경을 위한 Husky Git 훅 관리 도구의 CMD 실행 스크립트를 추가했습니다.
  • node_modules/.bin/husky.ps1
    • PowerShell 환경을 위한 Husky Git 훅 관리 도구의 PowerShell 실행 스크립트를 추가했습니다.
  • node_modules/.modules.yaml
    • pnpm 워크스페이스 설정을 위한 YAML 파일을 추가했습니다.
  • node_modules/.pnpm-workspace-state-v1.json
    • pnpm 워크스페이스 상태 관리 파일을 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/LICENSE
    • Husky 라이선스 파일을 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/README.md
    • Husky README 파일을 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/bin.js
    • Husky 실행 바이너리 스크립트를 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/husky
    • Husky 쉘 스크립트 파일을 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.d.ts
    • Husky 타입 정의 파일을 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.js
    • Husky 메인 로직 파일을 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules/.bin/husky
    • Husky 내부 종속성의 실행 스크립트를 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules/.bin/husky.CMD
    • Husky 내부 종속성의 Windows CMD 실행 스크립트를 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules/.bin/husky.ps1
    • Husky 내부 종속성의 PowerShell 실행 스크립트를 추가했습니다.
  • node_modules/.pnpm/husky@9.1.7/node_modules/husky/package.json
    • Husky 패키지 정의 파일을 추가했습니다.
  • node_modules/.pnpm/lock.yaml
    • pnpm 잠금 파일을 추가하여 프로젝트 종속성을 관리했습니다.
  • node_modules/husky/LICENSE
    • Husky 라이선스 파일을 추가했습니다.
  • node_modules/husky/README.md
    • Husky README 파일을 추가했습니다.
  • node_modules/husky/bin.js
    • Husky 실행 바이너리 스크립트를 추가했습니다.
  • node_modules/husky/husky
    • Husky 쉘 스크립트 파일을 추가했습니다.
  • node_modules/husky/index.d.ts
    • Husky 타입 정의 파일을 추가했습니다.
  • node_modules/husky/index.js
    • Husky 메인 로직 파일을 추가했습니다.
  • node_modules/husky/node_modules/.bin/husky
    • Husky 내부 종속성의 실행 스크립트를 추가했습니다.
  • node_modules/husky/node_modules/.bin/husky.CMD
    • Husky 내부 종속성의 Windows CMD 실행 스크립트를 추가했습니다.
  • node_modules/husky/node_modules/.bin/husky.ps1
    • Husky 내부 종속성의 PowerShell 실행 스크립트를 추가했습니다.
  • node_modules/husky/package.json
    • Husky 패키지 정의 파일을 추가했습니다.
  • package.json
    • 개발 종속성으로 Husky(husky)를 추가했습니다.
  • pnpm-lock.yaml
    • pnpm 잠금 파일을 추가하여 프로젝트 종속성을 관리했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/Addon.java
    • Addon 엔티티가 BaseEntity를 상속하도록 변경하고, Lombok 어노테이션을 추가했으며, 테이블 이름을 addon_service로 변경하고, description 컬럼 정의를 업데이트했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/AddonType.java
    • AddonType enum을 shared 패키지로 이동하여 삭제했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/Address.java
    • 주소 정보를 저장하는 Address 엔티티를 추가했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/Coupon.java
    • 쿠폰 정보를 저장하는 Coupon 엔티티를 추가했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/Internet.java
    • Internet 엔티티가 BaseEntity를 상속하도록 변경하고, Lombok 어노테이션을 추가했으며, 요금제 요약, 속도, 혜택 필드를 업데이트했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/Iptv.java
    • Iptv 엔티티가 BaseEntity를 상속하도록 변경하고, Lombok 어노테이션을 추가했으며, 요금제 요약, 채널 수, 혜택 필드를 업데이트했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/Member.java
    • 회원 정보를 저장하는 Member 엔티티를 추가했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/MemberCoupon.java
    • 회원과 쿠폰의 관계를 저장하는 MemberCoupon 엔티티를 추가했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/MobilePlan.java
    • MobilePlan 엔티티가 BaseEntity를 상속하도록 변경하고, Lombok 어노테이션을 추가했으며, 데이터 제공량, 테더링/쉐어링 데이터, 각종 혜택 필드를 업데이트했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/Product.java
    • Product 엔티티가 BaseEntity를 상속하도록 변경하고, Lombok 어노테이션을 추가했으며, sale_price 컬럼 이름을 saled_price로 변경했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/ProductType.java
    • ProductType enum을 shared 패키지로 이동하여 삭제했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/ProductViewHistory.java
    • 회원의 상품 조회 이력을 저장하는 ProductViewHistory 엔티티를 추가했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/Subscription.java
    • 회원의 상품 구독 정보를 저장하는 Subscription 엔티티를 추가했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/TabWatchPlan.java
    • TabWatchPlan 엔티티가 BaseEntity를 상속하도록 변경하고, Lombok 어노테이션을 추가했으며, 데이터 제공량, 음성 통화, SMS 혜택 필드를 업데이트했습니다.
  • src/main/java/site/holliverse/customer/persistence/entity/UsageMonthly.java
    • 월별 사용량 데이터를 저장하는 UsageMonthly 엔티티를 추가했습니다.
  • src/main/java/site/holliverse/shared/config/jpa/JpaConfig.java
    • JPA Auditing 기능을 활성화하는 JpaConfig 클래스를 추가했습니다.
  • src/main/java/site/holliverse/shared/domain/model/AddonType.java
    • 부가 서비스 유형을 정의하는 AddonType enum을 shared 패키지에 추가했습니다.
  • src/main/java/site/holliverse/shared/domain/model/CouponType.java
    • 쿠폰 유형을 정의하는 CouponType enum을 shared 패키지에 추가했습니다.
  • src/main/java/site/holliverse/shared/domain/model/MemberMembership.java
    • 회원 멤버십 등급을 정의하는 MemberMembership enum을 shared 패키지에 추가했습니다.
  • src/main/java/site/holliverse/shared/domain/model/MemberRole.java
    • 회원 역할을 정의하는 MemberRole enum을 shared 패키지에 추가했습니다.
  • src/main/java/site/holliverse/shared/domain/model/MemberSignupType.java
    • 회원 가입 유형을 정의하는 MemberSignupType enum을 shared 패키지에 추가했습니다.
  • src/main/java/site/holliverse/shared/domain/model/MemberStatus.java
    • 회원 상태를 정의하는 MemberStatus enum을 shared 패키지에 추가했습니다.
  • src/main/java/site/holliverse/shared/domain/model/ProductType.java
    • 상품 유형을 정의하는 ProductType enum을 shared 패키지에 추가했습니다.
  • src/main/java/site/holliverse/shared/persistence/BaseEntity.java
    • 모든 엔티티가 상속받아 생성 및 수정 시간을 자동으로 관리하는 BaseEntity 추상 클래스를 추가했습니다.
  • src/main/resources/application.yaml
    • JPA ddl-auto 설정을 update에서 validate로 변경하고, Flyway를 활성화했습니다.
  • src/main/resources/db/migration/V1__init.sql
    • 초기 데이터베이스 스키마를 정의하는 Flyway 마이그레이션 스크립트를 추가했습니다. 여기에는 13개의 테이블과 관련 ENUM 타입, 제약 조건, 외래 키가 포함됩니다.
Activity
  • 현재까지 이 Pull Request에 대한 인간 활동(댓글, 리뷰 등)은 없습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 15, 2026

🧪 Test Coverage Report (JaCoCo)

overall__line overall__branch changed__line changed__branch

기준(soft, workflow는 실패 안 함): Overall line 10% / branch 10%, Changed line 10% / branch 10% · Generated: 2026-02-15 17:43 UTC

Scope Line Branch Line Graph Branch Graph Verdict
Overall 35.3% 63.6% ███████░░░░░░░░░░░░░ █████████████░░░░░░░ ✅✅
Changed 39.9% 63.6% ████████░░░░░░░░░░░░ █████████████░░░░░░░ ✅✅

Package line spark (sample): ▁▄··▁▁▁▃▁
Package branch spark (sample): ·▅·······

📦 Package coverage (worst 10)

Rank Package Line Branch Lines Line Graph Branch Graph
1 site.holliverse.customer.web.controller 0.0% N/A 8 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
2 site.holliverse.customer.web.dto.product 0.0% N/A 5 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
3 site.holliverse.admin.web.controller 0.0% N/A 2 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
4 site.holliverse.customer.web.dto 0.0% N/A 1 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
5 site.holliverse.shared.persistence 0.0% N/A 1 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
6 site.holliverse.shared.domain.model 28.6% N/A 21 ██████░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
7 site.holliverse.customer.application.usecase 41.7% 63.6% 115 ████████░░░░░░░░░░░░ █████████████░░░░░░░
8 site.holliverse.customer.persistence.repository N/A N/A 0 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
9 site.holliverse.customer.persistence.entity N/A N/A 0 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░

🧨 Lowest coverage classes (worst 10)

Rank Class Line Branch Lines Line Graph Branch Graph
1 site.holliverse.customer.application.usecase.GetProductDetailUseCase 0.0% 0.0% 52 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
2 site.holliverse.customer.application.usecase.GetProductListUseCase 77.0% 87.5% 61 ███████████████░░░░░ ██████████████████░░
🧩 Changed files coverage breakdown (36 files)
File Line Branch Lines Verdict Line Graph Branch Graph
src/main/java/site/holliverse/customer/application/usecase/GetProductDetailUseCase.java 0.0% 0.0% 52 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/AddonType.java 0.0% N/A 4 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/dto/product/InternetContent.java 0.0% N/A 1 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/dto/product/IptvContent.java 0.0% N/A 1 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/dto/product/MobileContent.java 0.0% N/A 1 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/domain/model/AddonType.java 0.0% N/A 4 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/domain/model/CouponType.java 0.0% N/A 3 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/domain/model/MemberMembership.java 0.0% N/A 2 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/domain/model/MemberRole.java 0.0% N/A 2 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/domain/model/MemberSignupType.java 0.0% N/A 2 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/domain/model/MemberStatus.java 0.0% N/A 2 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/persistence/BaseEntity.java 0.0% N/A 1 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/GetProductListUseCase.java 77.0% 87.5% 61 ✅✅ ███████████████░░░░░ ██████████████████░░
src/main/java/site/holliverse/customer/persistence/entity/ProductType.java 100.0% N/A 6 ✅✅ ████████████████████ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/domain/model/ProductType.java 100.0% N/A 6 ✅✅ ████████████████████ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/dto/AddonDetailDto.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/dto/InternetDetailDto.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/dto/IptvDetailDto.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/dto/MobilePlanDetailDto.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/dto/ProductSummaryDto.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/Addon.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/Address.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/Coupon.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/Internet.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/Iptv.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/Member.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/MemberCoupon.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/MobilePlan.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/Product.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/ProductViewHistory.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/Subscription.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/TabWatchPlan.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/entity/UsageMonthly.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/persistence/repository/ProductRepository.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/mapper/ProductResponseMapper.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/config/jpa/JpaConfig.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░

🔎 HTML 리포트: Actions → Artifacts → jacoco-html · XML: jacoco-xml

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

전반적으로 Flyway를 이용한 데이터베이스 스키마 초기화와 JPA 엔티티 매핑 작업이 잘 이루어졌습니다. 특히 BaseEntity를 통한 공통 필드 관리, shared 모듈로 도메인 모델을 분리한 점 등 좋은 구조를 보여줍니다. 하지만 몇 가지 치명적인 문제와 개선점이 발견되었습니다. node_modules 디렉토리가 커밋되어 사용자 특정 경로가 포함되었고, 일부 엔티티에서 데이터베이스 스키마와 불일치를 유발할 수 있는 버그가 존재합니다. 또한, 타임존 처리를 위한 일관성 있는 타임스탬프 타입 사용을 권장합니다. 아래의 상세 리뷰를 확인하여 수정해 주시기 바랍니다.

Comment thread node_modules/.bin/husky Outdated
Comment thread src/main/java/site/holliverse/customer/persistence/entity/Iptv.java Outdated
Comment thread src/main/java/site/holliverse/shared/persistence/BaseEntity.java
Comment thread src/main/resources/db/migration/V1__init.sql
Comment thread src/main/java/site/holliverse/customer/persistence/entity/Product.java Outdated
@rettooo
Copy link
Copy Markdown
Contributor

rettooo commented Feb 15, 2026

수고하셨습니다!

rettooo
rettooo approved these changes Feb 15, 2026
Comment thread src/main/java/site/holliverse/customer/persistence/entity/Product.java Outdated
Comment thread src/main/java/site/holliverse/shared/domain/model/ProductType.java
Copy link
Copy Markdown
Contributor

@tkv00 tkv00 left a comment

Choose a reason for hiding this comment

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

수고하셨습니다! DDL문 작성 잘해주셨어요!

Comment thread src/main/java/site/holliverse/customer/persistence/entity/UsageMonthly.java Outdated
Comment thread src/main/java/site/holliverse/customer/persistence/entity/UsageMonthly.java Outdated
Comment thread src/main/resources/db/migration/V1__init.sql
@YeongHyeonHeo YeongHyeonHeo requested review from bon0512 and removed request for bon0512 February 15, 2026 17:43
@YeongHyeonHeo
Copy link
Copy Markdown
Contributor Author

리뷰 감사합니다! 수정사항들 반영했습니다~

@YeongHyeonHeo YeongHyeonHeo merged commit 7d16ba2 into dev Feb 15, 2026
2 checks passed
tkv00 pushed a commit that referenced this pull request Feb 19, 2026
[HCR-64] feat: 회원 & 상품 관련 스키마 설계 및 JPA 엔티티 매핑
tkv00 pushed a commit that referenced this pull request Feb 19, 2026
[HCR-64] feat: 회원 & 상품 관련 스키마 설계 및 JPA 엔티티 매핑
tkv00 pushed a commit that referenced this pull request Feb 19, 2026
[HCR-64] feat: 회원 & 상품 관련 스키마 설계 및 JPA 엔티티 매핑
@tkv00 tkv00 deleted the feat/HSC-64 branch March 20, 2026 01:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🗄️ area: DB 데이터베이스/쿼리/마이그레이션 영역 ✨ feat 새로운 기능 추가, 기존 기능을 요구 사항에 맞추어 수정 🔥 priority: P0 즉시 처리 필요(서비스/데모 블로커)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HSC-64] feat: 회원 & 상품 관련 스키마 설계 및 JPA 엔티티 매핑

3 participants