| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 예외처리
- 개발자팁
- HashMap
- 메모리관리
- 프로그래밍기초
- JVM
- 코딩테스트
- 코딩공부
- 백준
- Java
- 코딩인터뷰
- 정렬
- 가비지컬렉션
- 코딩테스트팁
- 자바
- 자바개발
- 파이썬
- 개발공부
- 자료구조
- 코딩테스트준비
- 객체지향
- 프로그래머스
- 알고리즘
- 클린코드
- 개발자취업
- 자바기초
- 자바프로그래밍
- 멀티스레드
- 자바공부
- 알고리즘공부
- Today
- Total
목록2025/12/14 (3)
코드 한 줄의 기록
최근에 Java 애플리케이션을 성능 측정 도구로 모니터링하면서 너무 많은 객체가 생성되고 빠르게 GC의 대상이 되는 현상을 봤습니다. 특히 Integer나 Long 같은 래퍼 클래스를 많이 사용하는 부분에서 심각한 메모리 압박이 발생했는데, 이것이 단순한 개발 실수가 아니라 Java의 근본적인 메커니즘과 깊은 관련이 있다는 것을 깨달았습니다. 이번 글에서는 Java 객체가 어떻게 생성되고 소멸되는지, 그리고 JIT 컴파일러의 escape analysis가 어떻게 최적화하는지, 더불어 박싱/언박싱의 숨겨진 비용이 얼마나 큰지 차근차근 살펴보겠습니다.Java 객체의 생명주기: 스택과 힙의 이원 구조Java에서 객체를 생성하는 것은 매우 단순해 보입니다. new 키워드를 쓰면 객체가 힙에 할당되고, 아무도 참..
코딩테스트 준비를 시작하면서 가장 먼저 마주하는 고민은 "어떤 언어로 준비해야 할까?"라는 질문입니다. 그런데 더 흥미로운 질문도 있습니다. "여러 언어로 같은 문제를 풀어야 할까?"라는 것인데, 이 질문에 대한 답을 찾기 위해 지난 몇 개월간 직접 경험해 본 결과를 공유하려고 합니다. 저도 처음에는 파이썬과 자바 두 가지 언어로 코딩테스트를 준비했고, 결과적으로 이것이 정말 좋은 선택이었다는 것을 깨달았습니다. 이 글에서는 여러 언어로 문제를 푸는 이유, 효율적인 학습 방법, 그리고 실제 준비 과정에서 얻은 팁들을 상세히 설명하겠습니다.왜 여러 언어로 문제를 풀어야 할까?처음 이 질문을 받을 때 대부분 사람들은 "아, 그건 비효율적이다"라고 말합니다. 시간 관리 측면에서 보면 맞는 말입니다. 같은 문제..
프로젝트를 진행하다 보면 누구나 한 번쯤 마주치는 상황이 있다. 어플리케이션이 예상보다 느리게 동작하거나, 서버 리소스를 과하게 사용하고 있다는 피드백을 받는 경우다. 이때 우리는 어디서 문제가 발생하는지, 왜 성능이 저하되는지 파악해야 한다. 바로 이 시점에서 프로파일링이 필요해진다.프로파일링이란 무엇인가?프로파일링은 실행 중인 어플리케이션의 성능 데이터를 수집하고 분석하는 과정이다. 단순히 추측으로 최적화를 시도하는 것이 아니라, 실제 데이터를 기반으로 성능 병목을 찾아내는 방식이다. Java 프로파일링을 통해 우리는 다음과 같은 정보들을 얻을 수 있다.CPU 사용량과 어떤 메서드가 가장 많은 CPU 시간을 사용하는지메모리 할당 패턴과 메모리 누수 여부스레드 상태와 락 경합 상황I/O 작업의 병목 지..