반응형

"java.lang.OutOfMemoryError: PermGen 공간" 오류 처리

1. 개요 PermGen(Permanent Generation)은 JVM 기반 애플리케이션을 실행하기 위해 할당된 독특한 메모리 조각입니다. PermGen 오류 는 java.lang.OutOfMemoryError 계열의 오류이며 리소스(메모리) 고갈을 나타냅니다. 이 빠른 사용방법(예제)에서는 java.lang.OutOfMemoryError : Permgen 공간 오류의 원인과 해결 방법을 살펴봅니다. 2. 자바 메모리 유형 JVM은 스택과 힙 의 두 가지 유형의 메모리와 함께 작동합니다 . 스택은 기본 유형 및 개체 주소를 저장하는 데만 사용됩니다. 대신 힙에는 개체 값이 포함됩니다. 메모리 오류에 대해 이야기할 때 항상 힙을 참조합니다. PermGen은 사실 힙 메모리의 일부이지만 JVM의 메인 메모..

Spring 2022.11.26

MongoDB의 대소문자를 구분하지 않는 정렬

1. 개요 기본적으로 MongoDB 엔진은 추출된 데이터를 정렬할 때 대소문자를 고려합니다. Aggregations 또는 Collations 를 지정하여 대소문자를 구분하지 않는 정렬 쿼리를 실행할 수 있습니다. 이 짧은 사용방법(예제)에서는 MongoDB Shell과 Java를 모두 사용하는 두 가지 솔루션을 살펴보겠습니다. 2. 환경 설정 우선 MongoDB 서버를 실행해야 합니다. Docker 이미지를 사용해 보겠습니다. $ docker run -d -p 27017:27017 --name example-mongo mongo:latest 이렇게 하면 포트 27017 을 노출하는 " example- mongo " 라는 이름의 새 임시 Docker 컨테이너가 생성됩니다 . 이제 솔루션을 테스트하는 데 필..

Spring 2022.11.26

SpringFox Swagger-UI에서 기본 오류 컨트롤러 제거

1. 개요 이 예제에서는 Spring Boot 애플리케이션에서 BasicErrorController 에 의해 노출된 경로를 숨기도록 Swagger를 구성 하는 여러 방법 을 배웁니다 . 2. 대상사업 이 기사에서는 Spring Boot 및 Swagger-UI로 시작하기 위한 기본 구성 생성을 다루지 않습니다. 이미 구성된 프로젝트를 사용하거나 Spring REST API 사용방법(예제)로 Swagger 2 설정 을 따라 기본 구성을 생성할 수 있습니다. 3. 문제 코드에 BasicErrorController 가 포함되어 있으면 Swagger는 기본적으로 생성된 문서에도 모든 엔드포인트를 포함합니다. 원치 않는 컨트롤러를 제거하려면 사용자 지정 구성을 제공해야 합니다. 예를 들어 표준 RestControl..

Spring 2022.11.26

Java HTTPS 클라이언트 인증서 인증

1. 개요 HTTPS는 컴퓨터 네트워크의 두 엔터티 간에 Security 통신을 허용하는 HTTP의 확장입니다. HTTPS는 Security 연결을 달성하기 위해 TLS (Transport Layer Security) 프로토콜을 사용합니다. TLS는 단방향 또는 양방향 인증서 확인으로 구현할 수 있습니다 . 단방향에서는 서버가 공용 인증서를 공유하므로 클라이언트가 신뢰할 수 있는 서버인지 확인할 수 있습니다. 대안은 양방향 확인입니다. 클라이언트와 서버는 서로의 신원을 확인하기 위해 공용 인증서를 공유합니다 . 이 문서에서는 서버가 클라이언트의 인증서도 확인하는 양방향 인증서 확인에 중점을 둘 것입니다 . 2. 자바 및 TLS 버전 TLS 1.3은 프로토콜의 최신 버전입니다. 이 버전은 더 성능이 좋고 ..

Spring 2022.11.26

일반적인 Hibernate 예외

1. 소개 이 사용방법(예제)에서는 Hibernate로 작업하는 동안 발생할 수 있는 몇 가지 일반적인 예외에 대해 설명합니다. 우리는 그들의 목적과 몇 가지 일반적인 원인을 검토할 것입니다. 또한 솔루션을 살펴볼 것입니다. 2. Hibernate 예외 개요 Hibernate를 사용하는 동안 많은 조건으로 인해 예외가 발생할 수 있습니다. 매핑 오류, 인프라 문제, SQL 오류, 데이터 무결성 위반, 세션 문제 및 트랜잭션 오류일 수 있습니다. 이러한 예외는 대부분 HibernateException 에서 확장됩니다 . 그러나 Hibernate를 JPA 지속성 공급자로 사용하는 경우 이러한 예외는 PersistenceException 으로 래핑될 수 있습니다 . 이러한 기본 클래스는 모두 RuntimeEx..

