반응형

Mockito의 Java 8 기능

1. 개요 Java 8은 람다 및 스트림과 같은 새롭고 멋진 기능을 다양하게 도입했습니다. 그리고 당연히 Mockito는 두 번째 주요 버전 에서 이러한 최신 혁신을 활용했습니다 . 이 기사에서는 이 강력한 조합이 제공하는 모든 것을 살펴보겠습니다. 2. 기본 메서드를 사용한 모의 인터페이스 Java 8부터는 이제 인터페이스에서 메서드 구현을 작성할 수 있습니다. 이것은 훌륭한 새 기능일 수 있지만 언어에 대한 소개는 개념이 시작된 이후 Java의 일부였던 강력한 개념을 위반했습니다. Mockito 버전 1은 이 변경 사항에 대해 준비되지 않았습니다. 기본적으로 인터페이스에서 실제 메서드를 호출하도록 요청할 수 없었기 때문입니다. 2개의 메서드 선언이 있는 인터페이스가 있다고 상상해 보십시오. 첫 번째는..

Spring 2023.03.23

스프링 기반 마이크로서비스에서 테스트 피라미드의 실용화

1. 개요 이 사용방법(예제)에서는 테스트 피라미드라고 하는 인기 있는 소프트웨어 테스트 모델을 이해합니다. 마이크로서비스 세계에서 이것이 어떻게 관련이 있는지 살펴보겠습니다. 그 과정에서 샘플 애플리케이션과 이 모델을 준수하는 관련 테스트를 개발할 것입니다. 또한 모델 사용의 이점과 경계를 이해하려고 노력할 것입니다. 2. 한 걸음 뒤로 물러서자 테스트 피라미드와 같은 특정 모델을 이해하기 전에 왜 이것이 필요한지 이해하는 것이 중요합니다. 소프트웨어 테스트의 필요성은 내재적이며 아마도 소프트웨어 개발 자체의 역사만큼 오래되었을 것입니다. 소프트웨어 테스팅은 수동에서 자동화에 이르기까지 먼 길을 왔습니다. 그러나 목표는 동일하게 유지됩니다. 즉, 사양을 준수하는 소프트웨어를 제공하는 것입니다 . 2.1..

Spring 2023.03.22

Cassandra, Astra 및 CQL로 대시보드 구축 - 이벤트 데이터 매핑

1. 소개 이전 기사 에서는 Apache Cassandra 로 구동되는 서버리스 DBaaS인 DataStax Astra를 사용 하여 어벤저스의 개별 이벤트를 저장하고 표시하기 위해 대시 보드 를 보강하는 방법을 살펴보았습니다 . 이 기사에서는 정확히 동일한 데이터를 다른 방식으로 사용할 것입니다. 우리는 사용자가 표시할 어벤저스, 관심 기간을 선택한 다음 이러한 이벤트를 대화형 Map에 표시할 수 있도록 할 것입니다. 이전 기사와 달리 사용자는 지리와 시간 모두에서 서로 상호 작용하는 데이터를 볼 수 있습니다. 이 기사를 따라하기 위해 이 시리즈의 첫 번째 및 두 번째 기사를 이미 읽었고 Java 16, Spring에 대한 실무 지식이 있고 최소한 Cassandra가 데이터에 제공할 수 있는 기능에 대해..

Spring 2023.03.22

Apache Kafka 항목의 메시지 수 가져오기

1. 개요 Apache Kafka는 오픈 소스 분산 이벤트 스트리밍 플랫폼입니다. 이 빠른 사용방법(예제)에서는 Kafka 항목에서 메시지 수를 가져오는 기술을 배웁니다. 프로그래밍 방식과 기본 명령 기술을 시연합니다. 2. 프로그래밍 기법 Kafka 주제에는 여러 파티션이 있을 수 있습니다. 우리의 기술은 모든 파티션의 메시지 수를 세었는지 확인해야 합니다. 각 파티션을 살펴보고 최신 오프셋을 확인해야 합니다. 이를 위해 소비자를 소개합니다. KafkaConsumer consumer = new KafkaConsumer(props); 두 번째 단계는 이 소비자로부터 모든 파티션을 가져오는 것입니다 . List partitions = consumer.partitionsFor(topic).stream().m..

Spring 2023.03.22

Java에서 스레드를 시작하는 방법

