전체 글 (991) 썸네일형 리스트형 CircuitBreaker: Resilience4j - 지연 및 실패 전파 방지하기 배경여러 서비스들을 운영하는 환경에서 Gateway처럼 공통으로 쓰는 서버가 있다고 가정해보면, 이 공통으로 쓰는 서버에서 지연이 발생했을 때 해당 지연이 모든 서비들로 전파되는 문제가 발생할 수 있다. 이를 막기 위해 Resilience4j 라이브러리의 CircuitBreaker 기능이 있다. 일정 호출 수, 지연 시간 등의 기준을 두고 그 시간이 넘어가면 빠르게 각 서비스들에 Response를 주는 방식이다. 그럼 지연 대기를 위해 각 서비스에서 대기 중이던 스레드들이 Response를 빠르게 받고 자원 해제가 되어 부하 지연 전파가 없어지게 된다. 더 자세한 내용은 참고 자료들을 보면 된다.ref.) https://wellbell.tistory.com/256 적용 내용 살펴보기 아래와 같이 설.. [TIL] ResponseEntity<?>, inner class File name too Long ResponseEntity: objectMapper 처리 상황다른 API에 요청을 보내고 ResponseEntity의 파라미터에 ResponseEntity으로 응답 객체의 타입을 구체화하여 받을려고 했다. 문제SomeType과 일치하지 않는 응답이 오면 유연하게 대처가 안된다. 이를 위해 ? 타입이 존재한다. 이렇게 ? 타입으로 유연하게 받은 뒤에 objectMapper 등을 이용하여 json으로 변환하고 다시 읽어들이면 유연하게 응답을 받을 수 있다. 예시ResponseEntity response = imageUpload(file);try { String jsonBody = objectMapper.writeValueAsString(response.getBody()); SomeType imageUp.. 스프링 데이터, 파일 동시에 전달 시 Swagger Schema 표시 개요정확한 내용은 아니다. 그런데 찾아봐도 답이 없는 것 같아서 기록해둔다. 상황스프링 부트 및 Swagger를 사용하여 컨트롤러에서 입력 객체(po)와 파일 업로드 리스트를 동시에 받아야하는 상황이 생겼다.@PostMapping(value = "send/mms/{type}", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE, MediaType.APPLICATION_JSON_VALUE}) public ResponseEntity sendMms( @Parameter( ... ) @PathVariable("type") @ValidType(prefix = "mms") Stri.. id 설정하기. batchInsert, UUID, GenerationType.IDENTITY 상황스프링부트 + JPA 조합에서 batchInsert를 해야하는 상황 GenerationType.IDENTITY: batchInsert 불가public void saveMessages(dto) { List messages = new ArrayList(); dto.getMsgData().forEach(msgData -> { Message newMessage = new Message( UUID.fromString(msgData.getMsgKey()), null, null, msgData.getSenderNumber(), msgData.getRecei.. [비공개] Weekly Report - 24/12/02~24/12/08, 1625일차 보호되어 있는 글입니다. Virtual Thread 기초 kakao tech meet 영상을 보고 요약했다.https://www.youtube.com/watch?v=vQP6Rs-ywlQ 실무에서 써야하는데 단순히 설정값만 넣어주면 되긴하는데 어떤 배경이 있는지 알고는 써야할 것 같아서 정리해본다. Virtual ThreadJDK21에 추가된 경량 스레드OS 스레드를 그대로 사용하지 않고 JVM 내부 스케줄링을 통해서 수 십 ~ 수 백만개의 스레드를 동시에 사용할 수 있게 해줌 기존 Thread 문제 Thread per request기본 Web Request 처리 방식은 Thread per request인데, OS 스레드 개수 제한으로 인해 개수를 늘릴 수가 없었다. Blocking I/OThread에서 I/O 작업 시 Blocking이 일어나면서 처리시.. [TIL] TSID를 사용해야하는가? 왜 Id값은 Long(bigint)로 하는가? TSID를 사용해야하는가?TSID는 보통 서버용 프로그래밍에서 사용하는 int, Long 타입의 auto increment에 비해 실행 중인 노드 정보 및 시간 정보를 포함하여 64비트 단위로 id를 생성하고 활용하는 방법이다. 대부분의 애플리케이션에서는 필요없다. DB가 분산시스템으로 2대 이상 존재하며 서로 싱크를 맞춰야하는(샤딩) 상황에서 필요하다. TSID에 대한 개념은 이 글에서 적지 않는다. 좋은 참고자료들이 많다.https://jsonobject.tistory.com/634https://tech-monster.tistory.com/228 TSID를 사용해야할 때, 사용하는 장점 여러 시스템이 동시에 DB에 insert를 할 때도 id가 중복나는 경우가 거의 발생하지 않기 때문에 안전하다. .. [비공개] Weekly Report - 24/11/25~24/12/01, 1618일차 보호되어 있는 글입니다. 이전 1 2 3 4 5 6 7 ··· 124 다음