일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- query
- ELASTIC
- plugin
- 900gle
- matplotlib
- springboot
- zip 파일 암호화
- high level client
- Python
- MySQL
- sort
- flask
- analyzer test
- docker
- 파이썬
- token filter test
- aggs
- Elasticsearch
- License
- 차트
- Java
- Test
- Mac
- Kafka
- license delete
- TensorFlow
- API
- zip 암호화
- aggregation
- licence delete curl
- Today
- Total
목록JAVA/java (27)
개발잡부
Vavr는 Java에서 함수형 프로그래밍(FP)을 지원하는 라이브러리입니다.이 라이브러리는 Java의 전통적인 객체 지향 프로그래밍 스타일을 보완하며, 함수형 프로그래밍 패러다임을 더 쉽게 구현할 수 있도록 도와줍니다. Vavr은 Java에서 부족한 함수형 프로그래밍 관련 기능을 제공하고, 불변성, 함수형 데이터 구조, 고차 함수, 패턴 매칭 등의 개념을 지원합니다.주요 기능함수형 데이터 구조: Vavr은 불변 컬렉션과 데이터 구조를 제공합니다. 예를 들어, List, Map, Set 등 Java 표준 라이브러리의 컬렉션들과 유사한 자료구조를 제공하지만, 이들은 모두 불변입니다. 불변성은 멀티스레드 환경에서 안전하게 사용할 수 있다는 장점이 있습니다.옵셔널 타입: Java의 Optional 클래스와 유사..
Java의 CompletableFuture에서 get()과 join() 메소드는 모두 완료된 CompletableFuture의 결과를 반환 get() join() interrupt O X interrupt 발생 InterruptedException 인터럽트 차단 Exception ExecutionException UncheckedExecutionException get() 메소드는 java.util.concurrent.Future 인터페이스에 정의되어 있으므로 이 인터페이스를 구현하는 다른 클래스와 호환 가능하지만, join() 메소드는 CompletableFuture 클래스에만 특화되어 있기 때문에 CompletableFuture와만 사용할 수 있다 일반적으로 CompletableFuture을 다룰 때..
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..
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..
AtomicInteger 여러 스레드에서 동시에 액세스할 수 있는 다중 스레드 환경에서 원자 정수 카운터로 사용할 수 있는 Java의 클래스입니다. AtomicInteger는 synchronized 보다 적은 비용으로 동시성을 보장할 수 있습니다. y = atomic.get(); -> y = i; y = atomic.incrementAndGet(); -> y = ++i; y = atomic.getAndIncrement(); -> y = i++; y = atomic.decrementAndGet(); -> y = --i; y = atomic.getAndDecrement(); -> y = i--; y = atomic.addAndGet(x); -> i = i + x; y = i; y = atomic.getAnd..
주요 매서드 매 서 드 설 명 char charValue() Character 오브젝트의 값을 리턴한다. int compareTo(Character anotherCharacter) 2개의 Character를 수치로서 비교한다. int compareTo(Object o) Character 객체를 지정된 객체와 비교한다. static int digit(char ch, int radix) 지정된 기수에서의 문자 ch의 수치로서의 값을 리턴한다. boolean equals(Object o) 현재 객제와 지정된 객체가 같은지 비교한다. static char forDigit(int digit, int radix) 지정된 기수에서의 지정된 숫자의 문자 표현을 판정한다. static int getNumericValue..
Java에서 File 클래스사용 방법 mkdir - 디렉토리 생성 mkdirs - 디렉토리 경로 전체 생성 list - 디렉토리 안의 파일 목록 listFiles - 디렉토리 안의 파일 목록 테스트 해당경로 확인 String dir = "/data/static"; File file = new File(dir); file.list file.listFiles
자바에서 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미 이렇듯 제네릭(Generic)은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미한다. 한마디로 특정(Specific) 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입이라는 것이다. 장점 1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지 2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 3. 비슷한 기능을 지원하는 경우 코드의 재사용성 타입 설명 Type Element Key Value Number 제네릭의 선언 및 생성 자바에서 제네릭은 클래..