Java 7

JAVA metaspace OOM(Out Of Memory) 현상 원인 및 해결방법

Java Metaspace OOM(Out of Memory)은 JVM(Java Virtual Machine)이 클래스 메타데이터를 저장하기 위해 사용하는 메모리 영역인 Metaspace에서 발생하는 메모리 부족 오류입니다. 이 오류는 클래스 정의, 메서드 시그니처, 상수 풀 항목 등과 같은 메타데이터를 저장할 공간이 부족할 때 발생합니다. Metaspace는 힙(heap)의 일부가 아니기 때문에 일반적인 가비지 컬렉션 규칙을 따르지 않습니다. 따라서, Metaspace는 설정된 한계치까지 무한정 증가할 수 있으며, 결국 메모리가 부족해질 수 있습니다원인: Metaspace OOM의 주요 원인은 다음과 같습니다-XX:MaxMetaspaceSize JVM 옵션으로 설정된 Metaspace의 최대 크기를 초과..

Spring 2024.05.10

[IT잡지식] JWT (JSON Web Token) 란?

JWT( JSON Web Token)은 웹 통신 시 데이터를 안전하게 전송하기 위한 표준 방식 중 하나입니다. 주로 클라이언트와 서버 간의 인증 정보나 클레임(Claim) 데이터를 포함한 토큰을 생성하여 사용합니다. JWT는 JSON 형식으로 정보를 표현하며, 디지털 서명을 사용하여 무결성을 보호하고 신뢰성을 확보합니다. JWT는 세 가지 구성 요소로 이루어져 있습니다. Header (헤더): JWT의 유형과 사용되는 알고리즘을 포함합니다. 예를 들어, {"alg": "HS256", "typ": "JWT"}와 같은 형식으로 표현됩니다. Payload (내용): 실제로 전달하려는 데이터를 담습니다. 클레임(클레임은 토큰에 담긴 정보를 나타내며, 예를 들어 사용자 ID, 권한 등을 포함할 수 있습니다.)과 ..

IT잡지식 2023.09.01

[IT잡지식] jar, war, ear 에 대한 비교표

아래 표를 참고하여 jar, war, ear 파일의 용도와 특징에 대해 이해하실 수 있습니다. 각 파일 형식은 Java 어플리케이션을 패키징하고 배포하는 데 사용되며, 프로젝트의 규모와 요구사항에 따라 적절한 파일 형식을 선택하여 사용해야 합니다. 확장자 용도 설명 JAR (Java Archive) 단일 라이브러리의 배포 또는 실행 가능한 jar 파일의 배포 Java 어플리케이션 및 라이브러리를 패키징한 파일. Java 클래스 파일, 리소스, 라이브러리 등을 포함하며, 단일 JAR 파일로 압축됨. 주로 라이브러리를 공유하거나 실행 가능한 Java 어플리케이션을 배포할 때 사용됨. WAR (Web Application Archive) Java Web 어플리케이션의 배포 Java 웹 애플리케이션을 패키징한 ..

IT잡지식 2023.04.28

[Linux] keytool 을 이용한 다양한 예제

keytool은 Java 플랫폼에서 인증서와 관련된 작업을 수행하는 명령행 도구입니다. keytool을 사용하면 인증서 생성, 복사, 삭제, 내보내기 및 검색 등의 작업을 수행할 수 있습니다. keytool을 사용하기 위해서는 Java Development Kit (JDK)가 설치되어 있어야 합니다. keytool은 JDK의 일부이며, JDK를 설치하면 keytool도 함께 설치됩니다. 옵션 설명 예제 -genkeypair 새로운 키 페어를 생성합니다. keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -keystore mykeystore.jks -importkeystore 다른 형식의 키스토어에서 키스토어를 가져옵니다. keytool -import..

Linux 2023.04.24

[Jenkins] jenkins A problem occurred configuring root project 오류 해결

아래와 같이 jenkins 로 gradle build 시 블라블라 마구 오류를 내뿜는다. 이것저것 바꿔봐도 도저히 알 수가 없다. 하지만 가장 큰 문제를 발견 하였다. springboot 버전이 3 이상일 경우 java 17 버전부터 지원한다고 들었다. 나의 jenkins 는 java jdk 11 버전으로 깔았기 때문에 오류가 발생한거였다. 해결 방법은 2가지가 있다. 방법 1 : JAVA 17 버전으로 업그레이드, 필자는 jenkins 를 docker로 올렸고, 아래와 같이 이미지를 바꿔 실행하였다. 이전 버전 : image: jenkins/jenkins:lts-jdk11 이후 버전 : image: jenkins/jenkins:lts-jdk17 방법 2 : springboot 를 2 버전으로 내려서 하..

Spring 2023.04.10

[Spring] Java 데이터를 주기적으로 캐시할 수 있는 방법

Java에서 데이터를 주기적으로 캐시할 수 있는 방법으로는 ScheduledExecutorService를 사용하는 것이 일반적입니다. ScheduledExecutorService는 주어진 시간 간격으로 작업을 실행할 수 있는 자바 스레드 풀입니다. 아래는 ScheduledExecutorService를 사용하여 데이터를 주기적으로 캐시하는 예시 코드입니다. import java.util.Map; import java.util.concurrent.*; public class CacheManager { private Map cache; private ScheduledExecutorService scheduler; public CacheManager() { cache = new ConcurrentHashMap(..

Spring 2023.03.21