| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바
- 자바기초
- 프로그래머스
- JVM
- 코딩공부
- 코딩인터뷰
- 메모리관리
- 개발공부
- 개발자취업
- 멀티스레드
- 프로그래밍기초
- 알고리즘
- 백준
- 코딩테스트
- 자바프로그래밍
- 객체지향
- 클린코드
- 개발자팁
- 코딩테스트준비
- 자료구조
- 가비지컬렉션
- 자바공부
- Java
- 코딩테스트팁
- HashMap
- 정렬
- 파이썬
- 예외처리
- 알고리즘공부
- 자바개발
- Today
- Total
목록JVM (4)
코드 한 줄의 기록
처음 Java를 배울 때 가장 신기한 부분 중 하나가 메모리 관리였다. C나 C++처럼 직접 free() 함수를 호출하거나 포인터를 관리할 필요가 없다는 게 정말 편했다. 하지만 실제 프로덕션 환경에서 고성능의 백엔드 시스템을 구축하려면 이 "자동"이라는 개념이 정확히 어떻게 동작하는지 알아야 한다. 특히 GC(Garbage Collection)는 애플리케이션의 응답 속도와 처리량에 직접적인 영향을 미치기 때문에 개발자가 반드시 이해해야 할 핵심 개념이다. 이번 글에서는 Java GC의 기초 원리부터 시작해서 세대별 GC가 왜 필요한지, 그리고 마크-스윕 알고리즘이 어떻게 동작하는지 상세히 설명할 것이다. 마지막으로 실제 GC 로그를 읽고 분석하는 방법까지 다룰 예정이니, 이 글을 읽으면 GC에 대한 근..
처음 Java를 배울 때 이상한 점이 하나 있었어요. C나 C++는 소스 코드를 컴파일하면 바로 실행 파일(*.exe)이 나오는데, Java는 왜 *.class라는 중간 산물이 생기고, JVM이라는 것이 필요할까? 이 의문이 저를 Java의 아주 흥미로운 세계로 끌어당겼습니다. 이 글에서는 Java 코드가 어떻게 JVM에 로드되고, 실행되는지를 단계별로 파헤쳐 봅시다. 특히 ClassLoader의 동작 방식, 바이트코드의 정체, 그리고 메모리에 어떻게 클래스가 관리되는지 알아보겠습니다. 이 지식은 성능 최적화, 메모리 누수 디버깅, 그리고 복잡한 프레임워크의 작동 원리를 이해하는 데 정말 중요합니다.1단계: 소스 코드의 여행은 javac부터 시작우리가 작성한 *.java 파일은 사람이 읽을 수 있는 형태..
안녕하세요! 오늘도 즐겁게 코딩하고 계신가요? 개발을 하다 보면 기능 구현에 급급해 정작 우리가 짠 코드가 '어디에', '어떻게' 저장되고 실행되는지 놓칠 때가 많습니다. 저 역시 주니어 시절에는 "그냥 객체는 new 하면 생기는 거 아니야?"라고 단순하게 생각했었는데요. 트래픽이 몰리는 상황에서 OutOfMemoryError를 겪거나, 성능 튜닝 이슈를 마주하게 되니 JVM(Java Virtual Machine)의 메모리 구조를 모르면 해결할 수 없는 벽이 있다는 걸 깨달았습니다. 오늘은 제가 최근에 다시 깊게 공부하며 정리한 JVM 메모리 구조(Runtime Data Area)에 대해 공유해 보려 합니다. 단순히 이론적인 정의를 넘어, 실제 코드가 실행될 때 Stack, Heap, 그리고 Java 8..
Java는 “Write Once, Run Anywhere”를 실현한 언어로, 소스 코드를 컴파일하고 JVM이 실행하는 독특한 구조를 갖추고 있습니다. 이 글에서 Java 컴파일러와 JVM의 내부 동작 과정을 단계별로 살펴보고, 개발자가 이해해야 할 핵심 개념과 팁을 자연스럽고 구어체에 가깝게 알려드립니다.왜 컴파일과 JVM 동작 과정을 알아야 할까?디버깅과 성능 최적화버그가 발생하거나 성능 저하 문제를 마주했을 때, 컴파일러 옵션이나 JVM 설정을 조정하면 문제 해결에 효과적입니다.플랫폼 독립성 이해Java의 핵심 강점 중 하나인 플랫폼 독립성(Portability)은 바이트코드(.class 파일)와 JVM 덕분에 나옵니다.최신 Java 기능 활용모듈 시스템, JIT 컴파일러, GC(Garbage Col..