Skip to content

[Artist] CRUD 구현#80

Merged
Creamcheesepie merged 6 commits into
mainfrom
feat/#66
Dec 16, 2025
Merged

[Artist] CRUD 구현#80
Creamcheesepie merged 6 commits into
mainfrom
feat/#66

Conversation

@ys0221
Copy link
Copy Markdown
Collaborator

@ys0221 ys0221 commented Dec 16, 2025

🔗 관련 이슈

관련된 이슈 번호를 연결해주세요.
Close #이슈번호 를 쓰면 PR merge 시 자동으로 close 됩니다.

🚀 PR 개요

이 PR이 어떤 변경을 포함하고 있는지 간단히 설명해주세요.

아티스트 도메인의 CRUD 구현
(아티스트 생성, 아티스트 목록 및 상세 정보 조회, 아티스트 수정, 아티스트 삭제)

📌 변경 사항

주요 변경 내용을 체크리스트 형태로 정리해주세요.

  • 기능 추가
  • 버그 수정
  • 리팩터링
  • 문서 업데이트
  • 테스트 추가/수정

🧪 테스트 방법

변경된 내용을 어떻게 테스트했는지 구체적으로 적어주세요.

포스트맨을 이용하여 테스트하였습니다.

📸 스크린샷 (선택)

UI 변경 또는 시각적으로 확인할 수 있는 변경이 있다면 첨부해주세요.

⚠️ 참고 사항

리뷰어가 알아야 할 사항이 있다면 자유롭게 작성해주세요.

아직 아티스트 상세 조회에서 연관된 아티스트에 대한 정확성이 떨어지고, 해당 아티스트의 공연 목록은 받아오지 못했습니다. 추후 수정 예정입니다.

@ys0221 ys0221 self-assigned this Dec 16, 2025
@ys0221 ys0221 added the Feature label Dec 16, 2025
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Dec 16, 2025

Test Results

1 tests  ±0   1 ✅ ±0   0s ⏱️ ±0s
1 suites ±0   0 💤 ±0 
1 files   ±0   0 ❌ ±0 

Results for commit 6aa1fb7. ± Comparison against base commit f25337a.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Dec 16, 2025

⭐ JaCoCo Coverage

Line Coverage: 5.67%

📄 Coverage Details

Overall Line Coverage: 5.64% (119 covered / 2110 lines)

