일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kafka
- high level client
- license delete
- token filter test
- Java
- ELASTIC
- TensorFlow
- flask
- 파이썬
- zip 파일 암호화
- 900gle
- analyzer test
- API
- zip 암호화
- Elasticsearch
- matplotlib
- licence delete curl
- Test
- Mac
- springboot
- License
- Python
- 차트
- aggs
- MySQL
- query
- docker
- sort
- aggregation
- plugin
- Today
- Total
목록JAVA (71)
개발잡부

지난시간 elasticsearch 의 file system cache 를 사용해서 성능을 올려보았는데 https://father-lys.tistory.com/40 [java] API - file system cache (request cache) API 를 만들고 응답시간을 측정해서 최적의 성능을 만들어 보자 일단 제물이 될 index 820만건의 location-index 일단 aqqle 의 shop API 를 응용해서 후다닥 만들어 보자. 복붙해서 이름만 바꾸니까 1분 미 father-lys.tistory.com 캐싱하면 redis 니까 함 넣어보잣 우선 redis 설치 https://father-lys.tistory.com/41 그리고 aqqle api 에 redis 설정 1. build.gradl..

API 를 만들고 응답시간을 측정해서 최적의 성능을 만들어 보자 일단 제물이 될 index 820만건의 location-index 일단 aqqle 의 shop API 를 응용해서 후다닥 만들어 보자. 복붙해서 이름만 바꾸니까 1분 미만 컷 지금은 bool > filter > term 쿼리로 조회하니 응답속도가 빠르다. 일단 이 상태에서 리소스 사용과 응답속도를 측정해보잣 캐싱이 안되고 있지만 너무 빠르다 일단 지난 캐시 테스트와 같은 구조로 multi_match 쿼리 와 count집계(aggs) 를 두번 추가 전체쿼리 더보기 { "size":100, "query":{ "bool":{ "must":[ { "multi_match":{ "query":"country_code", "fields":[ "CO^1...

망할 스웨거 Cannot invoke "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.toString()" 원인은 spring boot 2.6.0부터 요청 경로를 ControllerHandler에 매칭시키기 위한 전략의 기본값이 ant_path_matcher 전략 -> path_pattern_parser 전략으로 변경되었기 때문 일단 해결 방법 spring: mvc: pathmatch: matching-strategy: ant_path_matcher 2.5.x 이하로 버전을 낮추라고 하는데 낮춰도 안됨 // https://mvnrepository.com/artifact/io.springfox/springfox-swagger2..
Java의 CompletableFuture에서 get()과 join() 메소드는 모두 완료된 CompletableFuture의 결과를 반환 get() join() interrupt O X interrupt 발생 InterruptedException 인터럽트 차단 Exception ExecutionException UncheckedExecutionException get() 메소드는 java.util.concurrent.Future 인터페이스에 정의되어 있으므로 이 인터페이스를 구현하는 다른 클래스와 호환 가능하지만, join() 메소드는 CompletableFuture 클래스에만 특화되어 있기 때문에 CompletableFuture와만 사용할 수 있다 일반적으로 CompletableFuture을 다룰 때..
class file major version 61은 로드 하려고 시도하고 있는 클래스 파일이 자바 17 혹은 그 이상의 버전에서 컴파일이 되었으며, 자바 17 이상에서만 사용 될 수 있을 때 발생 class file major version 63 은 자바 19 왜 이 사단이 났는지 부터 파악해 보자면.. intelliJ 업데이트가 불러온 참사이다. 매년 10만원 넘게 주고 결제하는 중인데 이왕이면 최신버전으로 써야지 했다가.. gradle 버전이 바뀌고 내장되어 있는 jackson 플러그인 버전이 바뀌면서 저런 버전 문제가 뜨기 시작함 jdk 버전만 올려도 안될경우 gradle 버전도 같이 올려야 한다 라는 교훈을 얻었지만 역시 업데이트는 신중하게..

AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지임 AOP 주요 개념 Aspect : 위에서 설명한 흩어진 관심사를 모듈화 한 것. 주로 부가기능을 모듈화함. Target : Aspect를 적용하는 곳 (클래스, 메서드 .. ) Advice : 실질적으로 어떤 일을 해야할 지에 대한 것, 실질적인 부가기능을 담은 구현체 JointPoint : Advice가 적용될 위치, 끼어들 수 있는 지점. 메서드 진입 지점, 생성자 호출 시점, 필드에서 값을 꺼내올 때 등 다양한 시점에 적용가능 PointCut : JointPoint의 상세한 스펙을 정의한 것. 'A란 메서드의 진입 ..
신발 사러 왔는데 가방은 쫌 그래요.. 말도 꺼내지마요.. 상품중에 가방을 지워보자 package com.bbongdoo.doo.Streams; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; @Getter @Setter @AllArgsConstructor public class Goods { private String name; private String type; } Goods 객체로 일루어진 List 를 만들어 보자 List goods = new ArrayList(); goods.add(new Goods("나이키", "신발")); goods.add(new Goods("아디다스", "신발")); goods.ad..
10진수 -> 2진수, 8진수, 16진수로 변환하기 java.lang.Integer의 toBinaryString(), toOctalString(), toHexaString() 메소드를 이용하여 10진수를 2진수, 8진수, 16진수 문자열로 변환 public static void main(String[] args) { // 테스트를 위한 10진수 값 = 25 int a = 25; System.out.println("10진수 -> 2진수"); System.out.println(Integer.toBinaryString(a)); System.out.println(Integer.toString(a,2)); System.out.println("10진수 -> 3진수"); System.out.println(Intege..
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); 첫번째 방법으로는 StringTokenizer에 nextToken()함수를 쓰면 readLine()을 통해 입력받은 값을 공백단위로 구분하여 순서대로 호출할 수 있다. public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = ne..
쓰레드 세이프(Thread Safe)란? 멀티 쓰레드 프로그래밍에서, 어떤 공유 자원에 여러 쓰레드가 동시에 접근해도, 프로그램 실행에 문제가 없는 상태를 의미합니다. Thread Safe 를 지키기 위한 방법은 네 가지로 이루어져있습니다. Mutual exclusion (상호 배제) Atomic operation (원자 연산) Thread-local storage (쓰레드 지역 저장소) Re-entrancy (재진입성) Mutual exclusion (상호 배제) 공유자원에 하나의 Thread 만 접근할 수 있도록, 세마포어/뮤텍스로 락을 통제하는 방법입니다. 일반적으로 많이 사용되는 방식입니다. 적용 예제 Python 은 Thread Safe 하게 메모리 관리 하지 않으므로, GlL(Global In..