1. 소개 이 사용방법(예제)에서는 스레드를 시작하고 병렬 작업을 실행하는 다양한 방법을 살펴보겠습니다. 이는 특히 기본 스레드에서 실행할 수 없는 장기 또는 반복 작업을 처리하거나 작업 결과를 기다리는 동안 UI 상호 작용을 보류할 수 없는 경우에 매우 유용합니다. 스레드의 세부 사항에 대해 자세히 알아보려면 Java에서 스레드의 수명 주기 에 대한 사용방법(예제)를 읽어보십시오 . 2. 쓰레드 실행의 기본 Thread 프레임워크 를 사용하여 병렬 스레드에서 실행되는 일부 논리를 쉽게 작성할 수 있습니다 . Thread 클래스를 확장하여 기본 예제를 살펴보겠습니다 . public class NewThread extends Thread { public void run() { long startTime =..

Spring 2023.03.21

Java의 동기화된 키워드 사용방법(예제)

1. 개요 이 기사에서는 Java에서 동기화된 블록을 사용하는 방법을 배웁니다 . 간단히 말해, 다중 스레드 환경에서 두 개 이상의 스레드가 변경 가능한 공유 데이터를 동시에 업데이트하려고 시도하면 경합 상태가 발생합니다. Java는 공유 데이터에 대한 스레드 액세스를 동기화하여 경합 상태를 방지하는 메커니즘을 제공합니다. synchronized 로 표시된 논리 조각은 동기화된 블록이 되어 주어진 시간에 하나의 스레드만 실행할 수 있습니다 . 2. 왜 동기화인가? 합계를 계산하고 여러 스레드가 calculate () 메서드를 실행하는 일반적인 경쟁 조건을 고려해 보겠습니다. public class SynchronizedMethods { private int sum = 0; public void calcu..

Spring 2023.03.17

Java ExecutorService 사용방법(예제)

1. 개요 ExecutorService 는 비동기 모드에서 작업 실행을 단순화하는 JDK API입니다. 일반적으로 ExecutorService는 작업 할당을 위한 스레드 풀과 API를 자동으로 제공합니다. 2. ExecutorService 인스턴스화 2.1. 실행자 클래스 의 팩토리 메서드 ExecutorService를 만드는 가장 쉬운 방법은 Executors 클래스 의 팩터리 메서드 중 하나를 사용하는 것입니다 . 예를 들어 다음 코드 줄은 10개의 스레드가 있는 스레드 풀을 만듭니다. ExecutorService executor = Executors.newFixedThreadPool(10); 특정 사용 사례를 충족하는 미리 정의된 ExecutorService를 만드는 몇 가지 다른 팩터리 메서드가 ..

Spring 2023.03.17

CompletableFuture 사용방법(예제)

1. 소개 이 사용방법(예제)는 Java 8 Concurrency API 개선 사항으로 도입된 CompletableFuture 클래스 의 기능 및 사용 사례에 대한 사용방법(예제)입니다 . 2. Java의 비동기 컴퓨팅 비동기 계산은 추론하기 어렵습니다. 일반적으로 우리는 모든 계산을 일련의 단계로 생각하고 싶지만 비동기 계산의 경우 콜백으로 표현되는 작업은 코드 전체에 흩어져 있거나 서로 깊이 중첩되는 경향이 있습니다 . 단계 중 하나에서 발생할 수 있는 오류를 처리해야 하는 경우 상황은 더욱 악화됩니다. Future 인터페이스 는 Java 5에서 비동기 계산의 결과로 추가되었지만 이러한 계산을 결합하거나 가능한 오류를 처리하는 방법이 없었습니다. Java 8에는 CompletableFuture 클래스..

Spring 2023.03.17

Java로 이메일 보내기

1. 개요 이 빠른 사용방법(예제)에서는 핵심 Java 메일 라이브러리를 사용하여 첨부 파일이 있거나 없는 이메일을 보내는 방법을 살펴보겠습니다. 2. 프로젝트 설정 및 의존성 이 기사에서는 Angus Mail 에 종속된 간단한 Maven 기반 프로젝트를 사용합니다 . 이것은 Jakarta Mail API 사양 의 Eclipse 구현입니다 . org.eclipse.angus angus-mail 2.0.1 최신 버전은 여기에서 찾을 수 있습니다 . 3. 일반 텍스트 및 HTML 이메일 보내기 먼저 이메일 서비스 Provider의 자격 증명으로 라이브러리를 구성해야 합니다. 그런 다음 보내기 위한 메시지를 구성하는 데 사용할 세션을 만듭니다 . 구성은 Java 속성 개체를 통해 이루어집니다. Properti..

Spring 2023.03.17

Groovy의 List

1. 개요 Groovy 에서는 Java 에서와 마찬가지로 List으로 작업할 수 있습니다 . 그러나 확장 방법에 대한 지원으로 훨씬 더 많은 기능이 제공됩니다. 이 예제에서는 List 변경, 필터링 및 정렬에 대한 Groovy의 기능을 살펴보겠습니다. 2. Groovy List 만들기 Groovy는 컬렉션으로 작업할 때 동적 타이핑 및 리터럴 구문에 대한 지원을 활용하는 흥미로운 단축키를 제공합니다. 속기 구문을 사용하여 몇 가지 값이 포함된 List을 만들어 보겠습니다. def list = [1,2,3] 마찬가지로 빈 List을 만들 수 있습니다. def emptyList = [] 기본적으로 Groovy는 java.util.ArrayList 인스턴스를 생성합니다 . 그러나 생성할 List 유형을 지정할..

Spring 2023.03.17
반응형