[JS] 자바스크립트의 메모리 관리 (가비지 컬렉터)
·
개발/html, css, js
JS의 레퍼런스 js는 다른 언어와 다르게 포인터의 개념이 없다. 그렇기 때문에 포인터라는 개념 대신 참조(reference)를 이용한다. *GO언어는 포인터도 있고 가비지컬렉터가 있다. 포인터가 없다고 해서 가비지컬렉터가 있는건 아니다. 자바스크립트에서 변수에 값을 할당할 때, 실제 값이 저장되는 것이 아니라 값이 저장된 메모리 주소를 참조하는 방식으로 동작한다. 따라서 변수를 이용하여 값을 변경하면 해당 메모리 주소에 있는 값을 변경하게 된다. 예를 들어 아래 코드에서 'obj1'과 'obj2'는 같은 객체를 참조한다. 따라서 'obj1'의 프로퍼티를 변경하면 'obj2'에서도 변경된 값을 확인할 수 있다. var obj1 = { name: "John" }; var obj2 = obj1; obj1.n..
[Go] Golang 기초 - 2
·
개발/Go
1.변수란? 변수란 값을 저장하는 메모리 공간을 가리키는 이름이다. 값을 저장하는 위치(저장소)는 크게 하드디스크와 메모리가 있다. 하드디스크는 느리지만 컴퓨터 전원이 꺼져도 그대로 남아있다. 메모리는 속도는 빠르지만 전원이 꺼지면 날라간다. cpu연산에 필요한 데이터는 메모리에서 가져온다. 그 공간을 가리키는 이름이 변수이다. 2. 변수가 왜 중요한가? 프로그램이란 결국 데이터를 연산/조작 하는 일이다. 계산을 하려면 값이 있어야 하는데 그 값을 메모리에서 가져온다. code에서 메모리의 값을 조작하는 일은 변수를 통해서 일어난다. 결국 데이터 조작을 변수를 통해서 한다는 것이다. 게임,음악, 비디오 등 컴퓨터 입장에서 보면 데이터를 조작하는 것이다. 결국 모든 프로그램은 데이터를 조작하는 것이고 이를..