일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- aggs
- API
- request cache
- vavr
- Aggregation
- file download
- api cache
- dbeaver
- Elastic
- Selenium
- elasticsearch cache
- ann
- redis
- java
- 테슬라
- Docker
- KNN
- 양자컴퓨터
- aqqle
- IONQ
- JPA
- 아이온큐
- Analyzer
- TSLA
- mysql
- java crawler
- Cache
- NORI
- Query
- Elasticsearch
- Today
- Total
목록Java (33)
아빠는 개발자
🎯 1. 예외 처리 방법✅ try-catch 문try 블록 안에서 예외가 발생할 수 있는 코드를 작성catch 블록에서 예외를 처리try { int result = 10 / 0; // ❌ ArithmeticException 발생 System.out.println("Result: " + result);} catch (ArithmeticException e) { System.out.println("⚠️ 예외 발생: " + e.getMessage());} ✅ try-catch-finally 문finally 블록은 예외 발생 여부와 관계없이 무조건 실행주로 리소스 해제 (예: DB 연결 종료, 파일 닫기) 시 사용try { String text = null; System.out...
✅ 1. 기본 try-catch를 활용한 수동 리트라이단순하게 for 루프를 사용하여 재시도할 수 있습니다. import java.io.IOException;import java.net.HttpURLConnection;import java.net.URL;public class ApiClient { private static final int MAX_RETRIES = 3; private static final int RETRY_DELAY_MS = 2000; // 2초 대기 public static String callApi(String apiUrl) throws InterruptedException { for (int attempt = 1; attempt ✅ 2. Spring..
이 둘은 뭐냐.. 그냥 뭐 빌드를 실행시켜주는 파일 정도로 생각하고 넘어갔는데 좀 더 알아보잣명령어설명gradle시스템에 직접 설치된 Gradle을 사용하여 빌드를 실행gradlew프로젝트에 포함된 Gradle Wrapper를 사용하여 빌드를 실행 gradlew를 사용하면 로컬에 Gradle이 설치되어 있지 않아도 자동으로 적절한 버전을 다운로드하여 실행할 수 있습니다.(즉, 프로젝트별로 독립적인 Gradle 환경을 유지할 수 있음) gradlew 주요 명령어빌드 실행프로젝트를 빌드하고 필요한 경우 Gradle을 자동 다운로드./gradlew build # (Windows는 gradlew build) 클린 빌드./gradlew clean build테스트 실행./gradlew testGradle 버전 확인..
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 클래스와 유사..