Spring3 [Spring] S3 파일 업로드 멀티 스레드 방식의 비동기 처리 문제 상황지난해 개발한 서비스에서 운영 중 하나의 상품에 고용량 이미지를 10장을 업로드하여 timeout이 발생하는 문제가 있었습니다. 이로 인해 상품 등록이 완료되기 전에 동일 요청이 들어와 동일한 상품이 2개 DB 등록되기도 했습니다. 이 문제는 DB에서 제약조건을 걸어 해결하였고, 관련 포스팅은 다음 작성해서 링크를 걸어 놓으려고 합니다. 다시 본론으로 돌아와 timeout이 발생한 근본적인 이유는 무엇일까요? 상품 등록은 크게 3가지 과정을 거칩니다.1. 원본 이미지 S3 업로드2. 이미지 리사이징 (썸네일 이미지)3. 썸네일 이미지 S3 업로드 당시 코드는 동기적으로 모든 이미지를 1,2,3 번 과정을 거치고 있었고, 가장 수행 볼륨이 큰 1번에서 많은 시간이 소요된 것으로 보입니다. 당시에는.. Spring 2025. 5. 29. 요청 매핑(RequestMapping) @RequestMapping("/hello-basic") /hello-basic URL 호출이 오면 이 메서드가 실행하도록 매핑한다. 대부분의 속성은 배열로 제공하므로 다중 설정이 가능하다. {"/hello-basic", "/hello-go"} Spring 2022. 1. 25. 로깅 로깅은 System.out.println()같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다. 로그 선언 private Logger log = LoggerFactory.getLogger(getClass()); private static final Logger log = LoggerFactory.getLogger(Xxx.class) 이 선언들을 대체하기 위해 @Slf4j 롬복 사용 로그 호출 log.info("hello") System.out.println("hello") 올바른 사용법 log.debug("data={}", data) log.debug("date=" + data) 더하기 연산이 발생하기 때문에 사용하지 않는다. 로그 사용시 장점 1.. Spring 2022. 1. 25. 이전 1 다음