분류 전체보기 39
[Next.js] Next에서 Styled Components와 함께 Storybook 세팅하기
Create-Next-App을 통해 생성한 Next.js 프로젝트에서 storybook 초기 설정하는 방법에 대해 알아보겠습니다. Storybook 설치하기 npx storybook@latest init 위 명령어로 storybook의 최신버전을 프로젝트에 설치합니다. yarn add -D @storybook/nextjs 설치를 완료했다면 nextjs를 지원하는 패키지도 설치해줍니다. 설치를 완료했다면 아래 코드를 .storybook/main.ts 파일에 추가해줍니다. // .storybook/main.ts const config: StorybookConfig = { //... framework: { name: '@storybook/nextjs', options: {}, }, } npm run story..
Frontend/next.js | 2023. 6. 19. 17:20
[React] vite와 함께 리액트 컴포넌트 npm에 배포하기
우리가 흔히 사용하는 react, eslint와 같은 패키지를 우리도 npm에 직접 배포할 수 있습니다. react 함수와 컴포넌트 등을 작성한 라이브러리를 추후 프로젝트에 만들어서 사용할 예정이기 때문에, 이를 연습하기 위해 여러 리액트 컴포넌트를 npm에 배포한 과정을 설명하겠습니다. 추가적으로, 개발자 경험과 번들링 사이즈 개선을 위해 여기에 이점이 있는 pnpm과 vite를 사용해서 배포해보겠습니다. vite + pnpm으로 프로젝트 설정하기 pnpm create vite (프로젝트 명) 위 명령어를 실행하면 아래와같이 framework와 언어를 선택할 수 있습니다. react 컴포넌트를 배포하기 위해 React를 선택한 다음, typescript를 지원하기 위해 Typescript를 선택해줍니다..
Frontend/react | 2023. 6. 16. 17:29
[React] 메모이제이션 Hook으로 중복연산 피하기 (useCallback, useMemo)
메모이제이션(Memoization)은 프로그램이 동일한 계산을 반복할 때, 이전에 계산한 값을 메모리에 저장함으로써 중복되는 연산을 제거해서 프로그램 실행 속도를 빠르게하는 기술입니다. 리액트 함수형 컴포넌트에서는 이러한 메모이제이션을 돕기 위한 두가지 Hook을 제공합니다. 메모이제이션을 하지 않을 때 함수형 컴포넌트에서 상태값이 변경되면 해당 컴포넌트는 다시 렌더링합니다. 이때 컴포넌트 내부에 정의한 함수들도 다시 생성되고 실행되기 때문에 메모이제이션이 필요합니다. 아래와 같은 경우 메모이제이션 훅 useCallback과 useMemo를 사용할 수 있습니다. 렌더링 마다 함수가 새로 생성되어 참조값이 변하는 경우 실행되는 함수가 복잡한 연산을 수행하는 경우 이외에도 훅을 사용하는 다양한 경우가 있지만..
Frontend/react | 2023. 3. 14. 15:08
[React] 리액트의 생명주기 메서드와 Hook
리액트 컴포넌트는 기본적으로 브라우저 상에서 나타되고, 업데이트되며, 사라지는 과정을 거치게 됩니다. 이러한 과정을 생명주기라 하며, 리액트의 모든 컴포넌트에는 생명주기가 존재합니다. 생명주기 내에서는 여러 메서드가 호출되며 이를 사용할 수 있는데 클래스형 컴포넌트에서는 생명주기 메서드를 사용하고, 함수형 컴포넌트에서는 Hook을 사용할 수 있는 점에서 서로 차이가 있습니다. 우선 리액트의 클래스형 컴포넌트의 생명주기 메서드를 알아본 다음, 함수형 컴포넌트의 Hook중 하나인 useEffect 함수를 통해 차이점을 더 자세히 알아보겠습니다. 메서드란? : 클래스 내부에서 정의한 함수를 메서드라 부릅니다. 생명주기 메서드 클래스형 컴포넌트를 작성할 때는 아래와 같이 render() 메서드를 호출하고 JSX..
Frontend/react | 2023. 3. 9. 16:53
[Firebase] Firebase hosting으로 next.js 배포 자동화하기
시작하며 firebase는 웹 앱을 빠르게 배포 해주는 hosting기능을 제공합니다. 이번 글은 next.js 프로젝트를 firebase hosting을 이용하여 사이트에 배포하는 법에 대해 작성하였습니다. 또 github와 연결하여 pr을 날리고 병합할 때 자동으로 배포하는 방법에 대해서도 알아보겠습니다. 로컬 환경에서 firebase deploy 적용하기 Firebase CLI 설정하기 firebase cli 설치하기 npm i firebase-tools -D 우선 firebase cli를 npm install을 통해 설치해줍니다. 로컬환경에 firebase cli를 설치하게 되면 sudo 권한 문제와 피할 수 있습니다. node_modules/.bin/firebase login 그리고 위 명령어를..
etc/firebase | 2023. 1. 17. 01:09