가비지 콜렉터가 뭔가요?

직접적인 메모리 관리로부터 개발자들을 해방시켜준 가비지 콜렉터! 🙌

편리하지만, 그 특성과 한계를 알아야
메모리 문제로부터 자유로운 소프트웨어를 만들 수 있겠죠.

영상으로 개념을 잡으신 다음, 메모리와 쓰레기수집에 대해 검색하시면서
보다 세부적인 지식을 익혀나가시면 좋을거에요 😁




🎬 영상 주요 포인트

🍳 컴퓨터와 메모리

컴퓨터가 일을 할 때도 처리할 정보들을 올려놓을 공간이 필요해요. 이게 조리대로 비유한 메모리에요. 조리대가 넓으면 넓을수록, 더 많은 종류의 요리를 동시에 더 많이 할 수 있겠죠. 컴퓨터를 살 때 램을 보는 이유에요. ... 여러분이 코드를 짜는건 컴퓨터의 주방장에게 레서피를 써주는거에요. 코드에 작성하는 변수들, 함수들, 객체들이 메모리 공간을 차지하는 요소들, 조리대에 얹어지는 재료와 도구가 되는거죠. 그런데 이 주방장은 자기주도적이질 못해요. 레서피대로 하다 조리대가 꽉 차면 그냥 멘탈이 나갑니다. 뻗어버려요. 중간중간 치워줘야겠죠.

🗑 가비지 컬렉터

그래서 자바를 비롯한, 새로운 언어들에는 가비지 컬렉터란 걸 도입하기 시작했어요. 아까 그 센스있는 조수같은 로보트가 프로그래머가 일일이 하던 일을 대신해주는거죠. 이렇게 메모리를 알아서 관리하는 언어들을 managed language라고 해요. 반대는 unmanaged language라고 하죠. 언어와 동작하는 환경마다 다르지만 특정 때에 특정 방식으로 필요없는 정보들, garbage들을 쓸어담아다 버려요.

🧹 메모리 관리의 중요성

그럼에도, 가비지 컬렉터에는 한계가 있어요. 사람의 판단력을 갖춘 게 아니기 때문에 지워야 할 것들을 100퍼센트 잡아내진 못해요. 때문에, '난 매니지드 언어를 쓰니까 메모리관리는 가비지 컬렉터에 맡길게요' 할 게 아니에요. 좋은 프로그래머가 되려면 메모리 관리에도 신경을 써야 해요. 메모리 누수를 방지하는 방식은 어느정도 공통적인 것도 있지만 뭘 프로그래밍하느냐에 따라 다른 부분들도 있어요. 언어나 환경마다 특성이 다르기 때문에 여기에서 누수 방지에 효과적인 방식이 저기에서는 성능만 저하시키기도 하거든요. 같은 것에 대해서도 개발자마다 의견이 다르기도 하구요. 그래서 여러분이 쓰는 언어나 플랫폼, 기기마다의 바람직한 메모리 관리 방식을 이것저것 알아보실 필요가 있어요.

🍿 더 자세한 내용은 영상에서 보실 수 있습니다.





관련 태그의 다른 영상들

스코프가 뭔가요?
지역/전역변수의 차이, 자바스크립트의 const, let, var에 대해서도 확실하게 알아봅시다.
# 스코프
# 변수
# 메모리
포인터가 뭐고 왜 쓰는건가요?
컴공 저학년의 악몽! 더 잘 알면 보다 쉽게 정복할 수 있어요.
# 포인터
# C언어
# 메모리
가비지 컬렉터가 뭐하는 건가요?
메모리의 스마트한 청소부 가비지 컬렉터에 대해 알아봅니다.
# 가비지컬렉터
# 메모리
...
🌏 Why not change the world?