왜 이런 단순한걸 묻는거지 구조를 묻는거지 의아했지만... 결코 쉽지 않았다


stack은 정적영역으로써 미리 할당된 친구들 컴파일시간에 지정하여 설정하였고 (LIFO)


heap은 대체적으로 크기의 가변이 있는 친구들이나 전역적으로 접근이 가능해야했고 난 스프링유저로써 GC를 언급했다.



+그렇다면 왜 heap은 정적인 친구들을 stack은 동적인 친구들을 받지 않는건가요..?



그렇다 여기서부터 뭔가 쌔함을 감지했다 stack은 단순히 포인트증가정도 heap은 포인트를 따라 찾아나서는 느낌으로 데이터를 찾는느낌으로 횡설수설했고


결론적으론 stack은 정해진 공간에 다른 함수가 의존적이면 변경이 매우 힘들거고..뭐 추가적으로 외부/내부 단편화를 언급해버렸다.


+외부/내부 단편화관련 질문


stack이 쌓일때 한칸씩 한칸씩 쌓이는데 그 한칸의 크기가 (4byte?)처럼 어느정도 OS에서 정해진 단위가 있을거고 그 최소 단위등을 표현하였고..

동적메모리는 미리 측정이 불가능하기에 파편화가 일어났으며.. 역시 백엔드 개발자라 그런지 GC에 관련하여 되물음이 돌아왔다.


사실 GC관련해선 young부분에서 뭐하는건 알고있었는데 //할당과 해제를 실행 ->데이터 파편화가 일어나고 --> 정렬이 일어나고 ---> 또 오래된건 처리하고 이런느낌으로 설명했고

결과적으로 오라클에서 heap영역을 2개로나눠 Compact 시켜서 메모리용량을 최적화시키는대신 좀 느릴것이다라고 마지막에 답변했다.



지금 면접리뷰도 사실 너무 의식의 흐름기법으로 적었지만 기초가 많이 약했던것같다.