Spring 2022.11.25

SSL을 사용하는 자바 HttpClient

1. 개요 이 사용방법(예제)에서는 Java HttpClient를 사용하여 HTTPS URL에 연결하는 방법을 살펴봅니다. 유효한 SSL 인증서가 없는 URL로 클라이언트를 사용하는 방법도 알아봅니다. 이전 버전의 Java에서는 Apache HTTPClient 및 OkHttp와 같은 라이브러리를 사용하여 서버에 연결하는 것을 선호했습니다. Java 11에서는 개선된 HttpClient 라이브러리 가 JDK에 추가되었습니다. 이를 사용하여 SSL을 통해 서비스를 호출하는 방법을 살펴보겠습니다. 2. Java HttpClient를 사용하여 HTTPS URL 호출 테스트 케이스를 사용하여 클라이언트 코드를 실행합니다. 테스트 목적으로 HTTPS에서 실행되는 기존 URL을 사용합니다. 클라이언트를 설정하고 서비..

Spring 2022.11.25

Spring Boot를 사용하여 Kafka SSL 구성

1. 소개 이 사용방법(예제)에서는 SSL 인증을 사용하여 Spring Boot 클라이언트를 Apache Kafka 브로커에 연결하기 위한 기본 설정을 다룹니다. SSL(Secure Sockets Layer)은 실제로 사용되지 않으며 2015년부터 TLS(Transport Layer Security)로 대체되었습니다. 그러나 역사적인 이유로 Kafka(및 Java)는 여전히 "SSL"을 참조하며 이 문서에서는 이 규칙을 따를 것입니다. 또한. 2. SSL 개요 기본적으로 Apache Kafka는 인증 없이 모든 데이터를 일반 텍스트로 보냅니다. 먼저 브로커와 클라이언트 간의 암호화를 위해 SSL을 구성할 수 있습니다. 기본적으로 클라이언트가 서버 인증서를 인증하는 공개 키 암호화를 사용하는 단방향 인증 ..

Spring 2022.11.25

OpenSSL로 자체 서명된 인증서 생성

1. 개요 OpenSSL은 사용자가 다양한 SSL 관련 작업을 수행할 수 있도록 하는 오픈 소스 명령줄 도구입니다. 이 사용방법(예제)에서는 OpenSSL을 사용하여 자체 서명된 인증서를 만드는 방법을 배웁니다 . 2. 개인키 생성 먼저 개인 키를 만듭니다. 개인 키는 암호화를 활성화하는 데 도움이 되며 인증서의 가장 중요한 구성 요소입니다. openssl 명령 을 사용하여 암호로 보호된 2048비트 RSA 개인 키( domain.key )를 생성해 보겠습니다. openssl genrsa -des3 -out domain.key 2048 메시지가 표시되면 암호를 입력합니다. 출력은 다음과 같습니다. Generating RSA private key, 2048 bit long modulus (2 primes)..

Spring 2022.11.25

SSL 핸드셰이크 실패

1. 개요 SSL(Secure Socket Layer)은 네트워크를 통한 통신에 Security을 제공하는 암호화 프로토콜입니다. 이 사용방법(예제)에서는 SSL 핸드셰이크 실패를 초래할 수 있는 다양한 시나리오와 그 방법에 대해 설명합니다. JSSE를 사용하는 SSL 소개에서 SSL 의 기본 사항을 자세히 다룹니다. 2. 용어 Security 취약성으로 인해 표준 SSL이 TLS(전송 계층 Security)로 대체된다는 점에 유의해야 합니다. Java를 포함한 대부분의 프로그래밍 언어에는 SSL과 TLS를 모두 지원하는 라이브러리가 있습니다. SSL이 시작된 이래로 OpenSSL 및 Java와 같은 많은 제품과 언어에는 TLS가 인수된 후에도 SSL에 대한 참조가 있었습니다. 이러한 이유로 이 사용방법..

Spring 2022.11.25

SSL을 사용하는 Apache HttpClient

1. 개요 이 문서에서는 "모두 수락" SSL 지원으로 Apache HttpClient 4를 구성하는 방법을 보여줍니다 . 목표는 간단합니다. 유효한 인증서가 없는 HTTPS URL을 사용하는 것입니다. 더 깊이 파고들고 HttpClient로 할 수 있는 다른 멋진 것들을 배우고 싶다면 – 메인 HttpClient 사용방법(예제) 로 넘어가십시오 . 2. SSLPeerUnverifiedException HttpClient 로 SSL을 구성하지 않으면 HTTPS URL을 사용하는 다음 테스트가 실패합니다. public class RestClientLiveManualTest { @Test(expected = SSLPeerUnverifiedException.class) public void whenHttpsU..

Spring 2022.11.25
반응형