잡동사니/GPT가 알려주는
[GPT가 알려주는] React - UseRef() 와 UseEffect()
heylo
2025. 4. 14. 16:53
거의 맞았어! 하지만 정확히 말하면 useEffect가 useRef를 실행시키는 게 아니라,
컴포넌트가 처음 렌더링될 때 useEffect가 1번 실행되고,
useRef는 그 이전에 초기화돼 있는 것이야.
✅ 정확히 말하면
| Hook | 실행시점 | 설명 |
| useRef() | 컴포넌트 렌더링 시점에 바로 실행 | 값(객체)을 한 번만 만들어서 유지함 |
| useEffect(() => {...}, []) | 화면에 렌더링된 뒤 한 번 실행 (마운트 후) | 의존성 배열이 []이면 처음 한 번만 |
🧠 쉽게 정리하면
const ref = useRef(0); // ✅ 렌더링 직후 실행 → 초기값 설정됨
useEffect(() => {
console.log("한 번 실행됨"); // ✅ 화면에 그려진 후 딱 1번 실행됨
}, []);
- useRef()는 컴포넌트 렌더링 시마다 실행되지만, .current 값은 유지됨
- useEffect(..., [])는 마운트 후 한 번만 실행됨
❗ 오해하면 안 되는 점
❌ "useRef가 실행되니까 useEffect가 실행된다" ❌
✅ "컴포넌트가 렌더링되니까 둘 다 실행되는 것"
✅ 한 줄 요약
useEffect(() => {...}, [])는 컴포넌트가 화면에 처음 나타난 뒤 한 번 실행되고,
useRef()는 그보다 먼저 실행돼서 초기값을 저장해두는 역할이야.
필요하면 useRef가 실제로 DOM에 어떻게 접근하는지, useEffect와 함께 어떻게 쓰는지도 예시로 보여줄게 😎