Tip
-
pnpm으로 갈아타기Tip 2024. 10. 25. 15:35
프론트엔드 개발을 하다 보면 다양한 패키지 매니저를 접하게 되는데, npm, Yarn 외에도 요즘 각광받고 있는 또 다른 선택지가 있습니다. "Performant npm"의 약자인 pnpm은 설치 속도와 디스크 공간 활용 면에서 탁월한 성능을 자랑합니다.pnpm의 장점1. 빠른 설치 속도pnpm은 패키지를 중앙 캐시에서 관리하고, 하드 링크를 통해 설치하기 때문에 일반적인 npm이나 Yarn보다 훨씬 빠릅니다.하드 링크 : 파일 시스템에서 동일한 파일을 여러 경로에서 접근할 수 있게 해주는 방식으로, 실제 파일은 하나만 저장되며 여러 위치에서 공유됩니다. 이를 통해 중복 저장을 피하고 디스크 공간을 절약하면서도 빠르게 설치가 가능합니다.2. 디스크 사용 효율성동일한 패키지를 여러 프로젝트에서 사용할 때,..
-
Yarn Berry로 갈아타기Tip 2024. 10. 22. 14:51
프론트엔드 개발자라면 패키지 매니저 선택에 대해 고민해 본 적이 있을 것입니다.이 글에서는 Yarn Berry가 무엇인지, 그리고 주요 특징과 장단점을 살펴보겠습니다.Yarn Berry란?Yarn Berry는 2020년 1월에 출시된 Yarn의 최신 버전으로, Yarn 2.x 이후의 릴리스를 의미합니다.'Berry'라는 별칭을 사용하는데, 이는 Yarn의 대대적인 개선과 혁신을 상징합니다.Yarn 클래식(1.x)과는 상당히 다른 접근 방식을 취하며 새로운 사용자 경험을 제공합니다.특히 Yarn Berry는 Zero-Install, Plug'n'Play(이하 PnP), 향상된 성능 등을 강조하며 많은 주목을 받고 있습니다.Yarn Berry의 주요 특징1. Plug'n'Play(PnP) 지원Yarn Ber..
-
모노레포(Monorepo) 소개 (feat. 터보레포(Turborepo))Tip 2024. 10. 7. 17:00
최근 소프트웨어 개발 환경에서는 모노레포(Monorepo)를 채택하는 팀이 늘어나고 있습니다.모노레포는 여러 프로젝트나 패키지를 하나의 저장소(repository)에 담는 방식을 의미합니다.모노레포의 장점코드 재사용성 증가공통된 코드나 라이브러리를 여러 프로젝트에서 쉽게 공유할 수 있어, 중복 코드를 줄이고 유지보수가 용이합니다.일관된 개발 환경모든 팀원이 동일한 저장소와 설정을 사용하여 의존성 버전이나 코드 스타일의 일관성을 유지할 수 있어 버그 발생을 줄이고 개발 효율성을 높입니다.변경 사항 추적 용이하나의 저장소에서 모든 변경 사항을 관리하므로 전체 시스템에 어떤 영향을 미치는지 쉽게 파악할 수 있으며, 디버깅과 코드 리뷰가 수월해집니다.협업 향상팀원들이 동일한 코드베이스에서 작업하므로 협업이 원활..
-
StyleX 소개하기(feat. Next.js)Tip 2024. 10. 4. 19:01
최근 웹 개발에서 스타일링을 위한 기술은 빠르게 발전하고 있으며, 그중에서도 Meta(Facebook)가 개발한 StyleX는 성능 최적화와 유지보수를 쉽게 하기 위한 정적 컴파일 기반 스타일링을 제공하는 흥미로운 접근 방식을 보여주고 있습니다.CSS-in-JS vs StyleX: 차이점은 무엇일까?기존 CSS-in-JS 솔루션들은 컴포넌트별 스타일을 쉽게 관리하고 동적인 스타일링을 가능하게 해주는 장점을 가지고 있습니다.대표적인 예로는 styled-components, Emotion 등이 있으며, 각기 다른 방식으로 컴포넌트의 스타일을 JavaScript 코드에 통합해 편리함을 제공해 왔습니다.그러나 CSS-in-JS는 런타임에서 스타일을 생성하고 주입하는 과정에서 성능 저하나 FOUC(Flash of..
-
마이크로 서비스 아키텍처(Microservice Architecture) 소개Tip 2024. 10. 2. 17:43
Microservice Architecture는 현대 소프트웨어 개발에서 주목받는 아키텍처 스타일입니다.전통적인 Monolithic Architecture와 비교하여 MSA가 제공하는 여러 이점을 살펴보겠습니다.Microservice Architecture란?Microservice Architecture는 애플리케이션을 작은 독립적인 서비스들로 분해하여 개발하는 접근 방식입니다.각 서비스는 자체적인 비즈니스 기능을 수행하며, 가볍고 표준화된 인터페이스(예: RESTful API)를 통해 다른 서비스와 통신합니다.이는 서비스별로 독립적인 배포와 확장을 가능하게 합니다.Monolithic Architecture란?Monolithic Architecture는 애플리케이션의 모든 구성 요소가 하나의 코드베이스와..
-
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} ))} )..
-
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 해서 가지고 올 수 없다.)*..