java (19) 썸네일형 리스트형 [Java] Garbage Collection(GC) 변천사 GC(Garbage Collection)란? 자바에서는 C계열의 언어와 달리 메모리 관리를 개발자가 직접 하지 않습니다. Garbage Collector가 사용되지 않는 메모리에 대한 참조를 자동으로 해제하여 메모리 공간을 확보합니다. 자바에서는 버전 업그레이드를 하면서 GC 알고리즘도 같이 향상시켜왔습니다. 처리 성능을 높이고, 애플리케이션이 중단되는 시간을 최대한 줄이기 위해서입니다. GC의 대상이 되는 메모리 영역은 JVM의 메모리 구조에서 heap 영역인데, 자바가 처음 출시되었을 때 사용하던 mark-and-sweep 알고리즘 이후부터는 generational 개념과 동시성(concurrent) 기반으로 작동하고 있습니다. generational 기반 GC의 자세한 내용은 NaverD2 - Ja.. [Java] Java Virtual Machine(JVM) 출처 : https://d2.naver.com/helloworld/1230 이 글은 위 NaverD2 게시물을 요약, 정리한 글입니다. 가상머신 가상머신(virtual machine)은 프로그램을 실행하기 위해 물리적 머신(컴퓨터 등)과 유사한 머신을 소프트웨어로 구현한 것 자바는 원래 WORA(Write Once Run Anywhere)를 구현하기 위해 물리적인 머신과 별개의 가상 머신을 기반으로 동작하도록 설계됨 이를 통해 자바 바이트코드를 실행하고자 하는 모든 하드웨어에 JVM을 동작시킴으로써 자바 실행 코드를 변경하지 않고 모든 종류의 하드웨어에서 동작하게 된 것 JVM의 특징 스택 기반의 가상 머신: 인텔 x86 아키텍처나 ARM 아키텍처와 같은 하드웨어가 레지스터 기반으로 동작하는 데 비해 J.. [Java] 동시성 처리 - intro 동시성이 필요한 이유 동시성 이슈 동시성 이슈를 해결하는 방법 자바에서의 동시성 이슈 해결 마치며 한동안 동시성은 제가 고려해야 할 사항이라고 생각하지 않았습니다. 우선은 동시성 처리라는 개념이 너무 어려웠고, 기능을 '구현'하는 데 있어서 동시성 처리가 필요할 정도의 성능을 요구하는 로직을 작성할 필요와 경험이 없었기 때문이기도 합니다. 한가지 변명을 하자면 동시성 처리 성능을 개선하기에 앞서 정확히 '동작'하는 기능을 구현하는 것이 더 중요하다고 생각하기도 했고, Clean Code 스터디를 하면서 동시성이 항상 성능을 높여주지는 않는다는 미신과 오해를 그 근거로 들기도 했습니다. 동시성에 대해 정확히 이해하지 못하고 사용할 바에야 동시성의 이점을 포기하고 정확하게 동작하는 기능 구현을 선택하겠다는 .. 이전 1 2 3 다음