일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- map
- java.util.list
- java
- asyncconfigurer
- b3-propagation
- Spring Boot
- CompletableFuture
- java lambda
- @FunctionalInterface
- awssecretsmanagerpropertysources
- HashMap
- traceId
- java list
- SpringMVC
- elasticsearch
- ResponseBody
- list
- asynccustomautoconfiguration
- EnableWebMvc
- Spring JPA
- jpa
- micrometer tracing
- kotlin
- traceasynccustomautoconfiguration
- Sleuth
- spring
- DeferredImportSelector
- spring MVC
- aws secretmanager
- spring3 spring2 traceid
- Today
- Total
목록분류 전체보기 (69)
du.study기록공간
Map Interface의 구현체중의 하나로 HashMap과 기능이 유사하지만, LinkedHashMap은 입력한 순서대로 key의 순서를 보장해 준다는 특징이 있습니다. 이 LinkedHashMap 는 HashMap을 extends 하고있기에 내부적인 기능을 그대로 사용하지만, key의 순서를 보장하기위해 LinkedHashMap에서만 추가 구현된 부분이 있습니다. 이번 포스팅에서는 이 부분을 기록해 보겠습니다. 먼저 LinkedHashMap 생성자를 살펴보면 다음과 같습니다. public LinkedHashMap(int initialCapacity, float loadFactor) { super(initialCapacity, loadFactor); accessOrder = false; } public..
이전 글로 Map interface에 대해서 기록한 적이 있습니다. : https://duooo-story.tistory.com/18 Map중에서도 학생때부터, 그리고 실무에서도 진짜 많이 사용하는 HashMap을 기준으로 put을 진행했을때, 내부 코드가 어떻게 진행되는지에 대해서 이번에 기록하려 합니다. 먼저 hashMap 이란 에 대해서 간략하게 정리하겠습니다. HashMap은 key,value pair로 데이터를 저장하며, key의 중복을 허용하지 않습니다. 또한 순서를 보장하지 않으며 key,value 값으로 null을 허용합니다. 내부적으로 데이터를 Burket이라는 걔념을 통하여 데이터를 저장합니다. key값 Object의 key.hashCode() 함수를 이용하여 어떤 버켓의 데이터 리스트..
이번에는 Java Map에 대해서 정리하려 합니다. 예전에 알고리즘 사용할 때, 머리속에서 정리한건 있는데 글을 쓸려하니 뭔가 하나씩 애매.. 해서 이번기회에 기록하려 합니다. 현재 자바 진형에서 Map Interface 구현체는 상당히 많이 존재합니다. 정말 다양한 Map이 있지만 결국 이것들은 Map 이라는 Interface를 구현하는 구현체들로 같은 메서드를 제공하기에 각각의 구현체 이전에 간단하게 Map Interface가 제공하는 기능을 정리하려 합니다. 해당 구현체들 맨 상위에 있는 Map Interface를 살펴보면 다음과 같습니다. java 1.2 부터 지원해주던 기능 int size(); - 해당 map의 size를 리턴해줍니다. boolean isEmpty() - key-value ma..
앞에 두개의 포스팅을 통하여 @ControllerAdvice,@ExceptionHandler를 통한 Exception 방법과 WebMvcConfigurer를 통하여 직접 등록한 Exception도 결국 같은 부분에서 Exception이 호출됩니다. DispatcherServlet 에서 processDispatchResult 안의 해당 부분을 통하여 Exception을 뱉어내게 됩니다. if (exception != null) { if (exception instanceof ModelAndViewDefiningException) { logger.debug("ModelAndViewDefiningException encountered", exception); mv = ((ModelAndViewDefiningE..
저번 Exeption처리 방법으로 AbstractHandlerExceptionResolver를 사용하는 방법으로 포스팅을 한 적이 있습니다. 관련 글 : https://duooo-story.tistory.com/15 이번에는 @ControllerAdvice, @ExceptionHandler 를 사용한 Exception방법에 대해서 기록하려 합니다. 먼저 @ControllerAdvice 는 전역 컨트롤러로 불러며, 컨트롤러 공통적으로 사용할 것이 있을때, 해당 어노테이션을 사용할 수 있습니다. 예를 들면 다음과 같은 상황에서 사용할 수 있습니다. 1. Exception 처리 2. @InitBinder를 이용한 설정세팅 ( 이전 포스팅에서 언급한 적이 있지만, 너무 다양한 기능을 지원해주기에 추후에 포스팅으..
각각의 컨트롤러에서 Exeption 개별적으로 처리한다는 건 중복되는 코드도 많아질뿐더러 관리하기가 상당히 까다로운것 같아 Exception을 처리하는 방법에 대해 고민 및 조사를 했었습니다. 그래서 이번에는 Exeption에 대해서 공통으로 처리하는 방법 두가지에 대해서 기록하려 합니다. 1. AbstractHandlerExceptionResolver 를 사용하는방법 2. @ControllerAdvice, @ExceptionHandler를 이용하는 방법 먼저 AbstractHandlerExceptionResolver 를 이용하는 방법에 대해서 기록하겠습니다. 우선 AbstractHandlerExceptionResolver를 extends받는 클래스를 생성 후, 이 클레스를 implements WebMv..
저번 포스팅에서 @Validated and BindingResult에 대해서 기록한적이 있습니다. https://duooo-story.tistory.com/11
처음 개발팀으로 와서 맨 처음 사용했고 현재까지 서비스에 이용하고 있는 몽고디비에 대해서 정리하고자 합니다. 처음에 mongodb 관련 기초기식을 익힐때, 어떤건 mongod, mongos로 불리고, config 서버도 있고 레플리카 셋도 있고,아비터 서버는 또 뭔지.. 뭔가 가장 기본이 되는 구조에 대해서 이해하기가 어려웠던 기억이 있어서 이번기회에 몽고디비 샤드 구조의 아키텍쳐에 대해 기록해보려 합니다. 몽고디비 메뉴얼에서 나오는 구조는 다음과 같습니다. 몽고디비의 샤딩 구조에서 가장 중요한 3가지 요소로 Shard 서버, Config서버, Router 서버가 있습니다. Router 서버 기본적으로 라우터라고 불리는 mongos 서버는 사용자의 요청 쿼리를 어떤 샤드 서버에 전달해야할지 결정 및 쿼리..
웹 서비스 개발을 진행하면서 저는 Fiddler 라는 툴을 사용하고 있습니다. 피들러의 모든 기능을 사용하고 있지는 않지만 저는 현재 http, https 응답 캐치 및 ip설정변경 (국가별 서비스화면 확인용.. 사실 크롬 플러그인을 쓰면 더 편합니다.) QA분들과의 원인분석등 여러 이유로 피들러 툴을 사용하고 있습니다. 피들러에서는 HTTPS도 캡쳐를 편하게 해주는 기능을 제공하는데요, 하지만 피들러도 Ios에 예외는 없었습니다. ios 이슈를 확인을 하기위해 피들러를 킨 순간 Tunnel to port 443에 200 응답만 떨어질 뿐... 응답값이 없습니다. 다행이 피들러 Docs에서 아주 자세히 사용법을 알려주고 있었습니다 이걸 생각못하고 삽질을 너무 오래..흠흠 https://docs.teler..
이번에는 모델의 검증작업, 모델 바인딩 과정에서 발생되는 에러의 결과를 저장해주는 BindingResult에 대해서 기록하려 합니다. 만약 이런 해당사항의 컨트롤러,도메인이 있다고 가정하겠습니다. @GetMapping("/success-test") @ResponseBody public String errorBindTest(@Validated TestDomain domain , BindingResult bindingResult){ if(bindingResult.hasErrors()){ return bindingResult.getAllErrors().get(0).getDefaultMessage(); } return "success"; } @GetMapping("/error-test") @ResponseBod..