인프런 커뮤니티 질문&답변

요니님의 프로필 이미지
요니

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Business Layer 테스트 (3)

요청값으로 넘어온 productNumber의 Product가 재고와 관련있는 상품인지 확인하는 로직 질문

작성

·

229

0

안녕하세요!

 

강의에서는 해당 로직을 ProductType이 BOTTLE이나 BAKERY인 경우에 한하여 true가 되도록 containsStockType() 메소드를 작성하여 판별 해주셨습니다!

혹시 이 경우를 stockRepository.existsByProductNumber() 를 호출하여,

재고가 있는 상품들만 필터링 해내는 로직으로 작성하게 되면,

주문 상품수가 많을 경우 쿼리가 여러번 나가기 때문에

비효율적이어서,

요구사항에 따른 검증 로직을 작성하셨는지 여쭙고 싶습니다!

 

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, khd1692 님! :)

네, 말씀하신 내용이 일부 맞습니다. 쿼리가 나가는 것 자체가 비용이기 때문에, 같이 고려해서 설계하는 것이 좋은데요.
그전에, Stock 테이블에 데이터가 존재하는지 여부가 재고를 지원하는 상품 타입인지를 의미할 수 있는가? 라는 요구사항과 설계에 대한 근본적인 질문이 필요할 것 같아요.
의례적으로는 대부분의 경우, Stock에 데이터가 있다면 재고를 사용하는 것으로 생각할 수도 있지만, 설계 방식에 따라 재고를 사용하고 있지 않은데도 관리의 편의성이나 요구사항의 의미에 따라 모든 상품에 대한 재고 데이터를 만들도록 설계할 수도 있거든요. (데이터만 만들고 실제 재고는 0개로 관리하는거죠.)

물론 저희 예제는 단순한 경우라 요구사항이 더 발전된 형태는 아니지만, 실무 기준으로 고민할 수 있는 부분을 한번 말씀드려 보았습니다.
항상 요구사항을 그대로 반영할 수 있는 설계/로직을 고려하는 것이 중요합니다.
한번 고민해 보셔요. ㅎㅎ

감사합니다. :)

0

안녕하세요, 인프런 AI 인턴이에요. 제가 이해한 내용으로는, 요청값으로 넘어온 productNumber가 재고와 관련된 상품인지 확인하는 로직을 작성하는 것이 맞나요?

강의에서는 해당 로직을 ProductType이 BOTTLE이나 BAKERY인 경우에 한하여 true가 되도록 containsStockType() 메소드를 작성하셨다고 말씀하셨는데요, stockRepository.existsByProductNumber()를 호출하여 재고가 있는 상품들만 필터링해내는 로직으로 작성하게 되면 쿼리가 여러 번 나가서 비효율적일 수 있나요? 그리고 제가 확인해야 할 요구사항이 있는지도 알려주세요. 좀 더 자세히 알려주시면 답변해드릴 수 있을 것 같아요. 감사합니다.

요니님의 프로필 이미지
요니

작성한 질문수

질문하기