Garbage Collection(GC) 이란? 가비지 컬렉션(Garbage Collection)은 자바의 메모리 관리 기법 중의 하나로 JVM의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체를 모아 주기적으로 제거하는 프로세스를 말합니다. C / C++언어에서는 가비지 컬렉션이 없어 수동으로 메모리 할당과 해제를 해줘야 하지만 Java는 가비지 컬렉터가 대행해 주기 때문에 한정된 메모리를 효율적으로 사용할 수 있습니다. 따라서 개발에만 집중할 수 있다는 장점이 있습니다. 가비지 컬렉션 vs 가비지 컬렉터 가비지 컬렉션은 사용하지 않는 메모리를 해제하는 행위를 말하고, 가비지 컬렉터는 행위의 주체(프로그램)를 말합니다. 즉 가비지 컬렉터가 가비지 컬렉션을 수행합니다. Heap ..
자바의 메모리 영역 자바 프로그램을 실행 하게 되면 JVM은 OS(운영체제 ex. 윈도우, 유닉스, 리눅스) 로 부터 메모리를 할당 받습니다. 할당 받은 메모리를 용도에 따라서 여러 영역으로 나누어 관리합니다. JVM의 메모리 공간(Runtime Data Area)은 크게 메서드(Method) 영역, 스택(Stack) 영역, 힙(Heap) 영역으로 구분되고 데이터 타입에 따라 각 영역에 나눠서 할당 되게 됩니다. 컴퓨터의 메모리는 한정된 공간이기 때문에 어떻게 관리하고 사용하느냐에 따라서 성능(속도)이 좌우됩니다. 따라서 Java 어플리케이션에서 메모리를 효율적으로 사용하기 위해서는 메모리 구조와 특징에 대해 이해할 필요가 있습니다. 1. 메서드 영역(Static or Method) JVM이 실행되고 클..
Java 동작 과정 전체적인 동작 과정은 컴파일 수행 -> 클래스 로딩 -> 메모리 할당 -> 바이트 코드 해석 및 실행 -> 가비지 컬렉션 -> 예외 처리 -> 프로그램 종료 과정을 수행합니다. 위 그림은 전체적인 자바의 실행 과정을 보여줍니다. 그럼 이제 조금씩 나누어서 과정을 살펴보겠습니다. 1. 컴파일 (Compile) 컴파일러 (Compiler)는 '해석기'라는 뜻으로 인간이 사용(이해)하는 고레벨언어를 기계가 이해할 수 있는 기계어(저 레벨 언어)로 해석해 주는 번역 프로그램입니다. 사람이 java언어로 Member라는 클래스를 만들면 IDE,Eclipse같은 IDE들은 자동 컴파일 기능을 갖추고 있어, 파일을 저장하는 순간 자동으로 컴파일을 수행합니다. 이렇게 자동으로 컴파일된. class ..