https://github.com/traeper/api_documentation GitHub - traeper/api_documentation: OpenApi Spec을 이용한 API 문서화 OpenApi Spec을 이용한 API 문서화. Contribute to traeper/api_documentation development by creating an account on GitHub. github.com 해당 링크 참조 RestDocs 에 스웨거 API 테스트 화면을 적용하여 사용이 가능하다. https://oth3410.tistory.com/313 [리팩토링] Swagger UI + Spring RestDocs 적용기 Swagger UI 와 Spring RestDocs 의 장 단점의 비교Swagg..
스웨거는 기본적으로컴파일 단계에서 모든 속성값이 결정된다.String.format 같은 문자열 메서드는런타임 시점에 값이 동적으로 평가되기에스웨거에서 String.format 같은 메서드는 사용이 불가능하다. examples 에..examples = @ExampleObject(value = "{\n" + " \"errorCode\": \"CART_PRODUCT_NOT_FOUND\",\n" + " \"message\": \"장바구니에 상품을 추가하지 못했습니다.\"\n" + "}"))이런식으로 더러운 문자열을 넣어야한다.물론 자바 15 ( 정시출시가 15임 )에서는""" """ 같은삼중 따옴표를 사용하여 문자열을 쉽게 정의할 수 있다.보통 11 이후에 17을 사용하니 17에서는 쉽게 문자열 정의가 가능하다..
스웨거에서 왜 안뜨는 DTO 가 있는건지 의문이 들었다.찾아보니스웨거에서의 DTO 에 표시되는 케이스는 컨트롤러에서 반환되거나 파라미터로 사용되는 외부에 공개되는 DTO 의 경우에만 표시된다고 한다.스웨거에서의 DTO 표기법 @Schema(description = "장바구니에 담긴 상품 수량을 변경하기 위한 요청 DTO") public class CartProductUpdateRequestDTO { @NonNull @Schema(description = "장바구니 ID", example = "1", required = true) Long cartId; @NonNull @Schema(description = "상품 ID", example = "1", required = true) Long productId..
프로젝트 수행중 통합 테스트와 단위 테스트 간의 데이터베이스의 충돌이 발생하는 일이 생겼다.@Sql 을 이용하여 통합테스트에서 별도 테스트 데이터를 생성한 이후에@Rollback 을 시도하였지만별도로 초기화가 수행되지 않는 것 같다..이유는 솔직히 잘 모르겠다… 솔직히 파고들면 이건 끝도 없을거같아 일단 패스함..일단 테스트 후에 데이터베이스를 비우는 행위 자체는 일단 가능은 하다.Spring Boot 에서는@DirtiesContext 어노테이션을 사용해 테스트 후 Spring Application Context 를 재 로드 할 수 있다.테스트후에 사용된 데이터는 초기 상태로 돌아가게 되는 것이다.@SpringBootTest 의 경우 컨텍스트를 로드하게 이전에는 발생하지 않던 문제가 발생하는 것이 아닐까..
반환타입의 차이점EXECUTE() 는void 가 반환타입입니다.해당 메서드는 어떤 결과를 반환하는 것이 아니기에, 이후에 상황에 대한 검증이 어렵습니다Submit() 는Future 가 반환타입입니다.해당 메서드는 어떤 결과가 발생했는지 반환타입으로 받을 수 있기에, 상화에 대한 검증이 쉽습니다.작업 중의 예외처리에 관하여Execute() 작업이 실패하는 경우 그냥 에러가 발생하고 작업이 멈추게 됩니다.스레드에서 UncaughtExceptionHandler 가 발생함Submit()작업이 실패해도 Future 객체에 해당 예외 등의 관련한 정보가 일단 담기게 됩니다.이후 Future.get() 을 수행하게 된다면 그때 예외가 발생한다고 합니다.어떨 때 각자 사용하면 되느냐?submit 의 경우서비스 로직 등..
DEPARTURE("DEPARTURE", "배송지시"), DELIVERING("DELIVERING", "배송중"), FINAL_DELIVERY("FINAL_DELIVERY", "배송완료"),enum 에 위에 해당하는 한글 값이 들어가는 것은 왠만하면 권장되지 않는 행동이라고한다.또한 상수값과 value 인 DEPARTURE 는 문자가 동일하다…이런 이유때문에 삭제가 권장되긴하는데나는 enum 에 별도의 value 로 검색할 수 있는 기능이 별도 존재해야한다고 생각하기도하며만약 상수값이 변경된다면 데이터베이스에 저장되는 의미까지 변질될 가능성이 있다고 생각되기에, 유지보수의 면에서 별도 value 표기는 필수적이라고 생각된다. public void removeOrderProducts(long orderId..