Package Summary (lowest first)
Package Line % Covered Missed
com/back/web7_9_codecrete_be/domain/chats/controller 0.00% 0 0
com/back/web7_9_codecrete_be/domain/location/service 0.00% 0 25
com/back/web7_9_codecrete_be/domain/chats/service 0.00% 0 0
com/back/web7_9_codecrete_be/domain/plans/controller 0.00% 0 33
com/back/web7_9_codecrete_be/domain/location/controller 0.00% 0 4
com/back/web7_9_codecrete_be/global/rsData 0.00% 0 11
com/back/web7_9_codecrete_be/domain/location/entity 0.00% 0 0
com/back/web7_9_codecrete_be/global/scheduler 0.00% 0 3
com/back/web7_9_codecrete_be/domain/auth/entity 0.00% 0 0
com/back/web7_9_codecrete_be/domain/auth/service 0.00% 0 71
com/back/web7_9_codecrete_be/domain/plans/service 0.00% 0 311
com/back/web7_9_codecrete_be/global/initData 0.00% 0 26
com/back/web7_9_codecrete_be/domain/users/controller 0.00% 0 20
com/back/web7_9_codecrete_be/domain/email/entity 0.00% 0 6
com/back/web7_9_codecrete_be/domain/users/service 0.00% 0 59
com/back/web7_9_codecrete_be/domain/auth/controller 0.00% 0 20
com/back/web7_9_codecrete_be/domain/concerts/controller 0.00% 0 22
com/back/web7_9_codecrete_be/domain/artists/controller 0.00% 0 12
com/back/web7_9_codecrete_be/global/aspect 0.00% 0 4
com/back/web7_9_codecrete_be/global/wikidata 0.36% 1 279
com/back/web7_9_codecrete_be/domain/artists/service 0.86% 3 345
com/back/web7_9_codecrete_be/global/musicbrainz 0.99% 1 100
com/back/web7_9_codecrete_be/domain/email/service 1.92% 1 51
com/back/web7_9_codecrete_be/domain/concerts/entity 4.76% 3 60
com/back/web7_9_codecrete_be/domain/concerts/service 6.80% 21 288
com/back/web7_9_codecrete_be/domain/artists/entity 9.09% 3 30
com/back/web7_9_codecrete_be/global/rq 12.90% 4 27
com/back/web7_9_codecrete_be/domain/users/entity 22.86% 8 27
com/back/web7_9_codecrete_be/domain/plans/entity 24.42% 21 65
com/back/web7_9_codecrete_be/global/security 26.36% 29 81
com/back/web7_9_codecrete_be/global/storage 33.33% 1 2
com/back/web7_9_codecrete_be/global/spotify 35.71% 5 9
com/back/web7_9_codecrete_be/domain/chats/entity 100.00% 1 0
com/back/web7_9_codecrete_be/global/doc 100.00% 17 0
Lowest Covered Classes (Top 20)
Class Line % Covered Missed
com.back.web7_9_codecrete_be.domain.plans.service.PlanService 0.00% 0 311
com.back.web7_9_codecrete_be.domain.users.service.UserService 0.00% 0 55
com.back.web7_9_codecrete_be.domain.concerts.service.ConcertService 0.00% 0 48
com.back.web7_9_codecrete_be.domain.auth.service.AuthService 0.00% 0 44
com.back.web7_9_codecrete_be.domain.artists.service.ArtistService 0.00% 0 44
com.back.web7_9_codecrete_be.domain.concerts.entity.Concert 0.00% 0 38
com.back.web7_9_codecrete_be.global.security.JwtTokenProvider 0.00% 0 37
com.back.web7_9_codecrete_be.domain.plans.entity.Schedule 0.00% 0 36
com.back.web7_9_codecrete_be.domain.plans.controller.PlanController 0.00% 0 33
com.back.web7_9_codecrete_be.domain.users.entity.User 0.00% 0 27
com.back.web7_9_codecrete_be.domain.auth.service.TokenService 0.00% 0 27
com.back.web7_9_codecrete_be.global.initData.BaseInitData 0.00% 0 26
com.back.web7_9_codecrete_be.domain.artists.entity.Artist 0.00% 0 25
com.back.web7_9_codecrete_be.domain.users.controller.UserController 0.00% 0 20
com.back.web7_9_codecrete_be.domain.auth.controller.AuthController 0.00% 0 20
com.back.web7_9_codecrete_be.domain.plans.entity.Plan 0.00% 0 18
com.back.web7_9_codecrete_be.domain.concerts.controller.ConcertController 0.00% 0 14
com.back.web7_9_codecrete_be.domain.location.service.TmapService 0.00% 0 13
com.back.web7_9_codecrete_be.domain.concerts.service.KopisApiService$TicketPrice 0.00% 0 13
com.back.web7_9_codecrete_be.domain.location.service.KakaoLocalService 0.00% 0 12
Changed Classes (from this PR)
Source (PR) Class Prefix Line % Covered Missed
src/main/java/com/back/web7_9_codecrete_be/domain/plans/service/PlanService.java com.back.web7_9_codecrete_be.domain.plans.service.PlanService 0.00% 0 311
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/service/ConcertService.java com.back.web7_9_codecrete_be.domain.concerts.service.ConcertService 0.00% 0 48
src/main/java/com/back/web7_9_codecrete_be/domain/artists/service/ArtistService.java com.back.web7_9_codecrete_be.domain.artists.service.ArtistService 0.00% 0 44
src/main/java/com/back/web7_9_codecrete_be/domain/plans/controller/PlanController.java com.back.web7_9_codecrete_be.domain.plans.controller.PlanController 0.00% 0 33
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/controller/ConcertController.java com.back.web7_9_codecrete_be.domain.concerts.controller.ConcertController 0.00% 0 14
src/main/java/com/back/web7_9_codecrete_be/domain/artists/controller/ArtistsController.java com.back.web7_9_codecrete_be.domain.artists.controller.ArtistsController 0.00% 0 12
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/controller/ConcertAdminController.java com.back.web7_9_codecrete_be.domain.concerts.controller.ConcertAdminController 0.00% 0 8
src/main/java/com/back/web7_9_codecrete_be/domain/artists/service/GenreService.java com.back.web7_9_codecrete_be.domain.artists.service.GenreService 0.00% 0 4
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/entity/ConcertImage.java com.back.web7_9_codecrete_be.domain.concerts.entity.ConcertImage 0.00% 0 4
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/entity/ConcertLike.java com.back.web7_9_codecrete_be.domain.concerts.entity.ConcertLike 0.00% 0 4
src/main/java/com/back/web7_9_codecrete_be/domain/artists/dto/request/CreateRequest.java com.back.web7_9_codecrete_be.domain.artists.dto.request.CreateRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/dto/request/UpdateRequest.java com.back.web7_9_codecrete_be.domain.artists.dto.request.UpdateRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/dto/response/AlbumResponse.java com.back.web7_9_codecrete_be.domain.artists.dto.response.AlbumResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/dto/response/ArtistDetailResponse.java com.back.web7_9_codecrete_be.domain.artists.dto.response.ArtistDetailResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/dto/response/ArtistListResponse.java com.back.web7_9_codecrete_be.domain.artists.dto.response.ArtistListResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/dto/response/RelatedArtistResponse.java com.back.web7_9_codecrete_be.domain.artists.dto.response.RelatedArtistResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/dto/response/TopTrackResponse.java com.back.web7_9_codecrete_be.domain.artists.dto.response.TopTrackResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/repository/ArtistLikeRepository.java com.back.web7_9_codecrete_be.domain.artists.repository.ArtistLikeRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/repository/ArtistRepository.java com.back.web7_9_codecrete_be.domain.artists.repository.ArtistRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/dto/concert/ConcertDetailResponse.java com.back.web7_9_codecrete_be.domain.concerts.dto.concert.ConcertDetailResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/dto/concert/ConcertItem.java com.back.web7_9_codecrete_be.domain.concerts.dto.concert.ConcertItem 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/dto/concert/ConcertTicketTimeSetRequest.java com.back.web7_9_codecrete_be.domain.concerts.dto.concert.ConcertTicketTimeSetRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/repository/ConcertImageRepository.java com.back.web7_9_codecrete_be.domain.concerts.repository.ConcertImageRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/repository/ConcertRepository.java com.back.web7_9_codecrete_be.domain.concerts.repository.ConcertRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/request/PlanAddRequest.java com.back.web7_9_codecrete_be.domain.plans.dto.request.PlanAddRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/request/PlanParticipantInviteRequest.java com.back.web7_9_codecrete_be.domain.plans.dto.request.PlanParticipantInviteRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/request/PlanParticipantKickRequest.java com.back.web7_9_codecrete_be.domain.plans.dto.request.PlanParticipantKickRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/request/PlanParticipantRoleUpdateRequest.java com.back.web7_9_codecrete_be.domain.plans.dto.request.PlanParticipantRoleUpdateRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/request/PlanUpdateRequest.java com.back.web7_9_codecrete_be.domain.plans.dto.request.PlanUpdateRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/request/ScheduleAddRequest.java com.back.web7_9_codecrete_be.domain.plans.dto.request.ScheduleAddRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/request/ScheduleUpdateRequest.java com.back.web7_9_codecrete_be.domain.plans.dto.request.ScheduleUpdateRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/response/PlanDetailResponse.java com.back.web7_9_codecrete_be.domain.plans.dto.response.PlanDetailResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/response/PlanListResponse.java com.back.web7_9_codecrete_be.domain.plans.dto.response.PlanListResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/response/PlanResponse.java com.back.web7_9_codecrete_be.domain.plans.dto.response.PlanResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/response/ScheduleDeleteResponse.java com.back.web7_9_codecrete_be.domain.plans.dto.response.ScheduleDeleteResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/response/ScheduleListResponse.java com.back.web7_9_codecrete_be.domain.plans.dto.response.ScheduleListResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/dto/response/ScheduleResponse.java com.back.web7_9_codecrete_be.domain.plans.dto.response.ScheduleResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/entity/Route.java com.back.web7_9_codecrete_be.domain.plans.entity.Route 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/repository/PlanParticipantRepository.java com.back.web7_9_codecrete_be.domain.plans.repository.PlanParticipantRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/repository/PlanRepository.java com.back.web7_9_codecrete_be.domain.plans.repository.PlanRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/repository/RouteRepository.java com.back.web7_9_codecrete_be.domain.plans.repository.RouteRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/plans/repository/ScheduleRepository.java com.back.web7_9_codecrete_be.domain.plans.repository.ScheduleRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/global/error/code/ArtistErrorCode.java com.back.web7_9_codecrete_be.global.error.code.ArtistErrorCode 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/global/error/code/GenreErrorCode.java com.back.web7_9_codecrete_be.global.error.code.GenreErrorCode 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/global/error/code/PlanErrorCode.java com.back.web7_9_codecrete_be.global.error.code.PlanErrorCode 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/artists/service/SpotifyService.java com.back.web7_9_codecrete_be.domain.artists.service.SpotifyService 1.09% 2 182
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/entity/Concert.java com.back.web7_9_codecrete_be.domain.concerts.entity.Concert 3.51% 2 55
src/main/java/com/back/web7_9_codecrete_be/domain/artists/entity/Artist.java com.back.web7_9_codecrete_be.domain.artists.entity.Artist 3.85% 1 25
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/service/KopisApiService.java com.back.web7_9_codecrete_be.domain.concerts.service.KopisApiService 5.88% 13 208
src/main/java/com/back/web7_9_codecrete_be/domain/users/entity/User.java com.back.web7_9_codecrete_be.domain.users.entity.User 12.90% 4 27
src/main/java/com/back/web7_9_codecrete_be/domain/plans/entity/Schedule.java com.back.web7_9_codecrete_be.domain.plans.entity.Schedule 21.74% 10 36
src/main/java/com/back/web7_9_codecrete_be/domain/plans/entity/Plan.java com.back.web7_9_codecrete_be.domain.plans.entity.Plan 27.50% 11 29
src/main/java/com/back/web7_9_codecrete_be/domain/plans/entity/PlanParticipant.java com.back.web7_9_codecrete_be.domain.plans.entity.PlanParticipant 50.00% 11 11

🔗 Full HTML report: See artifact jacoco-full-html on this run → https://github.com/prgrms-web-devcourse-final-project/WEB7_9_codecrete_BE/actions/runs/20253861514

package com.back.web7_9_codecrete_be.domain.artists.dto.response;

public record AlbumResponse(
String albumName,
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

DTO에도 @Schema 통해서 설명 붙여주시면 좋을 것 같아요

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

넵 수정하겠씁니다!

@Transactional
public Artist createArtist(String artistName, String artistGroup, String artistType, String genreName) {
Genre genre = genreService.findByGenreName(genreName);
if(!artistRepository.existsByArtistName(artistName) || !artistRepository.existsByNameKo(artistName)) {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

if (artistRepository.existsByArtistName(artistName)
|| artistRepository.existsByNameKo(artistName))
이렇게 해야 새로운 아티스트를 등록할 수 있을 것 같습니다!

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

넵 그렇게 수정하도록 하겠습니다!

@Creamcheesepie Creamcheesepie merged commit 697d54e into main Dec 16, 2025
2 checks passed
@Creamcheesepie Creamcheesepie deleted the feat/#66 branch December 16, 2025 02:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Artist] CRUD 구현

3 participants