refactor: member 패키지 내 DTO 네이밍 통일 및 불필요하게 느껴지는 Schema 제거

This commit is contained in:
이상진 2025-07-22 14:32:52 +09:00
parent a67111105b
commit 9681de5e88
6 changed files with 21 additions and 24 deletions

View File

@ -8,17 +8,17 @@ import roomescape.common.exception.ErrorType
import roomescape.common.exception.RoomescapeException import roomescape.common.exception.RoomescapeException
import roomescape.member.infrastructure.persistence.MemberEntity import roomescape.member.infrastructure.persistence.MemberEntity
import roomescape.member.infrastructure.persistence.MemberRepository import roomescape.member.infrastructure.persistence.MemberRepository
import roomescape.member.web.MembersResponse import roomescape.member.web.MemberRetrieveListResponse
import roomescape.member.web.toResponse import roomescape.member.web.toRetrieveResponse
@Service @Service
@Transactional(readOnly = true) @Transactional(readOnly = true)
class MemberService( class MemberService(
private val memberRepository: MemberRepository private val memberRepository: MemberRepository
) { ) {
fun findAll(): MembersResponse = MembersResponse( fun findAll(): MemberRetrieveListResponse = MemberRetrieveListResponse(
memberRepository.findAll() memberRepository.findAll()
.map { it.toResponse() } .map { it.toRetrieveResponse() }
.toList() .toList()
) )

View File

@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.http.ResponseEntity import org.springframework.http.ResponseEntity
import roomescape.auth.web.support.Admin import roomescape.auth.web.support.Admin
import roomescape.common.dto.response.CommonApiResponse import roomescape.common.dto.response.CommonApiResponse
import roomescape.member.web.MembersResponse import roomescape.member.web.MemberRetrieveListResponse
@Tag(name = "2. 회원 API", description = "회원 정보를 관리할 때 사용합니다.") @Tag(name = "2. 회원 API", description = "회원 정보를 관리할 때 사용합니다.")
interface MemberAPI { interface MemberAPI {
@ -20,5 +20,5 @@ interface MemberAPI {
useReturnTypeSchema = true useReturnTypeSchema = true
) )
) )
fun findAll(): ResponseEntity<CommonApiResponse<MembersResponse>> fun findAll(): ResponseEntity<CommonApiResponse<MemberRetrieveListResponse>>
} }

View File

@ -13,8 +13,8 @@ class MemberController(
) : MemberAPI { ) : MemberAPI {
@GetMapping("/members") @GetMapping("/members")
override fun findAll(): ResponseEntity<CommonApiResponse<MembersResponse>> { override fun findAll(): ResponseEntity<CommonApiResponse<MemberRetrieveListResponse>> {
val response: MembersResponse = memberService.findAll() val response: MemberRetrieveListResponse = memberService.findAll()
return ResponseEntity.ok(CommonApiResponse(response)) return ResponseEntity.ok(CommonApiResponse(response))
} }

View File

@ -3,22 +3,19 @@ package roomescape.member.web
import io.swagger.v3.oas.annotations.media.Schema import io.swagger.v3.oas.annotations.media.Schema
import roomescape.member.infrastructure.persistence.MemberEntity import roomescape.member.infrastructure.persistence.MemberEntity
fun MemberEntity.toResponse(): MemberResponse = MemberResponse( fun MemberEntity.toRetrieveResponse(): MemberRetrieveResponse = MemberRetrieveResponse(
id = id!!, id = id!!,
name = name name = name
) )
@Schema(name = "회원 조회 응답", description = "회원 정보 조회 응답시 사용됩니다.") data class MemberRetrieveResponse(
data class MemberResponse( @field:Schema(description = "회원 식별자")
@field:Schema(description = "회원의 고유 번호")
val id: Long, val id: Long,
@field:Schema(description = "회원 이름") @field:Schema(description = "회원 이름")
val name: String val name: String
) )
@Schema(name = "회원 목록 조회 응답", description = "모든 회원의 정보 조회 응답시 사용됩니다.") data class MemberRetrieveListResponse(
data class MembersResponse( val members: List<MemberRetrieveResponse>
@field:Schema(description = "모든 회원의 ID 및 이름")
val members: List<MemberResponse>
) )

View File

@ -2,8 +2,8 @@ package roomescape.reservation.web
import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.annotation.JsonProperty
import io.swagger.v3.oas.annotations.media.Schema import io.swagger.v3.oas.annotations.media.Schema
import roomescape.member.web.MemberResponse import roomescape.member.web.MemberRetrieveResponse
import roomescape.member.web.toResponse import roomescape.member.web.toRetrieveResponse
import roomescape.reservation.infrastructure.persistence.ReservationEntity import roomescape.reservation.infrastructure.persistence.ReservationEntity
import roomescape.reservation.infrastructure.persistence.ReservationStatus import roomescape.reservation.infrastructure.persistence.ReservationStatus
import roomescape.theme.web.ThemeResponse import roomescape.theme.web.ThemeResponse
@ -55,7 +55,7 @@ data class ReservationResponse(
@field:Schema(description = "예약한 회원 정보") @field:Schema(description = "예약한 회원 정보")
@field:JsonProperty("member") @field:JsonProperty("member")
val member: MemberResponse, val member: MemberRetrieveResponse,
@field:Schema(description = "예약 시간 정보") @field:Schema(description = "예약 시간 정보")
@field:JsonProperty("time") @field:JsonProperty("time")
@ -72,7 +72,7 @@ data class ReservationResponse(
fun ReservationEntity.toCreateResponse(): ReservationResponse = ReservationResponse( fun ReservationEntity.toCreateResponse(): ReservationResponse = ReservationResponse(
id = this.id!!, id = this.id!!,
date = this.date, date = this.date,
member = this.member.toResponse(), member = this.member.toRetrieveResponse(),
time = this.time.toCreateResponse(), time = this.time.toCreateResponse(),
theme = this.theme.toResponse(), theme = this.theme.toResponse(),
status = this.reservationStatus status = this.reservationStatus

View File

@ -8,7 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.MockMvc
import roomescape.member.web.MemberController import roomescape.member.web.MemberController
import roomescape.member.web.MembersResponse import roomescape.member.web.MemberRetrieveListResponse
import roomescape.util.MemberFixture import roomescape.util.MemberFixture
import roomescape.util.RoomescapeApiTest import roomescape.util.RoomescapeApiTest
import kotlin.random.Random import kotlin.random.Random
@ -40,9 +40,9 @@ class MemberControllerTest(
status { isOk() } status { isOk() }
}.andReturn().response.contentAsString }.andReturn().response.contentAsString
val response: MembersResponse = readValue( val response: MemberRetrieveListResponse = readValue(
responseJson = result, responseJson = result,
valueType = MembersResponse::class.java valueType = MemberRetrieveListResponse::class.java
) )
assertSoftly(response.members) { assertSoftly(response.members) {