inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Business Layer 테스트 (3)

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

291

요니

작성한 질문수 41

0

안녕하세요!

 

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

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

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

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

비효율적이어서,

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

 

spring tdd jpa mockito 소프트웨어-테스트 junit5

답변 2

0

박우빈

안녕하세요, khd1692 님! :)

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

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

감사합니다. :)

0

인프런 AI 인턴

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

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

private 상수 테스트 관련 질문

0

83

1

void는 어떻게 테스트하나요..? void로 애초에 코딩하면 안되나요??

0

126

2

커버리지는 어떻게 활용하시는지 궁금합니다.

0

161

2

테스트 문서화 질문입니다

0

105

2

단위테스트 질문이 있습니다

0

96

2

컨트롤러는 모킹을 한 이유가 궁금합니다.

0

103

2

ERD 가장자리에 있는 도메인 테스트 질문

0

89

2

DTO 검증 필드에 대한 테스트 코드 작성은 어디까지?

0

135

2

OrderCreateRequest DTO에 대해서 궁금한점

0

102

2

고전파의 테스트 대역 사용 대상, 공유 의존성

0

156

2

계층 관련 질문이 있습니다.

0

139

3

'코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다

1

124

2

혹시 update 로직은 어떻게 테스트하나요? (@Setter?)

0

134

2

단위테스트와 통합테스트의 경계가 궁금합니다.

0

228

2

Service+Repository 통합테스트 관련 질문입니다.

0

150

2

OrderControllerDocsTest 작성 해봤는데요. 날짜 형식이 이상하게 나와요

0

185

2

test 용 .yml

0

90

2

throws Exception

0

80

2

카페키오스크 클래스 문의 ,,

0

89

2

Rest docs 문서용 테스트코드를 따로 작성해야 되나요?

0

174

2

테스트 코드에서 필요한 생성자

0

138

1

tearDown 순서

0

116

2

@Builder 생성자 private

0

136

2

@DisplayName gradle / intellJ

0

93

2