해당 글에서는 vitest 와 React Testing Library 를 이용하여 테스트 케이스를 만드는 방법을 소개합니다.vitest 는 실행속도와 vite 와 통합이 간편하며, RTL 은 리액트 컴포넌트를 테스트 하기 위한 도구 입니다.리액트 프로젝트 설치npm create vite@latest패키지 설치npm install --save-dev @testing-library/react @testing-library/jest-dom @testing-library/user-event vitest jsdomvite.config.ts 셋팅globals: true이 설정은 테스트 파일에서 전역 함수(예: describe, it, test 등)를 import 없이 사용할 수 있게 합니다.true로 설정하면 이러..

우선 모킹 서비스를 이용하는 경우는 프론트엔드가 백엔드의 api 가 개발될 때 까지 계속 기다려야하는 문제들이 발생하였고 프론트엔드가 먼저 백엔드의 api 를 설계 또는 개발하여 선작업을 할 수 있도록 합니다. vite 기반의 React 프로젝트이며, msw(mock service worker) 를 적용하여 모킹 서비스를 만드는 과정을 단계별로 설명하겠습니다.시작1. msw 설치npm install msw --save-dev 2. msw 서비스 워커 생성하기npx msw init public/ --save 3. browser mock 생성하기// src/mocks/browser.jsimport { setupWorker } from 'msw/browser'import { handlers } from './..

야무지게 Axios 사용하기클라이언트와 서버가 통신하기 위해 사용되는 대표적인 라이브러리 중 하나입니다.Axios 인스턴스를 사용하여 API 클라이언트 설정하기우선 야무지게 axios 를 사용할라면, 그냥 쓰지 말고 axios.create를 사용하여 axios 에 대한 커스텀 셋팅을 해줍시다.요청에 대한 baseURL 과 요청마다 자동으로 인증 코드를 추가하는 인터셉터, 타임 아웃 기능을 추가해줍시다.Axios 인스턴스 생성우선, axios.create를 사용하여 기본 설정을 가진 Axios 인스턴스를 생성합니다. 이 인스턴스는 기본 URL과 헤더를 설정하여 모든 요청에서 일관된 설정을 유지할 수 있게 해줍니다.import axios from 'axios'const apiClient = axios.cre..

리액트 프로젝트를 진행하다 보면, 여러 리액트 프로젝트 구조를 상상하게 된다.가장 우리가 기본적으로 나열하는 components 와 pages 폴더를 만들어서 나열하는 구조가 있지만, 이러한 구조는조금만 규모가 커지거나 훅, 상태 관리 등이 들어오게 되면 가독성이 확연하게 떨어지게 된다. 그래서 features 기반으로 그룹화(페이지, 컴포넌트, 훅, 스토어 등)하여 사용하게 되는데, 이를 기반으로 React 프로젝트 구조를 아래와 같이 구축해보자. Vue 도 마찬가지로 다를게 없다고 생각한다. 리액트 프로젝트 구조 구축하기기본적으로 요즘 유행하는 vite 기반의 react 프로젝트를 만들어서 프로젝트를 먼저 구조화 해보자.먼저 yarn create vite 를 이용해서 react 프로젝트를 생성해줍니다..
스토리북8.x이상 에서 React Router v6 이상 버전을 사용시에 스토리북에 있는 공통 컴포넌트들에서 라우팅 사용 관련 에러가 발생하는 경우가 있습니다. // 에러 문구 useNavigate() may be used only in the context of a component.에러가 발생하는 원인은 무엇인가?1. React Router 의 훅들을 사용하기 위해서는 라우터가 필요합니다. 2. 스토리북은 파일 서버 기반의 환경과 컴포넌트를 독립적으로 사용하는 특성으로 인해 라우터를 제공하지 않습니다. 3. 이를 해결하기 위해 createMemoryRouter 를 이용하여 메모리 라우터를 별도로 만들고 스토리북에 직접 라우터를 제공합니다. 이를 이용하면, 브라우저의 URL 을 변경하지 않아도 메모리에..
셋팅vite 기반으로 React 를 만든 다음에 경로를 쉽게 사용할 수 있도록 alias 로 셋팅합니다.1. new URL("./src", import.meta.url)- 이 코드는 현재 모듈을 기준으로 상대 경로 "./src"를 가리키는 URL 객체를 만듭니다. - import.meta.url은 현재 모듈의 URL을 나타냅니다.2. fileURLToPath(new URL("./src", import.meta.url)):- new URL("./src", import.meta.url)를 통해 생성된 URL 객체를 fileURLToPath 함수에 전달합니다. - fileURLToPath 함수는 파일 URL을 파일 경로 문자열로 변환합니다.3. fileURLToPath(new URL("./src", impor..
- Total
- Today
- Yesterday
- svelte
- vscode
- vue router
- nuxt2
- 깃허브
- 타입스크립트
- cors
- ChatGPT
- webpack
- Vite
- Github Actions
- Zustand
- NextJS
- nextjs14
- AWS
- openAI
- Git
- seo
- 서버 to 서버
- 스벨트
- vue composition api
- nodejs
- NUXT
- nextjs13
- 티스토리챌린지
- 네이버 서치 어드바이저
- 오블완
- nextjs15
- React
- dockerfile
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |