본문 바로가기

useRef

(3)
React에서 중복호출(aka. 따닥)을 막는 완벽한 방법 서언 안녕하세요. 최근에 퀄리티 높은 프론트엔드 제품을 만드는 것에 관심이 많은데요. 사소해보이는 디테일을 얼마나 능숙히 처리하느냐가 프론트엔드 개발자의 실력 척도 중 하나라고 생각했어요. 저는 여러 원칙들을 세우고 있지만, 오늘은 중복호출 (aka 따닥)을 방지하는 완벽한 방법을 탐구해볼 것입니다. 문제인식 서비스를 개발하다가, 중복호출이 발생해서 여러 문제가 발생하는 경우가 있습니다. 결제 요청이 2번 들어갈 수도 있고, 게시물 작성이 2번 될 수도 있고, 댓글이 2번 써질 수도 있습니다. 이로 인해 비즈니스적으로도 영향을 미칠 수도 있습니다. 작게는 서버 에러 수가 많아져서, noisy 해질 수 있죠. 이만큼 중요도가 높고, 프론트엔드 퀄리티에 큰 역할을 한다고 생각했는데요. 실제로 저도 명확한 해..
A use case of Function Overloading in TypeScript (useRef, remove null/undefined) 서언 TypeScript에는 Function Overloading 기능이 있습니다. 이번에 Function Overloading의 강력함을 깨닫고, 이를 공유하고자 아티클을 씁니다. 함수 오버로드가 왜 필요한지 이해하고, useRef 예시와 저희 프로젝트에 적용해본 예시를 설명드리겠습니다. 타입스크립트에서 함수 오버로딩이 왜 필요한가? 자바스크립트는 인자의 개수 제한, 인자의 타입 제한이 없습니다. 코드 예시를 보겠습니다. function add(a, b, c) { if (b) { if (c) { return a + b + c; } return a + b; } return a; } console.log(add(1, 2, 3)); // 6 console.log(add(1, 2)); // 3 console...
[React] 함수형 컴포넌트는 왜 이벤트 부착 시점의 상태를 기억할까? 함수형 컴포넌트는 이벤트 부착시점의 상태를 기억한다. 함수형 컴포넌트와 클래스형 컴포넌트의 결정적인 차이를 중심으로 다룬다. 문제 상황 const [count, setCount] = useState(0); useEffect(() => { window.addEventListener('unload', handleUnload); }, []); const handleUnload = () => { localStorage.setItem("count", count); }; return ( setCount(count + 1)}>+ ) 위와 같은 코드가 있다 button을 클릭했을 때 count가 1씩 증가하고, 화면을 닫을 때(unload), 로컬스토리지에서 count를 기억한다. button을 5회 누른 후, 화면을..