너무 많은 삽질을 해서 많이 슬프다.
자괴감이 심하게 왔다.
stack과 heap 아주 중요한 정보라고 하는데
봐도봐도 뭔지 모르겠다....
삽질을 하며 해결하는 과정이 중요하지만 이렇게 해결하지 못하고
몇시간을 보낼때 어떻해야할지 머리가 하얘져버린다.
그냥 꾸준히 계속 알때까지 검색을 해보았지만 일단 오늘은 실패다.
(사실 저번주 목금도 엄청난 삽질을 했지만 성공하지는 못 했다.)
조금이라도 오늘의 배운점을 적어 복습해보고 내일 수업을 위해 자야겠다.
프로세스 메모리
무언가 프로그램이 실행될때 ram은 공간을 나누고 지정된 위치에 데이터를 나누고 실행한다.
한 메모리에서 이런식으로 공간들이 존재하는데 이를 학습하였다.
heap
필요해 의해 메모리를 동적으로 할당할 때 사용하는 메모리 영역으로 동적 메모리 영역이라 부른다. 메모리 주소값에 의해서만 참조되고 사용되는 영역이다. 자바스크립트는 new로 생성한 객체들이 저장되어 진다.
stack(런타임)?
프로그램이 자동으로 사용하는 메모리 영역
LIFO 방식으로 자료를 저장 삭제한다.
함수 호출과 관계되는 지역변수, 매개변수가 저장 되어진다. 함수 호출시 생성되며, 함수가 끝나면 반환된다. stack 사이즈는 각 프로세스 마다 할당되지만 프로세스가 메모리에 로드될 때 stack 사이즈가 고정되어 있어 런타임 시 stack 사이즈를 바꿀 수 없다. 명령 실행 시 자동으로 증가 또는 감소하기 때문에 보통 메모리의 마지막 번지를 지정한다.
메모리 주소
32비트 기준(64비트 훠어어어얼씬 더 크다.)
0 부터 42억9천만... 의 주소를 가진다.(43억)
이때 1주소당 1byte의 정보를 처리할 수 있다.
보통 타입별로 공간을 할당하는것 이라 이해했는데 bool = 1byte int = 4byte 이런식으로
처리되는것 같다....
자바스크립트 밖에 공부를 안해봐서 너무 생소한 구간이다.
c언어 에서는 &변수명 을 통해 해당 변수의 할당된 주소중 맨 앞 주소값이 할당된다.
놀랍게도 이게 오늘 하루종일 컴퓨터 앞에서 공부한거네... 하하
이번 미션은 특히 대실패 이다.
내일 수업 듣고 다른분들 코드를 보며 감을 좀 잡아야 할 것 같다.