일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 아이온큐
- NORI
- java crawler
- 양자컴퓨터
- KNN
- Elastic
- Query
- dbeaver
- aggs
- aqqle
- 테슬라
- ann
- file download
- api cache
- Cache
- vavr
- Aggregation
- Selenium
- elasticsearch cache
- API
- Docker
- TSLA
- java
- Analyzer
- IONQ
- Elasticsearch
- request cache
- redis
- mysql
- JPA
- Today
- Total
목록Java (30)
아빠는 개발자
Lombok의 @Value 어노테이션은 **불변 클래스(Immutable Class)**를 쉽게 생성하기 위해 사용됩니다.이는 @Data와 유사하지만 모든 필드를 final로 설정하고 객체 자체를 불변(immutable)으로 만듭니다. 특징모든 필드를 private final로 설정생성자 자동 생성 (AllArgsConstructor)Getter 메서드 자동 생성toString(), equals(), hashCode() 자동 생성Setter 메서드 생성 안 함 (불변 클래스이기 때문)사용예제import lombok.Value;@Valuepublic class User { String name; int age;} 위 코드는 아래와 같다.public final class User { pri..
org.springframework.beans.factory.annotation.Value; 우선 스프링 @Value 어노테이션은 Spring Framework에서 속성 값을 주입하기 위해 사용하는 어노테이션,주로 application.properties 또는 application.yml에 정의된 값을 가져와 클래스 필드에 바인딩할 때 사용. 사용법 import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Componentpublic class AppService { @Value("${app.name}") private String appName; publ..
Java에서 VO, DTO, DAO는 계층적 애플리케이션 구조에서 자주 사용되는 중요한 패턴입니다. 1. VO (Value Object)목적: 데이터를 읽기 전용으로 저장하기 위한 객체특징: Immutable(불변) 속성 권장사용 예: 특정 비즈니스 로직에서 값을 전달하거나 읽기 위한 객체예제 코드:public class UserVO { private final String name; private final int age; public UserVO(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } p..
스레드 최적화 테스트를 해보자일단 내 mac 은 8core 16GB data 는 38,774 건 데이터 전체 카운트를 구해서 paging 으로 나눠서 병렬 처리 할껀데.. order by 가 들어가서 테스트에서만 사용하고 실전에선.. 비추 runner 에서 실행하는 메소드package com.doo.aqqle.service;import com.doo.aqqle.annotation.Timer;import com.doo.aqqle.repository.StockDataRepository;import com.doo.aqqle.repository.StockRepository;import lombok.extern.slf4j.Slf4j;import org.apache.tomcat.util.http.fileupload..
멀쩡하던 배치가 느려졌다. 것도.. 한 5-6배? ㅋㅋㅋㅋ 어처구니가 없는 .. 색인 쿼리중 참조 하는 테이블의 데이터가 변해서 맛이 간거 같은게.. 예상이지만..쿼리를 이것저것 돌려봐도 그렇게 느리진 않았는데.. 뭐 암튼.. 성능개선의 하나의 방법으로 병렬처리 성능을 올려보자.. 현재 우리회사의 배치는 8core 에서 2개의 스레드로 실행되고 전체,증분 색인 두개가 동시에 돈다면 2개의 스레드를 사용하는 어플리케이션이 2개가 실행된다.그럼 max 를 4까지 올려봐도... 1. 시스템 자원 파악먼저, 서버나 시스템의 전체 CPU 코어 수, 메모리와 같은 자원을 파악해야 합니다. 각 애플리케이션이 실행되는 환경에서 사용 가능한 자원의 양을 기준으로 적절한 스레드 수를 할당해야 합니다.int availab..
Java에서 함수형 프로그래밍(Functional Programming)은 함수가 일급 시민(First-Class Citizen)으로 취급되고, 불변성(immutability)을 강조하며, 부작용(Side Effect)을 최소화하는 프로그래밍 패러다임입니다. Java 8에서 람다(Lambda)와 스트림(Stream) API가 도입되면서 함수형 프로그래밍을 더 쉽게 활용할 수 있게 되었습니다.Java에서 이를 활용하는 방법1. 람다 표현식 (Lambda Expression)람다는 익명 함수(Anonymous Function)로, 메서드를 간결하게 표현할 수 있습니다. 주로 함수형 인터페이스(Functional Interface)를 구현할 때 사용됩니다.// 기존 방식 Runnable runn..
Vavr는 Java에서 함수형 프로그래밍(FP)을 지원하는 라이브러리입니다.이 라이브러리는 Java의 전통적인 객체 지향 프로그래밍 스타일을 보완하며, 함수형 프로그래밍 패러다임을 더 쉽게 구현할 수 있도록 도와줍니다. Vavr은 Java에서 부족한 함수형 프로그래밍 관련 기능을 제공하고, 불변성, 함수형 데이터 구조, 고차 함수, 패턴 매칭 등의 개념을 지원합니다.주요 기능함수형 데이터 구조: Vavr은 불변 컬렉션과 데이터 구조를 제공합니다. 예를 들어, List, Map, Set 등 Java 표준 라이브러리의 컬렉션들과 유사한 자료구조를 제공하지만, 이들은 모두 불변입니다. 불변성은 멀티스레드 환경에서 안전하게 사용할 수 있다는 장점이 있습니다.옵셔널 타입: Java의 Optional 클래스와 유사..
네이밍에 정답이 어딧겠소만Java 프로젝트에서 common과 base 패키지의 의미는 관례적으로 다음과 같음 1. common 패키지common 패키지는 프로젝트 내에서 여러 모듈이나 클래스들이 공통으로 사용하는 기능이나 유틸리티 클래스를 포함합니다. 이 패키지에는 다음과 같은 요소들이 포함될 수 있습니다:유틸리티 클래스 (Utility Classes): 문자열 처리, 날짜 처리, 파일 입출력 등과 같은 일반적인 기능을 제공하는 클래스들.상수 정의 (Constants): 여러 곳에서 공통으로 사용하는 상수 값들.공통 인터페이스 (Common Interfaces): 여러 클래스들이 구현해야 하는 공통 인터페이스들.헬퍼 클래스 (Helper Classes): 특정 작업을 돕는 보조 클래스들.예시: pack..
URL 을 호출해서 파일 다운로드를 해보잣간단하게는 아래와 같이InputStream을 사용하여 URL에서 데이터를 읽고, Files.copy 메서드를 사용하여 파일로 저장하는 방법으로 만들 수도 있으나..import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;public class FileDownload { public static void main(String[] args) { String fileURL = "https://example.com/path/to/file...
Unix 타임스탬프는 시간대와 무관하며, 항상 UTC 시간을 기준으로 . 따라서 시스템 시간이 어떤 시간대에 설정되어 있든지 간에 동일한 결과를 제공 테스트 코드 import java.time.Instant;public class CurrentUnixTimestamp { public static void main(String[] args) { // 현재 시간을 Unix 타임스탬프로 가져오기 long unixTimestamp = Instant.now().getEpochSecond(); // 결과 출력 System.out.println("현재 시간 (Unix 타임스탬프): " + unixTimestamp); }} import java.tim..