Skip to content

Conversation

@1Seob
Copy link
Collaborator

@1Seob 1Seob commented Dec 25, 2025

📝 요약(Summary)

크리스탈 도메인 구현

  • user_wallets, crystal_logs 테이블 생성 및 Flyway DDL sql 파일 작성
  • UserWallet, CrystalLog 엔티티 구현
  • 이에 따라 회원가입 로직에 UserWallet 초기화 추가, 기존 유저들의 user_wallets 테이블을 백필
  • NotEnoughCrystalException 예외 클래스 구현
  • 크리스탈 조회 api 구현

Testcontainers 기반 테스트 인프라 도입

  • 서비스 통합 테스트에서 실제 PostgreSQL 환경을 사용하도록 Testcontainers 기반 테스트 인프라를 도입
  • 테스트 실행 시 Docker 기반 PostgreSQL 컨테이너 자동 기동, DataSource / Flyway 설정을 런타임에 주입

⚠️ 주의 사항
테스트 실행을 위해 로컬 환경에 Docker 실행이 필요합니다.

PR 테스트 워크플로우 스크립트 추가

  • develop 브랜치로 올리는 PR에는 자동으로 테스트가 실행됩니다.

🔗 Related Issue

💬 공유사항

리포트 생성 시에 어느정도 시간이 소요되기 때문에
리포트 생성과 크리스탈 차감을 하나의 트랜잭션으로 묶으면
DB 커넥션 점유/락 경합/타임아웃/스루풋 저하 등의 여러 문제가 발생할 수 있습니다.
따라서

  • Tx(짧게): PENDING report 생성 + 선차감 + 로그(PENDING)까지 한 번에
  • 그 다음 Tx 밖에서 LLM

이러한 흐름으로 리포트 생성이 이루어져야 합니다.

이에 관해서는 가까운 시일 내에 구현할 오늘의 리포트 api의 실제 코드 예시를 참고하시면 될 것 같습니다.

✅ PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • PR 제목을 커밋 메시지 컨벤션에 맞게 작성했습니다.

@coldsunn
Copy link
Collaborator

SocialAuthService의 saveNewSocialUser 메서드에도 UserWallet을 생성하는 로직이 있어야할 것 같아요.

@1Seob
Copy link
Collaborator Author

1Seob commented Dec 25, 2025

SocialAuthService의 saveNewSocialUser 메서드에도 UserWallet을 생성하는 로직이 있어야할 것 같아요.

반영했습니다!

@1Seob 1Seob merged commit 7d896ba into develop Dec 25, 2025
1 check passed
@1Seob 1Seob deleted the feat/crystal branch December 25, 2025 14:02
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.

[Epic] 크리스탈 도메인

3 participants