일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- EnableWebMvc
- java list
- spring3 spring2 traceid
- java.util.list
- SpringMVC
- spring MVC
- Sleuth
- awssecretsmanagerpropertysources
- aws secretmanager
- Spring Boot
- map
- asyncconfigurer
- micrometer tracing
- list
- @FunctionalInterface
- kotlin
- b3-propagation
- Spring JPA
- asynccustomautoconfiguration
- spring
- traceasynccustomautoconfiguration
- elasticsearch
- java lambda
- DeferredImportSelector
- ResponseBody
- CompletableFuture
- HashMap
- jpa
- traceId
- java
- Today
- Total
목록자바 (22)
du.study기록공간
이번에는 Optional 사용법에 대해 기록해보려 합니다. 먼저 Optional은 NULL 처리( 또는 반환값이 없는 ) 에 유용하게 사용되며 이 덕분에 런타임에서 발생되는 NullPointerException를 좀 더 깔끔하도록?(사실 코드 보는사람 케바케인지라.. 만약 자바 개발자가 Optional을 모른다면) 지원해주고 있습니다. 현재 저희 프로젝트에서도 dao 에서 받아온 값을 Optional을 통해 처리하고 있어 이번 기회에 기록해보려 합니다. 테스트는 간단하게 main함수에서 private함수를 호출하는 식으로 테스트 할 예정입니다. 먼저 Optional을 살펴보면 다음과같은 변수를 가지고 있습니다. public final class Optional { private static final O..
stream을 사용하는 도중 자주 사용하지만 자꾸 까먹어 다시 찾아보는 기능을 기록하려합니다. 우리는 객체를 사용하면서 정렬을 하거나, 정렬을 하고 출력을 하는등에 대한 기능을 사용할 때가 많습니다. 이 기능은 스트림을 사용하면 간단하게 사용할 수 있습니다. 다음은 예제 코드입니다. // Integer List를 reverseOrder한 결과 public static void main(String[] args) { List list = new ArrayList(); list.add(1); list.add(2); list.add(45); list.add(6); list.add(3); list.add(7); list.add(11); list.add(13); list.add(1); list.stream().s..
이번에는 Map의 구현체인 ConcurrentHashMap에 대하여 작성하려합니다. 이전에 작성했던 HashMap을 보면 내부적으로 동기화를 보장해주는 부분은 없습니다. (즉 멀티스레드 환경에서 HashMap은 동기화를 보장해 주지 않는다.) 그렇다면 HashTable은 어떨까? HashTable의 메서드를 간략하게 살펴보면 다음과 같습니다. public synchronized boolean contains(Object value) public synchronized boolean containsKey(Object key) public synchronized V get(Object key) public synchronized V put(K key, V value) public synchronized V ..
이번에는 Set에 대해 간단히 정리하려 합니다. 먼저 Set의 자료구조를 살펴보면 다음과 같습니다. 1. Set에 들어오는 값(Key)의 중복을 허용하지 않는다. 2. 저장 순서를 유지하지 않는다.(물론 구현체에 따라 순서대로 뽑을 순 있다.) Set을 구현한 구현체는 HashSet, TreeSet, LinkedHashSet, ConcurrentSkipListSet 등 다양하게 있으나 주로 사용하는 자료구조인 HashSet부터 정리해보려 합니다. HashSet 클래스는 해시 알고리즘을 사용하기에 검색속도가 매우 빠르며 (O(1) 또는 거의 근접) 합니다. 또한 해시를 사용하기 위해 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장합니다. HashMap 관련 정리 : https://duooo-sto..
이번엔 List의 구현체중 Stack에 대해 기록하려 합니다. 정확하게 Stack 은 Vactor를 상속받은 구현체입니다. 하지만 stack에서 제공해주는 대부분의 기능은 거의 대부분 vector의 기능을 사용하고 있습니다. 먼저 일반적인 자료구조의 스텍을 먼저 살펴보면 가장 나중에 들어간 데이터가 가장 먼저 나오게되는 LIFO(Last In First Out)의 특징을 가지고 있습니다. 데이터를 넣는 과정을 push라고 칭하며 데이터를 빼는 작업을 pop이라고 부르게 됩니다. 그렇다면 이제 Stack을 사용할때 주로 사용하는 기능들을 살펴보겠습니다. 1. push public E push(E item) { this.addElement(item); return item; } //아래부턴 Vector내부 ..
저번에 확인했던 ArrayList이후로 LinkedList를 확인하려 합니다. 이번에도 ArrayList와 동일하게 GET, ADD, REMOVE 연산에 대해 확인해보려 합니다. 1. GET public E get(int index) { this.checkElementIndex(index); return this.node(index).item; } private void checkElementIndex(int index) { if (!this.isElementIndex(index)) { throw new IndexOutOfBoundsException(this.outOfBoundsMsg(index)); } } // checkElementIndex함수에서 호출 private boolean isElementI..
이번에는 자바에서 흔히 사용한는 컬렉션중 하나인 List를 정리하려합니다. 저는 List중에서도 거의 ArrayList만 사용을 하고 있었는데요, 최근 어쩌다 구현체를 제대로 다 모르는거 아닌가 싶은 생각이 들어서 몇가지 정리하려 합니다. 간단하게 List를 먼저 소개하면 다음과 같은 특징이 있습니다. 1. 인덱스를 통해서 원하는 List내부에 접근할 수 있다. 2. 중복을 허용하며, 순서가 순서가 있다. 3. 대표적인 구현체로는 ArrayList, LinkedList, Stack 등이 있다. 이번에 정리하려 하는 구현체는 아마 다들 매우 많이 사용하고 있을 ArrayList를 정리하려 합니다. 1.GET 연산 해당부분은 사실상 별다른게 없습니다. 인덱스 체크후 값을 가져오는 로직으로 되어있습니다. 2...
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..