본문 바로가기

CS study

(51)
Opentelemetry 대표적 수집 metric 정리 (24.05.28) Heap Memory (jvm.memory.used)요약PS Old Gen (Permanent Space Old Generation)역할: 오래된 객체를 저장하는 공간이다.상세 설명:Old Gen 또는 **Tenured Gen**으로도 불린다.대부분의 객체는 생성 후 곧바로 소멸되지만, 오랫동안 참조되는 객체는 **Old Gen**으로 이동한다.Old Gen 영역에서 객체가 차지하는 메모리가 많아지면 Full Garbage Collection(Full GC)이 발생하여 오래된 객체들을 정리한다.Full GC는 응답 시간이 길어질 수 있기 때문에, **Old Gen**의 메모리 사용량을 모니터링하는 것이 중요하다.PS Survivor Space역할: 새롭게 생성된 객체들이 일시적으로 머무르는 공간이다.상세..
EntityManager와 @PersistenceContext (24.05.23) EntityManager는 Bean으로 관리되는 싱글톤 객체이지만, 이것 자체를 사용할 수는 없다. 그 이유는 생성자 주입으로 이것을 사용한다고 해도, 여러 클래스에서 공유항 사용한다면 트랜잭션 간 내부 데이터가 꼬일 가능성이 높기 때문이다. (데이터 중복 및 무결성에 문제)@PersistenceContext를 사용한다면 이 EntityManager의 Bean 객체의 '프록시'를 만들게 된다. 각각의 트랜잭션마다 이 프록시 객체를 할당함으로써, 여러 트랜잭션이 동시에 실행되더라도 EntityManager 내부에서 관리되는 데이터의 무결성을 보장할 수 있게 된다. 각각의 트랜잭션이 독립적인 EM 프록시를 할당받기 때문이다.정리EntityManager는 Bean으로 관리되는 싱글톤 객체이지만, 이것 자체를 ..
gradle heap 초과 시 해결 방법 (Expiring Daemon because JVM heap space is exhausted) (24.05.21) Spring 프로젝트를 빌드할 때 Gradle이 메모리 부족으로 인해 실패하는 경우, JVM 힙 메모리를 늘려 문제를 해결할 수 있다.  Starting Gradle Daemon...Gradle Daemon started in 5 s 435 ms> Task :compileJavaExpiring Daemon because JVM heap space is exhaustedDaemon will be stopped at the end of the build after running out of JVM memoryExpiring Daemon because JVM heap space is exhaustedExpiring Daemon because JVM heap space is exhaustedExpiring Da..
QueryProjection (24.05.03) 보호되어 있는 글입니다.
Record Pattern (24.05.03) 보호되어 있는 글입니다.
AWS Certified Solutions Architect Associate : AWS 리전 및 IAM 정책 AWS Regions  north-east-2 .. 서울 리전처럼 데이터 센터들의 집합을 의미한다.대부분의 서비스들은 특정 리전에 국한된다. 리전 선택에 영향을 미치는 요인- 법률 준수- 지연 시간 : 실사용자와 가장 가까운 리전 선택- 리전간 요금 차이 가용 영역(AWS Availability Zone)리전 안에 존재하는 데이터센터의 영역     IAM : Users & GroupsIdentity and Access Management, Global service루트 계정과 달리, 사용자들을 그룹화화고, 이를 묶어서 권한을 처리할 수 있는 서브 계정과도 같다. AWS의 Identity and Access Management (IAM)의 주요 부분루트 계정과 달리, 사용자와 그룹을 통한 세분화된 권한 관..
자바 객체의 메모리 사용량 및 오버헤드 개요 주말에 알고리즘을 풀다가 든 궁금증을 정리하였다. 일반적으로, 우리는 구현이나 시뮬레이션, 그것이 아니더라도 Java 기반의 문제 풀이라면 여러 자료구조 및 커스텀 클래스를 사용하게 된다. (Comparable이라던지.. ) 그리고 이 좌표를 표현하는 데에는 크게 두 가지 방법을 많이 사용하는 듯하다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { int[] pos = {1, 2}; //특정 좌표를 배열로 표현하거나, Pos posClass = new Pos(1, 2); //혹은 이런 식으로 객체 타입으로 표현할 수도 있을 것이다. } } ..
InteliJ lombok 인식 불가(Cannot resolve symbol 'info', Cannot Find log) lombok 추가 시 인식을 하지 못하거나, Cannot Resolve Symbol 등의 문제가 발생할 수 있다. 이 경우 다음과 같은 옵션을 고려해보자 1. Lombok 플러그인 설치 및 적용 확인 setting - plugins - lombok으로 확인해볼 것. 2. 구체적 버전 추가 및 Annotation Processor 적용 settings - Build, Execution, Deployment - Annotation Processors 에서 옵션 활성화 dependencies { testImplementation platform('org.junit:junit-bom:5.9.1') testImplementation 'org.junit.jupiter:junit-jupiter' .. 생략 imple..