본문 바로가기
##JAVA

GC<가비지 컬렉터> (예외, IO, 제네릭 복습)

by 운중동토토로 2024. 7. 8.

가비지 컬렉션(Garbage Collection, GC)은 프로그래밍 언어에서 메모리 관리를 자동화하는 중요한 기능입니다.

특히 자바(Java)와 같은 언어에서는 GC가 핵심적인 역할을 합니다.

GC는 더 이상 사용되지 않는 메모리를 자동으로 해제하여

프로그램이 메모리 누수(memory leak)와 같은 문제를 방지합니다.

### 예외(Exception)

예외(Exception)는 프로그램 실행 중 발생할 수 있는 예기치 않은 상황을 나타냅니다.

예외 처리(Exception handling)는 프로그램이 예외 상황을 감지하고 이에 대응하는 방법을 정의하는 메커니즘입니다.

예외 처리를 제대로 하지 않으면 메모리 누수나 프로그램의 비정상 종료로 이어질 수 있습니다.

### IO (Input/Output)

입출력(IO) 작업은 파일 읽기/쓰기, 네트워크 통신 등과 같은 외부 자원과의 상호작용을 말합니다.

IO 작업을 할 때는 파일을 열고 닫아야 하며, 네트워크 연결을 정리해야 합니다.

이 과정에서 예외가 발생할 수 있고, 이를 적절히 처리하지 않으면 자원이 제대로 해제되지 않아 메모리 누수가 발생할 수 있습니다.

### 제네릭(Generic)

제네릭(Generic)은 자바에서 컬렉션 프레임워크나 클래스, 인터페이스 등을 설계할 때 사용되는 기법입니다.

제네릭을 사용하면 타입 안정성(type safety)을 보장하며, 컴파일 시에 타입 체크를 할 수 있습니다.

이는 실행 중 예기치 않은 타입의 객체가 생성되어 메모리를 사용하게 되는 상황을 방지하는 데 도움을 줍니다.

### 가비지 컬렉터(GC)

가비지 컬렉터는 메모리 관리의 핵심 기능으로, 프로그램이 더 이상 필요하지 않는 메모리를 자동으로 해제합니다.

메모리 누수를 방지하고, 프로그래머가 명시적으로 메모리 해제를 신경 쓰지 않아도 됩니다.

대신 GC는 더 이상 참조되지 않는 객체를 감지하여 자동으로 해제합니다.

이 과정에서 예외 처리와 IO 작업의 적절한 관리가 중요하며, 제네릭을 통해 타입 안정성을 확보하는 것이 바람직합니다.

이와 같은 요소들이 모여서 안정적이고 효율적인 메모리 관리가 가능하며, 이는 가비지 컬렉터가 제공하는 주요 이점 중 하나입니다.