moondy.log
로그인
moondy.log
로그인
스마트 포인터
Moondy
·
2022년 5월 13일
팔로우
0
memory
0
등장배경
자바는 GC가 메모리 관리하지만, C++은 사용자가 메모리 할당/해제 함
이 때 할당받은 메모리를 해제하지 않을 경우 프로그램은 계속 사용하고 있는 메모리로 인지하고 해당 메모리를 사용하지 않는 메모리 누수(memory leak) 발생
이를 방지하기 위해 등장
개념
포인터처럼 사용하는 클래스 템플릿으로 메모리를 자동 해제
객체 사용이 끝나면 소멸자가 자동으로 호출되어 메모리 해제
장점
일일이 메모리 할당하는 코드 작성 안해도 됨
개발자의 실수로 인한 메모리 누수 방지
단점
정적으로 선언된 포인터 값이 NULL 인지 아닌지 체크 불가능
디버깅과 유지보수 어렵기 때문에 상황을 잘 보고 판단해야함
자바 개발자에게 시사하는 바
메모리를 즉시 해제하느냐, 체크만 해두었다가 GC가 처리하느냐의 차이가 있을 뿐, 자바의 오브젝트 관리와 메커니즘이 같다
Moondy
LLM Application을 개발중인 BackEnd 개발자
팔로우
이전 포스트
자바에는 포인터가 없는 이유
다음 포스트
GC (가비지 컬렉터)
0개의 댓글
댓글 작성
관련 채용 정보