내부 요소 스크롤 위치 도달 시 부모 요소 스크롤 방지하기
·
Frontend development/Styling
이 글에서는 화면 흔들림을 방지하고, 자연스러운 스크롤 경험을 제공하기 위한 방법을 설명합니다. 웹 페이지를 만들다 보면 종종 컴포넌트 내에 스크롤이 필요한 경우가 있습니다. 컴포넌트 안에서 스크롤을 최대로 내리면 부모 컴포넌트의 스크롤이 함께 움직이는 문제가 발생할 수 있습니다. 이를 방지하기 위해 HTML 및 Body 태그에 `overflow: hidden` 속성을 적용할 수 있지만, 이로 인해 스크롤바가 사라지면서 화면 크기가 변동되어 사용자에게 불편함을 줄 수 있습니다. 이 글에서는 이러한 문제를 해결하기 위한 방법을 소개합니다.  아래 코드는 리액트(React)에서 이 문제를 해결하기 위한 예제입니다. useEffect 훅을 사용하여 조건에 따라 바디의 패딩을 조정하여 화면 흔들림을 방지합니다...
똑똑한 컴포넌트, 어디까지가 좋을까?
·
Series/React Performance Optimization
문제 제기 똑똑한 컴포넌트가 어디까지 똑똑해야 할지는 소프트웨어 개발의 중심 문제 중 하나입니다. 특히 MSA 환경에서 이 질문은 더욱 중요한데, 서비스를 가능한 잘게 쪼개는 전략이 효율적인 작업을 위한 핵심이 되기 때문입니다. 최소한의 컴포넌트로 기능을 분리하려는 시도는 깔끔하고 독립적인 코드베이스를 유지하는 데 도움이 됩니다. 그러나, 이러한 접근이 항상 만능은 아니라는 것을 실제 경험을 통해 깨달았습니다. 실전 경험 예를 들어, 사용자의 이름을 표시하는 Username 컴포넌트를 개발하는 과정에서, 각각의 컴포넌트가 자체적으로 API를 호출하도록 설계했습니다. 이론적으로는 재사용성을 극대화하는 좋은 전략처럼 보였습니다. // Username 컴포넌트 예시 function Username({ user..
Micro Frontends와 MSA를 위한 Module Federation
·
Series/React Performance Optimization
Micro Frontends의 개념 Micro Frontends는 대규모 프론트엔드 프로젝트를 더 작고, 관리 가능한 부분으로 나누는 접근 방식입니다. 이 개념은 백엔드의 마이크로서비스 아키텍처(MSA)에서 영감을 받았으며, micro-frontends.org에서 자세히 설명되어 있습니다. 이 방식의 핵심은 큰 애플리케이션을 분할하여, 각 팀이 독립적으로 작업할 수 있는 구조를 만드는 것입니다. 이렇게 하면 각 팀은 자신의 기술 스택을 선택하고, 애플리케이션의 특정 부분에 집중할 수 있습니다. 결과적으로, 마이크로 프론트엔드는 개발 효율성을 높이고, 코드베이스의 복잡성을 줄이며, 더 빠른 기능 출시를 가능하게 합니다. Module Federation 개념 설명 Module Federation은 웹팩(We..
useLoaderData와 useRouteLoaderData의 사용법과 차이점
·
Frontend development/JS\React
살펴보기 React Router는 라우팅을 위한 강력한 도구입니다. 라우팅을 사용하면 애플리케이션의 구조를 분리하고, 사용자에게 다양한 페이지를 제공할 수 있습니다. React Router DOM v6에 새로 생긴 기능인 loader를 활용하면 라우트와 관련된 데이터를 더 쉽게 관리할 수 있습니다. loader는 라우트의 데이터를 로드하기 위한 함수입니다. 이 함수에서 로드된 데이터는 useLoaderData와 useRouteLoaderData 훅을 사용하여 컴포넌트에서 사용할 수 있습니다. 이 글에서는 useLoaderData와 useRouteLoaderData의 차이점과 사용법에 대해 알아보겠습니다. 예제 코드 useLoaderData useLoaderData는 라우트의 로더에서 로드된 데이터에 접근..
React Custom Hook 디자인 패턴: Query/Mutation 훅 분리
·
Series/React Performance Optimization
살펴보기React에서 Custom Hook을 사용하는 것은 코드 재사용성, 관심사의 분리, 그리고 테스트 용이성을 개선하는 효과적인 방법입니다. 이러한 특성은 특히 대규모 애플리케이션의 유지보수성과 가독성에 큰 영향을 미칩니다. 아래의 예시를 통해 이를 더 자세히 살펴보겠습니다. 예시 코드useUsersQuery.tsimport { useRef } from 'react';import { useQuery } from '@tanstack/react-query';//////interface UseUsersQueryParams { /** * if you want to get specific page, pass page number */ usersPage?: number; /** * if you ..
React Hook Form의 Controller와 Register 함수: 활용 방법 및 비교
·
Frontend development/JS\React
살펴보기 React Hook Form은 간편하게 폼을 다룰 수 있는 라이브러리로, 폼 상태를 자동으로 관리하고 입력 요소를 간단하게 처리할 수 있게 도와줍니다. 이 라이브러리에서는 주로 사용되는 Controller 함수와 Register 함수에 대해 알아보겠습니다. 소개 및 기본 개념 설명 React Hook Form에서의 Controller와 Register 함수는 모두 폼 요소를 등록하고 폼 상태를 제어하는 데 사용됩니다. Controller 함수는 주로 외부 라이브러리와 통합할 때 유용하며, Register 함수는 직접적으로 폼 요소를 등록할 때 사용됩니다. 코드 작성 방법 Controller 함수 import { useForm, Controller } from 'react-hook-form'; c..
끄적끄적 개발자
'React' 태그의 글 목록