거의 맞았어! 하지만 정확히 말하면 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와 함께 어떻게 쓰는지도 예시로 보여줄게 😎

+ Recent posts