본문 바로가기

java4

특정 환경에서 발생하는 메모리 할당 실패 문제 많은 메모리를 점유하는 프로세스가 직접 외부 프로세서를 실행할 경우 메모리 할당 실패 문제가 발생하기도 하는데 아래와 같은 예외(EXCECTION) 메세지가 표시됩니다. "java.lang.OutOfMemoryError: Java heap space" 웹 애플리케이션 서버인 톰캣은 많은 양의 힙(Heap) 메모리를 할당하여 사용자 요청을 처리합니다. 하지만 메모리 할당 문제가 해결되지 않는 JDK 버전을 사용한다면, 일시적으로 요청되는 메모리가 시스템 수용능력을 넘어가 메모리 문제가 발생 하기도 합니다. 이번 글에서는 메모리할당에 실패하는 원인과 그 해결 방안에 대해 알아보겠습니다. 메모리 할당 실패 발생 요인 메모리 할당 실패 문제는 다양한 상황에서 발생할 수 있는데, 몇가지 예를 들면 첫 번째로, 메.. 2024. 2. 16.
자바에서 외부 프로세서가 전달하는 스트림 처리 문제 이번 글에서는 자바에서 외부 프로세서가 전달하는 스트림을 처리하는 도중 발생할 수 있는 다양한 문제와 해당 문제의 원인 및 해결 방안에 대해 알아보겠습니다. 1. 스트림 레코드의 크기가 너무 큰 경우 스트림 레코드의 크기는 외부 프로세서가 생성하는 데이터의 단위이며, 한 번에 전송되는 데이터의 크기를 의미하며, 이 크기가 클수록 메모리 사용량이 증가하고 데이터 처리에 필요한 리소스가 더 많이 요구됩니다. [발생하는 문제] - 메모리 부족 발생 대량의 데이터가 한 번에 로드되어 메모리가 부족할 수 있습니다. 특히 JVM의 힙 메모리 제한을 초과할 경우 OutOfMemoryError가 발생할 수 있습니다. - 네트워크 대역폭 부하 문제 스트림 레코드의 크기가 큰 경우에는 네트워크 대역폭 부하 문제가 발생할 .. 2024. 2. 14.
날짜와 시간을 다루는 자바 API 이용 시 주의 사항 👀 지난 글에 이어 "날짜와 시간을 다루는 자바 프로그램을 코딩할 때 주의해야 할 사항을 코딩 사례와 함께 하나씩 살펴보겠습니다. 잘못된 사례를 통한 주의사항 설명 순서는 다음과 같습니다. 1. 불변성(Immutability) 유지 2. 시간대(Time Zone) 고려 3. 문자열 파싱 및 형식 지정에 유의 4. 날짜와 시간 연산에 따른 적합한 클래스 선택 5. 예외 처리 6. 호환성을 고려한 적절한 자바버전 선택 1. 불변성(Immutability) 유지 불변성(Immutability)을 유지하는 것은 java.time 패키지의 클래스를 안정적으로 사용하는 핵심 원칙 중 하나입니다. 이를 위배하는 몇 가지 코딩 사례는 다음과 같습니다. (1) 직접적인 필드 수정 LocalDate currentDate = .. 2024. 2. 7.
자바 프로그래밍에서의 효율적인 날짜와 시간 다루기 - JDK 8 이후의 날짜와 시간 - 자바에서는 JDK의 Date와 Calendar 클래스로 날짜와 시간을 다루기 불편한 것으로 악명이 높았었습니다. 그것을 해결하기 위해 Joda-Time과 같은 오픈소스 라이브러리가 등장하였으며, 마침내 JDK 8 부터 향상된 API가 제공되어 편리하고 정확하게 날짜와 시간 다루기가 가능해졌습니다. 이 글에서는 JDK 8 이후의 API를 사용하여 날짜와 시간을 쉽게 다루는 방법과 자주 사용되는 클래스들을 예시 코드를 통해 알아보겠습니다. 자바에서 사용되는 날짜와 시간 API 종류 [java.util.Date] 자바에서 가장 기본적인 날짜와 시간 클래스이지만 여러 가지 문제점이 있어서 현재는 많이 사용되지 않습니다. [java.util.Calendar] 날짜와 시간을 설.. 2024. 2. 6.