Projects/HubEleven

[리팩토링] 공통 모듈 수정으로 인한 리팩토링

annovation 2026. 1. 15. 18:14

공통 모듈 repo 위치 변경

💡build.gradle 변경

  • repositories
repositories {
    mavenCentral()
    maven { url 'https://jitpack.io' }
}
  • implementation
implementation 'com.github.ElevenHub:HubEleven-common:v0.0.1'

 

💡변경 사유

  • 기존 common (공통 모듈) 이 팀장님 개인 repo 위치에 있어, 팀원 모두 공통 모듈 변경 가능하도록 팀 organization repo로 변경

응답값 변경

💡기존 코드

@Operation(summary = "주문 생성 API", description = "새로운 주문을 생성한다.")
    @PostMapping
    public ResponseEntity<ApiResponse<OrderResponse>> create(
            @Valid @RequestBody OrderRequests.Create request) {

        OrderResult result = orderService.create(request);

        return ApiResponseEntity.success(OrderResponse.from(result));
    }
  • return ApiResponseEntity.success(OrderResponse.from(result));

💡변경 코드

@Operation(summary = "주문 생성 API", description = "새로운 주문을 생성한다.")
    @PostMapping
    public ResponseEntity<ApiResponse<OrderResponse>> create(
            @Valid @RequestBody OrderRequests.Create request) {

        OrderResult result = orderService.create(request);

        return ResponseEntity.status(HttpStatus.CREATED)
                .body(ApiResponse.success(OrderResponse.from(result)));
    }
  • return ResponseEntity.status(HttpStatus.CREATED).body(ApiResponse.success(OrderResponse.from(result)));

💡변경 사유

  •  

ErrorCode

💡기존 코드

public enum OrderErrorCode implements StatusCode {
    // Company
    REQUESTOR_COMPANY_NOT_FOUND(HttpStatus.NOT_FOUND, "업체를 찾을 수 없습니다."),
    RECIPIENT_COMPANY_NOT_FOUND(HttpStatus.NOT_FOUND, "업체를 찾을 수 없습니다."),

    // Product
    PRODUCT_NOT_FOUND(HttpStatus.NOT_FOUND, "상품을 찾을 수 없습니다."),

    // Stock
    STOCK_RESTORE_FAILED(HttpStatus.BAD_REQUEST, "재고 복구에 실패했습니다."),
    STOCK_INSUFFICIENT(HttpStatus.BAD_REQUEST, "재고가 부족합니다."),

    // Order
    ORDER_NOT_FOUND(HttpStatus.NOT_FOUND, "주문을 찾을 수 없습니다."),

    // Authorization
    MASTER_ONLY(HttpStatus.FORBIDDEN, "MASTER 권한이 있어야 수행할 수 있습니다."),
    HUB_MANAGER_ONLY(HttpStatus.FORBIDDEN, "HUB_MANAGER 권한이 있어야 수행할 수 있습니다."),
    DELIVERY_MANAGER_ONLY(HttpStatus.FORBIDDEN, "DELIVERY_MANAGER 권한이 있어야 수행할 수 있습니다."),
    COMPANY_MANAGER_ONLY(HttpStatus.FORBIDDEN, "COMPANY_MANAGER 권한이 있어야 수행할 수 있습니다.");

    private final HttpStatus httpStatus;
    private final String message;

    @Override
    public String getName() {
        return name();
    }
}

 

💡변경 코드

@Getter
@RequiredArgsConstructor
public enum OrderErrorCode implements ErrorCode {
    // Company
    REQUESTOR_COMPANY_NOT_FOUND(HttpStatus.NOT_FOUND, "업체를 찾을 수 없습니다."),
    RECIPIENT_COMPANY_NOT_FOUND(HttpStatus.NOT_FOUND, "업체를 찾을 수 없습니다."),

    // Product
    PRODUCT_NOT_FOUND(HttpStatus.NOT_FOUND, "상품을 찾을 수 없습니다."),

    // Stock
    STOCK_RESTORE_FAILED(HttpStatus.BAD_REQUEST, "재고 복구에 실패했습니다."),
    STOCK_INSUFFICIENT(HttpStatus.BAD_REQUEST, "재고가 부족합니다."),

    // Order
    ORDER_NOT_FOUND(HttpStatus.NOT_FOUND, "주문을 찾을 수 없습니다."),

    // Authorization
    MASTER_ONLY(HttpStatus.FORBIDDEN, "MASTER 권한이 있어야 수행할 수 있습니다."),
    HUB_MANAGER_ONLY(HttpStatus.FORBIDDEN, "HUB_MANAGER 권한이 있어야 수행할 수 있습니다."),
    DELIVERY_MANAGER_ONLY(HttpStatus.FORBIDDEN, "DELIVERY_MANAGER 권한이 있어야 수행할 수 있습니다."),
    COMPANY_MANAGER_ONLY(HttpStatus.FORBIDDEN, "COMPANY_MANAGER 권한이 있어야 수행할 수 있습니다.");

    private final HttpStatus httpStatus;
    private final String message;
}
  • implements 를 ErrorCode 로 변경
  • 기존 StatusCode 의 Override 메서드 삭제

💡변경 사유

  •