반응형

Apache Kafka 서버가 실행 중인지 확인 사용방법(예제)

1. 개요 Apache Kafka를 사용하는 클라이언트 애플리케이션은 일반적으로 생산자와 소비자라는 두 범주 중 하나에 속합니다. 생산자와 소비자 모두 각각 생산 및 소비 작업을 시작하기 전에 기본 Kafka 서버가 가동 및 실행 중이어야 합니다 . 이 기사에서는 Kafka 서버가 실행 중인지 확인하는 몇 가지 전략을 배웁니다. 2. 사육사 명령 사용 활성 브로커가 있는지 확인하는 가장 빠른 방법 중 하나는 Zookeeper의 덤프 명령을 사용하는 것입니다. dump 명령 은 Zookeeper 서버를 관리하는 데 사용할 수 있는 4LW 명령 중 하나입니다 . 계속해서 nc 명령을 사용하여 2181 포트에서 수신 대기 중인 Zookeeper 서버를 통해 덤프 명령을 보내겠습니다. $ echo dump | ..

Spring 2023.02.22

Spring에서 Enum을 요청 매개변수로 사용

1. 소개 대부분의 일반적인 웹 애플리케이션에서는 요청 매개변수를 미리 정의된 값 세트로 제한해야 하는 경우가 많습니다. Enum은 이를 수행하는 좋은 방법입니다. 이 빠른 사용방법(예제)에서는 Spring MVC에서 웹 요청 매개 변수로 enum을 사용하는 방법을 보여줍니다. 2. Enum을 요청 매개변수로 사용 먼저 예제에 대한 Enum을 정의해 보겠습니다. public enum Modes { ALPHA, BETA; } 그런 다음 이 Enum을 Spring 컨트롤러에서 RequestParameter 로 사용할 수 있습니다 . @GetMapping("/mode2str") public String getStringToMode(@RequestParam("mode") Modes mode) { // ... }..

Spring 2023.02.22

Spring Boot의 BeanDefinitionOverrideException

1. 소개 Spring Boot 2.1 업그레이드는 예상치 못한 BeanDefinitionOverrideException 발생으로 사람들을 놀라게 했습니다 . 이는 개발자를 혼란스럽게 할 수 있으며 Spring에서 bean 재정의 동작에 무슨 일이 일어났는지 궁금하게 만들 수 있습니다. 이 사용방법(예제)에서는 이 문제를 해결하고 이를 해결하는 최선의 방법을 배웁니다. 2. 메이븐 의존성 예제 Maven 프로젝트의 경우 Spring Boot Starter 의존성을 추가해야 합니다 . org.springframework.boot spring-boot-starter 2.3.3.RELEASE 3. 빈 재정의 스프링 빈은 ApplicationContext 내에서 이름으로 식별됩니다 . 따라서 bean overr..

Spring 2023.02.22

Java에서 List 분할

1. 개요 이 기사에서는 List를 주어진 크기의 여러 하위 List으로 분할하는 방법을 설명합니다 . 상대적으로 간단한 작업의 경우 놀랍게도 표준 Java 컬렉션 API에서 지원하지 않습니다. 운 좋게도 Guava 와 Apache Commons Collections 모두 유사한 방식으로 작업을 구현했습니다. 이 기사는 여기 Baeldung에서 " Java – Back to Basic " 시리즈 의 일부입니다 . 2. 구아바를 사용하여 List 분할 Guava는 Lists.partition 작업을 통해 List를 지정된 크기의 하위 List으로 분할하는 것을 용이하게 합니다 . @Test public void givenList_whenParitioningIntoNSublists_thenCorrect() ..

Spring 2023.02.22

테스트를 위한 별도의 Spring DataSource 구성

1. 개요 JPA와 같은 지속성 계층에 의존하는 Spring 애플리케이션을 테스트할 때 애플리케이션을 실행하는 데 사용하는 것과는 다른 더 작고 빠른 데이터베이스를 사용하도록 테스트 데이터 소스를 설정하고 싶을 수 있습니다. 테스트가 훨씬 쉬워집니다. Spring에서 데이터 소스를 구성하려면 DataSource 유형의 bean을 정의해야 합니다 . 이를 수동으로 수행하거나 Spring Boot를 사용하는 경우 표준 애플리케이션 속성을 통해 수행할 수 있습니다. 이 빠른 사용방법(예제)에서는 Spring에서 테스트를 위해 별도의 데이터 소스를 구성하는 여러 가지 방법을 배웁니다 . 2. 메이븐 의존성 Spring JPA 및 테스트를 사용하여 Spring Boot 애플리케이션을 생성할 예정이므로 다음 의존성..

Spring 2023.02.22

변경할 수 없는 컬렉션에 대한 Java 스트림 수집

1. 소개 우리는 종종 Java Stream을 컬렉션으로 변환하고자 합니다. 이로 인해 일반적으로 변경 가능한 컬렉션이 생성되지만 사용자 지정할 수 있습니다. 이 짧은 사용방법(예제)에서는 먼저 일반 Java를 사용한 다음 Guava 라이브러리를 사용하여 Java 스트림을 불변 컬렉션으로 수집하는 방법을 자세히 살펴보겠습니다 . 2. 표준 자바 사용 2.1. Java의 toUnmodifiableList 사용 Java 10부터 Java의 수집기 클래스에서 toUnmodifiableList 메서드를 사용할 수 있습니다 . List givenList = Arrays.asList("a", "b", "c"); List result = givenList.stream() .collect(toUnmodifiableLi..

Spring 2023.02.22

스프링 부트 VS Quarkus

1. 개요 이 기사에서는 잘 알려진 두 가지 Java 프레임워크인 Spring Boot와 Quarkus를 간단하게 비교합니다. 끝에서 우리는 차이점과 유사점 및 몇 가지 특수성을 더 잘 이해할 것입니다. 또한 성능을 측정하고 동작을 관찰하기 위해 몇 가지 테스트를 수행합니다. 2. 스프링 부트 Spring Boot는 엔터프라이즈 애플리케이션에 중점을 둔 Java 기반 프레임워크입니다 . 모든 Spring 프로젝트를 연결하고 많은 프로덕션 준비 통합을 제공하여 개발자의 생산성을 가속화하는 데 도움이 됩니다 . 이를 통해 구성 및 상용구의 양을 줄입니다. 또한 런타임의 클래스 경로에서 사용할 수 있는 의존성을 기반으로 기본 구성을 자동으로 등록하는 구성 방식에 대한 관례 덕분에 Spring Boot는 많은 ..

Spring 2023.02.22

Jenkins에서 작업 내보내기/가져오기

1. 개요 Jenkins 는 플랫폼에 관계없이 프로젝트를 제공하기 위한 오픈 소스 CI/CD 자동화 도구입니다. 이 사용방법(예제)에서는 서로 다른 두 컴퓨터 간에 Jenkins 작업을 내보내고 가져오는 방법을 배웁니다. 먼저 Docker 컨테이너에서 Jenkins 서버를 시작합니다. 나중에 작업 가져 오기 플러그인 및 Jenkins XML 구성을 사용하여 원본 컴퓨터에서 대상 컴퓨터로 작업을 내보냅니다 . 2. 초기 설정 시작하기 전에 먼저 데모용 설정을 만들어 보겠습니다. 여기에서 설정에는 두 개의 Linux VM, 소스 시스템 및 대상 시스템이 포함됩니다. 당연히 Linux에 Jenkins를 설치하는 방법에는 여러 가지가 있습니다 . 일반적으로 가장 쉬운 방법은 Docker 컨테이너 입니다 . 물론..

Spring 2023.02.21

JVM 로그 위조

1. 개요 이 빠른 기사에서는 JVM 세계에서 가장 일반적인 Security 문제 중 하나인 로그 위조에 대해 살펴보겠습니다 . 또한 이러한 Security 문제로부터 우리를 보호할 수 있는 예제 기술을 보여줍니다. 2. 로그 단조란? OWASP 에 따르면 로그 위조는 가장 일반적인 공격 기술 중 하나입니다. 로그 위조 취약점은 데이터가 신뢰할 수 없는 소스에서 애플리케이션으로 들어가거나 데이터가 일부 외부 엔터티에 의해 애플리케이션/시스템 로그 파일에 기록될 때 발생합니다. OWASP 지침 에 따라 로그 위조 또는 주입은 공격자가 로그 항목을 위조하거나 악성 콘텐츠를 로그에 주입할 수 있도록 확인되지 않은 사용자 입력을 로그 파일에 쓰는 기술입니다. 간단히 말해 로그 위조를 통해 공격자는 응용 프로그램..

Spring 2023.02.21

Spring MVC로 이미지 또는 파일 다운로드

1. 개요 정적 파일을 클라이언트에 제공하는 것은 다양한 방법으로 수행할 수 있으며 Spring Controller를 사용하는 것이 반드시 사용 가능한 최상의 옵션은 아닙니다. 그러나 때때로 컨트롤러 경로가 필요하며 이 빠른 사용방법(예제)에서 집중적으로 다룰 내용입니다. 2. 메이븐 의존성 먼저 pom.xml 에 의존성을 추가해야 합니다 . org.springframework.boot spring-boot-starter-web 그게 우리가 여기서 해야 할 전부입니다. 버전 정보는 Maven Central 로 이동하십시오 . 3. @ResponseBody 사용 첫 번째 간단한 솔루션 은 컨트롤러 메서드에서 @ResponseBody 어노테이션을 사용하여 메서드에서 반환된 개체가 HTTP Response b..

Spring 2023.02.21
반응형