react 5

[React] TypeScript Module Augmentation 정리 (TanStack Table 사례)

TypeScript를 사용하다 보면 라이브러리 타입에 내 프로젝트에서 필요한 속성을 추가하고 싶을 때가 있다.이때 사용하는 기능이 Module Augmentation이다. TypeScript Module Augmentation(모듈 보강)이란 ?TypeScript에서 이미 존재하는 모듈의 타입 정의를 확장하는 기능이다.즉, 새로운 타입을 만드는 것이 아니라 기존 라이브러리의 타입에 추가 속성이나 타입을 merge하는 방식이다. 보통 다음과 같은 상황에서 사용된다.외부 라이브러리 타입에 프로젝트 전용 속성을 추가하고 싶을 때전역 객체(window 등)에 새로운 프로퍼티를 추가해야 할 때라이브러리에서 확장을 의도적으로 열어둔 타입을 확장할 때 Module Augmentation은 declare modul..

Develop/React 2026.03.13

[React] useRef(null)로 시작하는 이유

이전 포스팅에 이어 React의 ref에 대해 좀 더 자세히 알아가보자. React에서 ref를 초기값 null로 두는 이유는 아래와 같다. 1. DOM 노드가 아직 존재하지 않기 때문 (흔함)const inputRef = useRef(null); React에서 useRef는 보통 이렇게 선언한다.컴포넌트가 처음 렌더링되는 시점에는 DOM 요소 생성 전이기 때문에 ref.current가 가리킬 대상이 없다.때문에 초기값을 null로 두는 것은 정상적이며, 렌더링 후 DOM이 연결되면 React 가 자동으로 값을 채운다. 2. React가 마운트/언마운트 상태를 명확히 표현하기 위해 null은 참조 대상이 없음 이라는 명확한 상태값이다. 시점ref.current초기 렌더 전null마운트 후DOM elem..

Develop/React 2026.03.09

[React] ref를 사용하는 이유와 역할

React 개발을 하다 보면 중간중간 ref를 선언하고 사용한다.주 목적과 이유는 아래와 같다. React의 "선언형 방식"으로 해결하기 어려운 순간에 “실제 DOM 객체”를 직접 만지기 위해 여기서 “DOM에 직접 접근한다”는 말이 처음 들으면 좀 추상적인데, 실제로는 브라우저가 만든 HTML 요소 객체를 그대로 가져와서 JS로 조작하는 것을 의미한다. 이런 설명을 봐도 글로 배우는 느낌이라 와닿지 않을것이다. 여기서 말하는 선언형 방식과 DOM 객체 직접 접근을 좀 더 쉽게 비유로 이해해보자! (비유는 비유일뿐 대충 그렇다는 느낌만 가져가세요)React 방식 (선언형) = 식당에서 주문하는 것“파스타 하나 주세요” 손님은 요리 과정에 개입하지 않고 주방(React)이 알아서 함 ref 방식 (직..

Develop/React 2026.03.09

[React] yarn으로 husky를 설정해보자(feat. .git경로)

Husky란? Git hook입니다. git과 관련된 액션이 일어날때 husky에 설정한 처리가 수행됩니다. 쉬운 예시로, pre-commit 훅을 사용하면 커밋 전 husky에 사용자가 설정한 액션이 수행됩니다. 공식사이트 : https://typicode.github.io/husky/ 사용 전 주의사항 : husky를 설치하려는 프로젝트의 폴더 경로에 .git이 있어야 합니다. husky는 yarn으로 설치할때와 .git의 위치에 따라 설치 방법이 달라져서 조금 까다롭습니다. 저는 오늘 프로젝트 폴더가 아닌 상위 폴더에 .git이 있는 관계로 설치 과정이 평범하지 않아 이러한 상황에 설치하는 방법을 알려드리려고 합니다 :) 일반적인 구조 내 폴더 구조 ReactApp (Root) ㄴ .git ㄴ ....

Develop/React 2024.03.25

[React] react + vite + typescript + yarn 프로젝트 환경구성

프로젝트를 생성하기 전에, vite에 대해 간단히 설명드릴게요 :) vite란? 대규모 프로젝트에서 javascript 모듈이 증가될 수록 javascript 기반의 도구는 병목현상이 발생됨에 따라 개발의 생산성을 낮추고 변경 파일에 대한 피드백에 영향을 주었으나 vite에서 지원하는 ES Modules(ESM)을 통해 이러한 현상을 해결할 수 있습니다. 자세한 설명은 아래 공식 홈페이지를 참고해주세요. https://ko.vitejs.dev/guide/why.html 버전 node : 20.11.1 (버전 변경 방법 : https://withwltn.tistory.com/31) yarn : yarn berry (4.1.1) react : 18.2.0 typescript : 5.2.2 프로젝트 생성 프로..

Develop/React 2024.03.10
반응형