정적 할당은 자기 집에 있는 개인 창고(스택)에 물건을 보관하는 것에 비유할 수 있는데, 집 안에 있는 창고니까 크기는 조금 작지만(스택의 크기는 1MB) 집 안에 있어서 물건을 가져오고 보관하는 시간이 짧고 자기 마음대로 물건을 넣을 수 있다는 장점이 있음.

동적 할당은 집 밖에 있는 공용 창고(힙)에 물건을 보관하는 것에 비유할 수 있는데, 공용 창고는 크기가 크기 때문에 큰 물건들도 넣을 수 있다는 장점이 있음.
하지만 공용 창고이기 때문에 물건 출입 기록부를 써야 하는데, 물건을 가져가고 물건을 가져갔다는 기록을 쓰지 않으면 물건을 보관한 장소가 여전히 사용 중인 것으로 표시되어 다른 사람들이 그곳에 물건을 보관할 수 없음.(메모리 누수) 다행히도 JAVA 등에서는 창고 관리자가 있어 물건을 가져가면 자동으로 나갔다는 기록을 써 주기 때문에 이런 일을 걱정하지 않아도 됨.(GC)

마지막으로 C/C++등에서는 각각의 사람들이 어느 창고에 물건을 넣을 지 정할 수 있지만, 자바 등에서는 매우 작은 물건만 개인 창고에 넣을 수 있고 다른 것들은 공공 창고에 보관해야 함.


이 비유 어떠냐

- dc official App