전체 글135 [Java] JVM GC 최적화 경험과 인사이트 1. 들어가며어느 날, 운영 중인 애플리케이션에서 갑작스럽게 응답 지연이 발생했다. 시스템 모니터링 결과, GC가 과도하게 실행되면서 STW(Stop-The-World) 시간이 증가하고 있었다. 처음에는 단순한 Minor GC 문제로 보였지만, 자세히 분석해보니 Old 영역에서 발생하는 Major GC와 Full GC가 원인이었다. 이 문제를 해결하기 위해 Heap Dump 분석, GC 로그 모니터링, JVM 옵션 튜닝을 진행하며 얻은 인사이트를 공유하고자 한다.2. JVM의 GC 종류와 특성GC의 종류 및 동작 방식GC는 JVM의 메모리 관리를 자동화하는 핵심 기능이지만, 잘못 설정하면 애플리케이션 성능에 심각한 영향을 미칠 수 있다. 대표적인 GC 방식은 다음과 같다.SerialGC단일 스레드로 GC.. 2025. 3. 1. [Java] ThreadPool 비교: 어떤 쓰레드 풀이 가장 좋을까? 멀티스레딩을 다루다 보면, 쓰레드 관리를 어떻게 해야 할까? 라는 고민이 생깁니다.쓰레드를 마구 생성하면 메모리가 터지고(OutOfMemoryError), 그렇다고 하나씩 돌리면 너무 느리죠. 그래서 Java에서는 ThreadPool(쓰레드 풀) 을 제공합니다.그런데 이게 또 종류가 여러 가지라, “FixedThreadPool이 좋을까? CachedThreadPool이 좋을까?” 같은 고민이 생깁니다. 그래서 이번 글에서는 ThreadPool을 안 썼을 때와 썼을 때의 성능 차이를 직접 실험해보고, 어떤 경우에 어떤 쓰레드 풀을 써야 할지 정리해보겠습니다. 🚀 1. 실험 환경 • 10,000개의 작업을 처리해야 한다고 가정 • 각 작업은 단순히 숫자의 제곱을 계산하는 간단한 연산 • 여러 가지 Thr.. 2025. 2. 4. [Java] 동기식 처리와 비동기식 처리 ( feat. 블록킹 논블록킹을 곁들인 ) https://webheck.tistory.com/entry/Java%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0-%EB%B0%A9%EC%8B%9DAsynchronous-processing-model [Java]동기와 비동기 방식(Asynchronous processing model)출처 - https://poiemaweb.com/js-async 취업을 준비하던 중 서버 비동기 연동 경험 이란 문구를 보게 되었다. 맨날 동기 비동기 연동이라는 단어를 많이 들어 봤으나 막상 개념을 머릿속에서 꺼내 보자니webheck.tistory.com 위 글은 내가 개발자가 되기전에 내 나름대로 공부하고 나름대로 이해했다고 작성한 무려 5년전에 작성한 글이다.해당글.. 2025. 1. 11. [코딩테스트] 가장 많이 받은 선물 (feat. kotlin) https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 파악문제에서 친구목록[friends]이 주어지지고 각 친구끼리 선물을 주고 받은 내용이 선물목록[gifts] 로 주어진다.선물목록[gifts]는 "A B"형태의 문자열이다. A는 선물을 준 친구의 이름을 B는 선물을 받은 친구의 이름을 의미하며 공백 하나로 구분된다. 주어진 친구목록과 선물목록을 기준으로 선물을 더준 친구에게 선물을 주어야 한다.만약 두 사람이 선물을 주고받은적이 없거나 주고받은 수가 같은경우에는 선물지수 를 계산하여 해.. 2024. 12. 18. [cka] CKA 시험 합격 후기 - 늦은 정리... 한 달 전, Certified Kubernetes Administrator (CKA) 시험을 치렀고, 두 번의 도전 끝에 마침내 합격할 수 있었다. 이번 경험은 단순한 자격증 취득을 넘어, Kubernetes의 핵심 개념과 운영 방식을 깊이 이해하는 중요한 계기가 되었다. 처음 CKA를 준비하게 된 이유는, PaaS 환경에서의 애플리케이션들이 점점 늘어나고 있었기 때문이다. Kubernetes는 이제 거의 필수 기술처럼 자리잡았고, 언젠가 꼭 필요할 것이라는 생각으로 학습을 시작했다. 하지만 초기 설정 과정에서부터 여러 어려움에 부딪혔다. 설치 중 발생하는 오류들을 해결하기 위해 필요한 개념적 이해가 부족했고, Kubernetes의 구조와 원리를 제대로 파악하지 않고는 문제를 해결할 수 없다는 걸 절실히.. 2024. 10. 8. 이전 1 2 3 4 ··· 27 다음 반응형