Projects/HubEleven

[리팩토링] 서비스 코드 주석 제거, 메서드명 변경

annovation 2025. 12. 17. 22:25

서비스 코드 주석 제거

  • 서비스 코드에서 주석을 제거해야 하는 이유
    • 코드를 수정했는데, 주석을 수정하지 않은 경우 상충되는 내용이 서비스 장애까지 이어질 수 있다.
  • 기존 서비스 코드
@Override
@Transactional(readOnly = true)
public StockResult getStockByProductId(UUID productId) {

    // 상품 존재 여부 확인
    Product product = validateProductExists(productId);

    // 삭제된 상품인지 확인
    if (product.isDeleted()) {
        throw new GlobalException(PRODUCT_DELETED);
    }

    // 재고 조회
    Stock stock = validateStockExists(productId);

    return StockResult.from(stock, product.getName());
}

 

→ 이렇게 기존 서비스 코드에서는 주석으로 각 코드에 대한 간단한 설명을 썼었는데, 위와 같은 이유로 모두 제거했다.


메서드명 변경

  • 메서드명 변경
    • validate 메서드인데, return 값이 존재하면, 메서드명과 로직이 상충하여 코드를 읽는 다른 사람에게 혼란을 줄 수 있다.
  • 기존 서비스 코드의 validate 메서드
private Product validateProductExists(UUID productId) {
    return productRepository
            .findByIdNotDeleted(productId)
            .orElseThrow(() -> new GlobalException(PRODUCT_NOT_FOUND));
}

 

→ 이렇게 기존 서비스 코드의 상품 존재 여부를 확인하는 메서드는 메서드명과 로직이 상충하여 메서드명을 getProductOrThrow 로 변경하였다.

 

→ 기존 validateProductExists 메서드명의 경우, return 을 기대하기 어려운 메서드명인데 현재 로직에서는 productId 를 반환하고 있다.

 

→ 따라서, validate 메서드와 get 메서드를 분리하여 두 메서드를 작성할지 고민하다 서비스 코드에서는 productId 를 가져와 사용하기 때문에 validate 메서드는 제외했다.