react
-
React에서 스크롤을 하단에 고정하는 방법(feat. css)Tip 2024. 9. 7. 14:22
채팅 등의 서비스를 만들 경우 스크롤을 하단에 고정해야 되는 경우가 있습니다.간단하게 스크롤을 하단에 고정하는 방법에 대한 구현에 대해 알아보겠습니다.1. React 사용import { useEffect, useRef } from 'react';const Chat = ({ messages }) => { const endOfMessagesRef = useRef(null); useEffect(() => { endOfMessagesRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [messages]); return ( {messages.map((msg, idx) => ( {msg} ))} )..
-
Javascript ES15(ECMAScript 2024) 문법정리JS & TS 2024. 8. 14. 18:01
ES13에 대한 글을 작성한 지 얼마 안 된 것 같은데 벌써 ES15가 정식 출시하였습니다.JavaScript의 최신 표준인 ECMAScript 2024 (ES15)에서는 개발자들이 더욱 강력한 기능들을 활용할 수 있도록 다양한 새로운 기능들이 도입되었습니다.아래에서는 ES15의 주요 기능들을 정리하고, 각 기능에 대해 ES15 이전과 이후의 코드를 비교해 보겠습니다.1. Object 및 Array 그룹화Object.groupBy() 및 Array.prototype.groupBy() 메서드를 사용하면 객체나 배열의 요소를 특정 조건에 따라 그룹화할 수 있습니다.예를 들어, 다음과 같이 과일 목록을 양에 따라 그룹화할 수 있습니다.(참고로 이번에 추가된 메서드는 원래 Array 프로토타입 메서드로 있었으나..
-
BFF(Backend For Frontend) 소개Tip 2024. 8. 8. 14:42
BFF(Backend For Frontend) 디자인 패턴에는 특정 프런트엔드 애플리케이션 또는 프런트엔드 애플리케이션 집합의 요구 사항에 맞게 특별히 맞춤화된 백엔드 서비스를 말합니다.이 패턴은 복잡한 사용자 인터페이스를 개발하고 프런트엔드와 마이크로서비스 기반 백엔드 간의 상호 작용을 관리하는 문제를 해결하기 위해 등장했습니다. 1. BFF의 장점1. 우려사항 분리(유지 관리성)프런트엔드별 로직을 코어 백엔드에서 분리하여 코드베이스를 더 쉽게 유지 관리하고 독립적으로 발전시킬 수 있습니다.2. 향상된 보안(토큰 관리)BFF는 서버 측에서 토큰 및 기타 민감한 데이터를 처리함으로써 그러한 정보가 클라이언트 측 취약점에 노출될 위험을 줄입니다.3. 성능 최적화(맞춤형 응답)BFF는 프런트엔드의 정확한..
-
FSD 폴더 구조 소개 (feat. NextJS App Router, Pages)Tip 2024. 7. 27. 12:54
많은 프론트엔드 개발자의 고민은 폴더 구조일 것입니다.오늘은 Feature-Sliced Design(FSD)라는 요즘 가장 괜찮다고 생각하는 폴더 구조를 소개하겠습니다.FSD는 프론트엔드 애플리케이션을 구조화하기 위한 아키텍처적 방법론입니다.FSD의 주된 목표는 프로젝트를 이해하기 쉽고 변화하는 비즈니스 요구에 안정적으로 대응할 수 있도록 만드는 것입니다.FSD의 주요 개념1. 레이어(Layers)애플리케이션의 전반적인 구조를 구성하는 최상위 폴더입니다.주요 레이어는 다음과 같습니다.하위 요소는 상위 요소들을 Import 할 수 없습니다.(pages에서 widgets, entities, shared는 Import 해서 사용할 수 이 있지만 shared는 아무것도 Import 해서 가지고 올 수 없다.)*..
-
웹 성능 최적화 기법Tip 2024. 7. 1. 15:10
웹 성능 최적화(Web Performance Optimization, WPO)는 빠르고 원활한 사용자 경험을 보장하기 위해 필수적입니다.이는 사용자 유지와 SEO에 매우 중요합니다.웹 성능을 향상하기 위한 주요 기법과 모범 사례를 소개합니다.웹 성능 최적화를 위한 주요 기법1. HTTP 요청 최소화페이지에서 HTTP 요청을 요구하는 요소의 수를 줄이면 로드 시간을 크게 단축할 수 있습니다.CSS와 JavaScript 파일을 결합하고, 이미지에는 CSS 스프라이트를 사용합니다.2. 이미지 최적화이미지를 품질 손실 없이 압축하고 크기를 조정하여 로드 시간을 줄입니다.TinyPNG나 ImageOptim과 같은 도구를 사용하고, WebP와 같은 최신 형식을 채택합니다.3. 브라우저 캐싱 활용웹사이트의 일부를 캐..
-
Next.js로 SEO 최적화하기Next.js 2024. 6. 26. 13:23
Next.js는 빠르고 SEO 친화적인 React 애플리케이션을 구축하기 위한 강력한 프레임워크입니다.서버 사이드 렌더링(SSR), 정적 사이트 생성(SSG) 및 동적 라우팅과 같은 기능을 활용하면 사이트의 SEO 성능을 크게 향상할 수 있습니다.SEO 최적화를 위한 주요 기능1. 서버 사이드 렌더링(SSR)SSR은 페이지를 서버에서 렌더링 하여 검색 엔진에 사전 렌더링된 HTML을 제공합니다.이는 인덱싱을 개선하고 검색 엔진이 콘텐츠를 쉽게 이해하고 순위를 매길 수 있도록 합니다.export async function getServerSideProps() { // API에서 데이터 가져오기 const res = await fetch('https://api.example.com/data'); con..
-
웹 접근성 개선을 위한 가이드Tip 2024. 6. 21. 13:25
웹 접근성은 장애를 가진 사람들이 웹 사이트를 쉽게 사용할 수 있도록 보장합니다.여기에는 시각, 청각, 운동 및 인지 장애가 있는 사람들이 포함됩니다.윤리적 책임을 넘어, 웹 접근성은 법적 요구 사항을 충족하고 비즈니스 이점을 제공합니다.1. 웹 접근성의 중요성웹 접근성은 윤리적 이유뿐만 아니라 법적 요구 사항을 충족하고 비즈니스 기회를 확장하는 데도 중요합니다.예를 들어, 미국의 ADA(Americans with Disabilities Act)는 웹 접근성을 규제합니다.2. 웹 접근성의 주요 원칙1) 인식 가능성(Perceivable)정보는 사용자가 인식할 수 있는 방식으로 제공되어야 합니다. 예를 들어, 시각 장애인을 위해 이미지나 비디오에 텍스트 대체 설명을 제공합니다.2) 운영 가능성(Operab..
-
GraphQL vs REST APITip 2024. 6. 11. 14:09
웹 개발에서 데이터를 주고받는 방식으로 GraphQL과 REST API가 널리 사용됩니다.두 기술 모두 클라이언트와 서버 간의 효율적인 데이터 통신을 목표로 하지만, 접근 방식과 사용 사례에서 차이가 있습니다.1. REST APIREST(Representational State Transfer)는 전통적인 아키텍처 스타일로, HTTP 요청을 통해 자원을 CRUD(Create, Read, Update, Delete) 방식으로 관리합니다.장점단순성: HTTP 프로토콜을 기반으로 하여 이해하기 쉽고 사용이 간편합니다.캐싱: HTTP의 기본 캐싱 메커니즘을 활용하여 성능을 향상할 수 있습니다.단점Over-fetching 및 Under-fetching: 필요한 데이터보다 많은 데이터를 가져오거나, 필요한 데이터를..