일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring Boot
- elasticsearch
- CompletableFuture
- DeferredImportSelector
- SpringMVC
- java lambda
- asyncconfigurer
- awssecretsmanagerpropertysources
- aws secretmanager
- Sleuth
- java list
- HashMap
- Spring JPA
- java
- traceId
- @FunctionalInterface
- list
- jpa
- spring
- b3-propagation
- spring3 spring2 traceid
- ResponseBody
- map
- micrometer tracing
- traceasynccustomautoconfiguration
- EnableWebMvc
- kotlin
- spring MVC
- java.util.list
- asynccustomautoconfiguration
- Today
- Total
목록분류 전체보기 (69)
du.study기록공간
이번엔 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...
요즘 중국서버 구축을 시작하는 단계에서 신규 프레임워크 관련 얘기가 나왔고, 별도의 톰켓 같은 것을 서버에 설치하고 싶지않아 내장 컨테이너 고려를 하는 도중, 기존에도 Spring을 사용하고 있었기에 Spring Boot를 테스트하게 되었습니다. 천천히 하나씩 작성하려하지만 이번에는 역시, 가장 기초부분인 생성부터 기록하려 합니다. 저의 경우 intellij로 설정중에 있습니다. 만약 본인이 Intellij 커뮤니티 버전을 사용하다면, 해당 사이트를 통해서 간단하게 SpringBoot 프로젝트 생성이 가능합니다. (intellij 유로버전이라면 인텔리제이 안에서 바로 생성할 수 있습니다.) https://start.spring.io/ 저는 web,maven을 사용할것이기에 다음과 같이 세팅 후, Gene..
스프링 웹 프레임워크를 사용하면서 헨들러 메서드를 사용할 때, 우리는 흔히 @Controller 또는 @RestController를 사용하고 있습니다. 스프링에서 @Controller, @RestController 를 살펴보면 아래와 같이 되어있습니다. @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Controller { @AliasFor( annotation = Component.class ) String value() default ""; } @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Docu..
이번에는 Elasticsearch heap 메모리 설정 관련 포스팅을 작성하고자 합니다. 해당글은 아래 사이트들을 참고하였습니다. https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html es를 설치하고(아무리 테스트서버라지만) 메모리설정을 하지 않았더니 매우 작은 범위의 메모리를 es가 차지하고 있었습니다. 별다른 설정을 하지않으면 es는 기본적으로 1g를 사용하게 됩니다.( 딱 1g는 아니고) 해당설정은 zio 파일로 설치를 하셨다면 {ES_HOME}/config/jvm.option..
이번엔 간략하게 ES를 설치하는 과정과 그 과정에서 발생한 이슈를 기록해놓으려 합니다. Elasticsearch 관련 설치는 너무 가이드가 잘되어있어서 사실 따로 쓸게 없지만... 그래도 설치과정에서 이슈가 있었으니 간략하게 기록하려합니다. 먼저 CentOS에서 OpenJDK를 설치했습니다.(8버전 이상) $ yum list java*jdk-devel Loaded plugins: fastestmirror Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast Determining fastest mirrors Installed Packages java-1.8.0-openjdk-devel.x86_64 1:1.8.0.141-1.b1..
현재 상용 서비스를 가시화 하기 위해 지표시스템을 구성하는 과정에서 저희팀은 Presto를 사용중에 있습니다. 그 이유로는 1. JDBC 지원 2. hive, mysql, mongo connector지원 3. RDB와 NOSQL의 조인기능 제공 등으로 인해 현재 프레스토를 통하여 여러 DB의 데이터를 조회중입니다. 이 과정에서 쿼리를 날리는 도중 의문의 응답이 발생하게 되어 이번에 적어볼까 합니다. 현재 하이브 커넥터를 붙여 조회를 하는도중 다음과같은 에러가 발생하였습니다. Query 20200219_085308_09698_afeh8 failed: Number of stages in the query (133) exceeds the allowed maximum (100). If the query cont..
신규 기능으로 엑셀 다운로드 기능을 개발하는 도중, CORS문제가 났던 문제를 기록해보려 합니다. 먼저 간략하게 구성도를 그려보면 브라우저(A.com)에서 B.com 으로 호출을 하고 B.com에선 nginx가 프록시 역할로 Excel 추출 서버로 토스해주는 구조로 서버를 구성했습니다. 서버들은 스프링,Undertow를 통해 구동시키고 있습니다. 첫번째 의문. 어째서 브라우저에서 POST로 호출을 했는데, OPTIONS로 변경이 되었는가. 요건 리서치를 통해서 빠르게 해결할 수 있었습니다. CORS요청의 경우, 브라우저는 요청을 preflighted request로 변경하여 서버로 보내게 되는데, 먼저 Method를 OPTIONS로 호출을 하여 먼저 서버의 승인을 받고난 후, 먼저 요청한 Method로 ..
이번에는 Spring Aop에 대해서 기록해보려 합니다. AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍으로 불리며, 공통 기능, 그리고 메인 기능을 분리한 다음, 메인 기능 중에서, 필요한 부분에만 적용하여 사용하는 방법입니다. 실제로 저희가 코딩을 하다보면 로깅, 트렌젝션 등 공통적으로 적용해야 하는 부분이 있습니다. 이런부분을 AOP를 통해서, 각 클레스에서 별도의 선언을 하지않고 공통 코드를 통해서 관리가 가능합니다. 즉 공통부분은 Aspect(공통기능)로 묶어서 기능을 구현하고, 메인 비지니스로직(실제 서비스 로직)과 분리하여 재사용성을 높힐 수 있습니다. 먼저 코드를 통해 살펴보기전에, AOP 용어에 대해서 정리하고 넘어가겠습니다. Aspect : 공통기능이 ..