게시글 삭제
정말 삭제하시겠습니까?
{풀스택} React 이론 9강 - useRef가 필요한 간단 이유
[주요 목차]
useRef란 무엇인가?
useRef의 필요성
useRef를 활용한 실전 예제
안녕하세요! 웹 개발을 처음 시작하는 분들이라면 React라는 프레임워크에 대해 들어보셨을 거예요. React는 사용자 인터페이스를 구축하는 데 아주 유용한 도구인데요, 그 안에서도 다양한 훅(hook)들이 있습니다. 그 중에서도 'useRef'라는 훅은 초보자분들이 이해하기 어려울 수 있지만, 매우 중요한 기능을 가지고 있어요. 이번 글에서는 useRef가 무엇인지, 왜 필요한지, 그리고 실제로 어떻게 활용할 수 있는지 쉽게 설명드릴게요. 이 글을 읽고 나면 useRef의 기본 개념과 실전 활용법을 확실히 이해할 수 있을 거예요.
{풀스택} React 이론 9강 - useRef가 필요한 간단 이유 · 핵심 장면 1
useRef란 무엇인가?
useRef는 React에서 제공하는 훅 중 하나로, DOM 요소에 직접 접근할 수 있게 해주는 기능이에요. 쉽게 말해, useRef를 사용하면 특정 HTML 요소를 지정하고, 그 요소에 대한 참조를 유지할 수 있습니다. 예를 들어, input 태그의 값을 직접적으로 관리하고 싶을 때 사용하죠.
useRef는 다음과 같은 방식으로 사용해요. 먼저, 컴포넌트 안에서 const myRef = useRef(null);처럼 변수를 선언하고, JSX 코드에서 <input ref={myRef} /> 형태로 ref 속성을 추가하면 돼요. 이렇게 하면 myRef라는 변수를 통해 input 요소에 접근할 수 있게 됩니다.
이때 주의할 점은 useRef로 참조한 요소는 리렌더링(rendering)이 발생해도 값이 유지된다는 거예요. 즉, 컴포넌트가 다시 그려져도 myRef는 여전히 같은 요소를 가리키고 있어요. 이 점이 useRef의 큰 장점 중 하나입니다.
{풀스택} React 이론 9강 - useRef가 필요한 간단 이유 · 실전 화면 2
useRef의 필요성
그렇다면 useRef는 왜 필요할까요? React는 상태(state) 기반의 프레임워크로, 상태가 변경되면 컴포넌트가 다시 그려져요. 그런데 input 같은 DOM 요소의 값을 직접적으로 변경하고 싶다면, 매번 상태를 업데이트하는 번거로움이 있어요. 이럴 때 useRef를 사용하면 훨씬 간편하게 DOM 요소에 접근할 수 있습니다.
예를 들어, 사용자가 버튼을 클릭했을 때 input의 값을 읽어오고 싶다면, useRef를 활용하는 것이 좋아요. 일반적으로는 상태를 업데이트하고, 그 상태를 통해 input 값을 관리하지만, useRef를 사용하면 직접적으로 input의 값을 가져올 수 있습니다. 이 방식은 특히 성능이 중요한 경우에 유리해요. 불필요한 렌더링을 줄일 수 있기 때문이죠.
또한, useRef는 컴포넌트가 마운트(mount)될 때 한 번만 참조가 생성되기 때문에, 메모리 관리 측면에서도 효율적이에요. 자주 변경되는 값이 아니라면 useRef를 통해 관리하는 것이 더 나은 선택이 될 수 있습니다.
{풀스택} React 이론 9강 - useRef가 필요한 간단 이유 · 주요 포인트 3
useRef를 활용한 실전 예제
이제 useRef를 실제로 어떻게 활용할 수 있는지 예제를 통해 살펴볼게요. 간단한 React 컴포넌트를 만들어 보면서 input의 값을 버튼 클릭 시 콘솔에 출력해보는 거예요.
```javascript import React, { useRef } from 'react';
const MyComponent = () => { const inputRef = useRef(null);
const handleClick = () => {
console.log(inputRef.current.value);
};
return (
<div>
<input ref={inputRef} type="text" />
<button
</div>
);
};
export default MyComponent; ```
위 코드에서 inputRef를 사용해 input 요소에 접근하고, 버튼 클릭 시 input의 값을 콘솔에 출력하도록 했어요. 이렇게 간단하게 DOM 요소에 접근하고, 값을 가져오는 데 useRef가 큰 역할을 합니다.
이 예제를 통해 useRef의 실용성을 느껴보셨을 거예요. 초기 상태 관리가 필요 없는 경우, 또는 성능이 중요한 경우에는 useRef를 적극 활용해보세요!
[자주 묻는 질문]
useRef는 언제 사용해야 하나요?
useRef는 DOM 요소에 직접 접근해야 할 때, 또는 렌더링을 최소화하고 싶을 때 사용합니다. 예를 들어, input 값이나 외부 라이브러리와의 연동 시 유용하며, 상태 관리가 필요 없는 경우에 적합합니다.
useRef와 useState의 차이점은 무엇인가요?
useRef는 DOM 요소에 대한 참조를 유지하는 데 사용되며, 렌더링 시 영향을 주지 않습니다. 반면, useState는 상태 변화를 감지하여 컴포넌트를 리렌더링합니다. 따라서, 자주 변경되지 않는 값을 관리할 때 useRef가 더 효율적입니다.
useRef를 사용하면 성능이 어떻게 개선되나요?
useRef를 사용하면 불필요한 리렌더링을 줄일 수 있어 성능이 개선됩니다. 상태가 변경될 때마다 컴포넌트가 다시 그려지는 것을 방지하고, 직접 DOM 요소에 접근하여 필요한 작업을 수행할 수 있어요. 이를 통해 앱의 반응 속도가 빨라질 수 있습니다.