서비스 코드 주석 제거
- 서비스 코드에서 주석을 제거해야 하는 이유
- 코드를 수정했는데, 주석을 수정하지 않은 경우 상충되는 내용이 서비스 장애까지 이어질 수 있다.
- 기존 서비스 코드
@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 메서드는 제외했다.
'Projects > HubEleven' 카테고리의 다른 글
| [리팩토링] Stock 도메인 리팩토링 (2) (0) | 2025.12.27 |
|---|---|
| [리팩토링] Stock 도메인 리팩토링 (1) (0) | 2025.12.18 |
| [동시성 처리] 재고 감소 통합 테스트 코드 2 (MSA 환경에서 코드 공유하기) (0) | 2025.12.11 |
| [동시성 처리] 실제 DB와 동일한 환경에서 테스트하기 (0) | 2025.12.09 |
| [동시성 처리] 재고 감소 통합 테스트 코드 1 (초안) (0) | 2025.12.08 |