참조(3)
-
왜 스택은 힙보다 빠를까? ㅡ 메모리 접근 방식 차이
프로그래밍에서 메모리 관리는 성능에 큰 영향을 주는 중요한 요소예요.그중에서도 스택(stack)과 힙(heap)은 대표적인 메모리 영역이에요.개발을 하다 보면“왜 스택은 힙보다 빠를까?”이런 질문이 떠오르곤 해요.이번 글에서는 스택과 힙이 어떻게 다르고,왜 스택이 더 빠른지 그 이유를 알아볼게요. 스택과 힙 메모리는 뭔가요?스택은 함수 실행 정보나 지역 변수 데이터를 저장해요.힙은 배열이나 객체 같은 동적으로 생성되는 데이터를 저장하는 곳이에요. 스택과 힙의 특징은 어떻게 구분되나요?스택함수가 실행되면 매개변수, 지역변수 등을 스택에 저장해요.함수가 끝나면, 해당 메모리는 자동으로 해제돼요.후입선출(LIFO) 방식이고 연속적인 메모리 공간이에요.구조가 단순해서 접근 속도가 매우 빨라요.힙객체나 배열처럼 ..
2025.04.24 -
왜 자바스크립트 객체는 값이 같아도 다르다고 할까?
이전 내용에서변수가 객체면 새로운 참조값을 반환해서매번 리렌더링 될 수 있다는 내용이 있었는데요.이번 내용에서는,왜 객체는 참조 주소를 사용할까?값 그대로를 비교하면 되지 않나?근본적인 질문을 다뤄보려 해요. 왜 객체는 값 그대로를 비교하지 않을까?객체를 값으로 비교할 수 있다면,구조가 복잡한 데이터에서도 상태 변화 여부를 쉽게 판단할 수 있을 거예요.const obj_origin = { number: 1 };const obj_same = { number: 1 };// true를 반환하면 비교 수월, 처리 빠름console.log(obj_origin === obj_same); // false// 하지만 실제로는 // 문자열로 변환하는 단계를 거쳐야 해요const obj1 = JSON.stringify(o..
2025.04.23 -
원시값 vs 객체 – useMemo와 리렌더링의 관계
이번 글에서는랜딩 페이지 배너를 만들면서 알게 된useMemo의 변수 저장 방식에 대해 알아보려 해요. useMemo는 뭔가요?useMemo는 콜백 함수의 반환 값을 기억하는 리액트 훅이에요.의존성 배열에 포함된 값이 변경될 때만 콜백 함수가 다시 실행돼요.// 실행 함수const callBack = () => {};// callBack 함수 반환값 기억useMemo(callBack, []);이때 반환된 값을 메모이제이션* 해서 불필요한 연산을 줄이는 것이 핵심이에요.메모이제이션: 콜백 함수의 반환 값을 메모리에 저장해 두는 것그리고 useMemo는콜백 함수가 실행되어도 리렌더링 여부를 결정하지 않아요.연산 결과를 기억할 뿐이에요.그리고 이전과 다른 값을 반환하면 새로운 값을 메모이제이션 해요.그 값을 ..
2025.04.22