Skip to content

CSERVER-49 s3 file url 개선 - Phase 2 : Festival 도메인#630

Open
ch1hyun wants to merge 4 commits intodevelopfrom
feature/CSERVER-49
Open

CSERVER-49 s3 file url 개선 - Phase 2 : Festival 도메인#630
ch1hyun wants to merge 4 commits intodevelopfrom
feature/CSERVER-49

Conversation

@ch1hyun
Copy link
Copy Markdown
Member

@ch1hyun ch1hyun commented Apr 5, 2026

🔊 Summaries

  • 페스티벌 도메인의 파일 url 결합 방식을 변경합니다.
  • 페스티벌, 페스티벌 예매, 예매처 파일 서비스를 추가로 구현했습니다.

✨ Notification

@ch1hyun ch1hyun self-assigned this Apr 5, 2026
@ch1hyun ch1hyun added the 🛠️ Refactor 코드 리팩토링 label Apr 5, 2026
@claude
Copy link
Copy Markdown

claude bot commented Apr 5, 2026

Claude finished @ch1hyun's task in 1m 35s —— View job


코드 리뷰 완료

  • PR 변경 사항 분석
  • 새로운 FileService 클래스 검토
  • FileInfo record 클래스 검토
  • DTO 변경 사항 검토
  • 코드 품질 및 컨벤션 준수 확인
  • 리뷰 결과 작성

버그 가능성

1. NPE 발생 가능성 - FestivalDetailDTO.withFileUrls()

src/main/java/org/sopt/confeti/api/performance/facade/dto/response/FestivalDetailDTO.java:67

.map(r -> r.withFileUrls(reservationFileInfoMap.get(r.reservationId())))

reservationFileInfoMap.get(r.reservationId())null을 반환할 경우, FestivalReservationDTO.withFileUrls()에서 fileInfo.ticketVendorFileInfo() 호출 시 NPE 발생.

개선 방향: null 체크 추가 또는 Map.getOrDefault() 사용 권장.

Fix this →


구조적 이슈

2. 도메인 서비스 간 참조

src/main/java/org/sopt/confeti/domain/festival/application/FestivalFileService.java:18

private final FestivalReservationFileService festivalReservationFileService;

FestivalFileServicefestival_reservation_url 도메인의 FestivalReservationFileService를 직접 참조.

CLAUDE.md 규칙: "서비스 간 참조 금지: 도메인 Service는 다른 도메인의 Service를 직접 참조하지 않음"

개선 방향: FileService를 Facade 계층으로 이동하거나, 또는 FileService 자체를 global/common 영역의 유틸리티 서비스로 분리하여 도메인 서비스 간 참조 규칙 예외로 명시.


불필요 코드

3. 사용되지 않는 필드 잔존

  • FestivalDetailDTO.posterPath, FestivalDetailDTO.logoPath (line 23-24, 44-45)
  • TicketVendorDto.logoPath (line 11, 19)

파일 URL 결합 방식 변경 후 *Path 필드는 응답에 포함되지 않음. Redis 캐싱된 데이터에 불필요한 정보가 저장됨.

판단 필요: 내부적으로 path 값이 필요한 경우가 있는지 확인 후, 불필요하면 제거 권장.


긍정적 변경 사항

  • Controller에서 S3FileHandler 의존성 제거로 계층 분리 개선
  • withFileUrls() 패턴을 통한 불변 DTO 유지
  • Redis 캐싱 시 URL이 이미 결합된 상태로 저장되어 캐시 히트 시 추가 연산 불필요

@ch1hyun ch1hyun requested a review from jher235 April 5, 2026 12:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🛠️ Refactor 코드 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants