그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록React
React

useRef는 언제 쓰나요?

실무4/5
설계3/5
인간3/5
기초2/5

면접관의 질문 의도

훅 사용법을 외워 왔는지, 아니면 "리렌더 여부"라는 기준으로 useState와 useRef를 가르는 감각이 있는지를 가른다.

큐레이션 답변

학습 자료

useRef는 current 프로퍼티에 값을 들고 있는 훅이고, 그 값이 바뀌어도 컴포넌트를 다시 렌더링하지 않는다. 그래서 두 가지 자리에 쓴다 — 첫째, DOM 노드에 직접 접근해야 할 때(input focus, scroll 위치, 외부 라이브러리 인스턴스 잡기). 둘째, 렌더링은 트리거하지 말아야 하지만 값은 보존해야 할 때(setInterval 핸들, 직전 prop, 외부 옵저버). 반대로 화면에 보여 줘야 하는 값은 useState를 써야 한다 — ref를 상태 대신 쓰면 값은 바뀌었는데 화면이 안 갱신되는 사고가 따라온다. 한 줄 기준 — "이 값이 바뀔 때 화면을 다시 그려야 하는가?" 그렇다면 state, 아니면 ref.

좋은 답변 구조

  1. 01useRef가 값 변경 시 리렌더를 일으키지 않는 훅이라는 정의부터 짚는다
  2. 02DOM 참조가 필요한 자리(input focus 등)와 렌더 없이 값 보존이 필요한 자리(타이머, 직전 값) 두 가지 사용 패턴을 든다
  3. 03useState와의 선택 기준을 "이 값이 바뀌면 화면을 다시 그려야 하는가"로 정리한다
  4. 04Strict Mode·effect cleanup·forwardRef 같은 실무 디테일로 마무리한다

자주 실수하는 포인트

화면에 표시되는 값을 useRef로 관리해 값은 바뀌었는데 화면이 안 갱신되는 코드를 짠다
ref 값 변경이 리렌더를 일으킨다고 잘못 알고 있다
useEffect 내부에서 ref.current를 너무 이르게 읽어 null을 만난다
라이프사이클 타이밍을 고려하지 않고 마운트 직후 ref.current를 가정한다

실무 맥락

  • input focus·스크롤 위치·미디어 재생처럼 DOM에 직접 접근해야 하는 폼·뷰어
  • setInterval·MutationObserver·외부 차트 라이브러리 인스턴스를 잡아 두어야 하는 컴포넌트
  • 직전 prop이나 직전 상태와 비교해야 하는 비동기 이벤트 처리

본인 경험에 녹이는 힌트

useState로 들고 있다 의미 없는 리렌더가 누적된 값을 useRef로 옮긴 경험이 있다면 "렌더 트리거 여부" 기준 사례로 풀어낼 수 있다

input 자동 포커스·외부 imperative API 연동을 다뤄 본 경험이 있다면 DOM 참조 사용 패턴으로 보여 줄 수 있다

ref를 상태 대용으로 쓰다 화면이 안 갱신된 버그를 추적한 경험이 있다면 "화면을 결정하는 값과 그렇지 않은 값"의 경계 이야기로 일반화할 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1useRef와 useState의 선택 기준을 한 문장으로 정리하면 무엇인가요
Q2forwardRef는 어떤 상황에서 필요한가요
Q3Strict Mode에서 ref와 effect 관련 주의할 점은 무엇인가요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문