Full output
GPT-5.6 Luna 원문 결과물
주문 금액 계산 엔진 보수 / OpenAI / GPT-5.6 Luna / 실행일 2026-07-28
gpt-5.6-luna-high
구현 요약
- 주문 행별 상품 할인과 주문 단위 회원·쿠폰 할인을 요구된 순서로 계산하도록
OrderPricingService를 보수했습니다. - 회원 할인과 쿠폰 할인은
BigInteger기반의 최대 잔여법으로 비례 배분하고, 소수 부분이 같은 경우 입력 순서를 유지합니다. - 상품 할인율은 버림 처리하며, 패션 상품의 수량 조건을
3개 이상으로 적용했습니다. - 쿠폰 임계값과 배송비를 모든 선행 할인 적용 후 상품 금액 기준으로 계산했습니다.
Math.multiplyExact,Math.addExact,Math.subtractExact와 JSON 파싱 오류 처리를 사용해 개별 곱셈·합산·최종 계산 오버플로를 계약된 400 응답으로 변환했습니다.- null, 빈 주문, 공백 상품 ID, 음수 단가, 잘못된 수량, null 필드, 정의되지 않은 enum을
INVALID_PRICING_REQUEST오류로 처리했습니다.
변경 파일
verification/work/12-order-pricing-engine/gpt-5.6-luna-high/src/main/java/com/samebrief/pricing/service/OrderPricingService.javaverification/work/12-order-pricing-engine/gpt-5.6-luna-high/src/main/java/com/samebrief/pricing/service/InvalidPricingRequestException.javaverification/work/12-order-pricing-engine/gpt-5.6-luna-high/src/main/java/com/samebrief/pricing/api/PricingController.javaverification/work/12-order-pricing-engine/gpt-5.6-luna-high/src/main/java/com/samebrief/pricing/api/PricingExceptionHandler.javaverification/work/12-order-pricing-engine/gpt-5.6-luna-high/src/test/java/com/samebrief/pricing/OrderPricingControllerTest.java
공개 DTO·enum·JSON 필드명·컨트롤러 경로·Gradle 설정은 변경하지 않았습니다.
검증
실행 명령:
./gradlew test
결과:
BUILD SUCCESSFUL
tests=10, failures=0, errors=0
구현 테스트에서는 상품 할인 버림, 패션 수량 경계, 회원 할인 대상 제외, 최대 잔여법 배분, 쿠폰 임계값·상한, 할인 후 배송비, 원격 배송비, 무료 배송 경계, 입력 오류와 곱셈·합산 오버플로를 검증했습니다.
트레이드오프
금액 비례 계산의 중간 곱셈이 long을 넘을 수 있으므로 표준 라이브러리의 BigInteger를 사용했습니다. 금액 도메인에 맞는 정확성을 확보하는 대신 단순한 long 연산보다 구현과 계산 비용이 조금 증가합니다.