Zod를 활용하여 타입 검증하기 (1)
·
FrontEnd/기타
Zod는 주로 타입스크립트와 함께 사용되며, 정적 타입 추론을 통해 스키마 유효성을 검증하는 데 유용한 라이브러리이다.TypeScript-first schema validation with static type inference 정적 타입 추론을 위해선 먼저 스키마를 정의해야 한다.프론트단에서 사용자 정보에 대한 응답을 다루는 로직을 개발하고 있다고 가정하자.  스키마 정의API의 응답 객체가 id, name, email, admin 필드로 구성되어 있다고 할 때, zod를 사용하여 다음처럼 userSchema를 구성할 수 있다.const userSchema = z.object({ id: z.number(), name: z.string(), email: z.string().email(), admi..
React | React-query v5(TanStack Query) 사용하기
·
FrontEnd/React
React-query v5(TanStack Query) 설치npm i @tanstack/react-query 최상위 컴포넌트를 QueryClientProvider로 감싸줘야 함import { QueryClientProvider, QueryClient } from '@tanstack/react-query';const queryClient = new QueryClient();function App() { return ( ... );} useQuery v5에서 onSuccess, onError, onSettled 콜백들은 이제 사용되지 않음import { useQuery } from '@tanstack/react-query'const { data, error, isLoading } ..
CSS | border와 outline의 차이
·
FrontEnd/기타
프론트엔드 개발을 하다 보면, 마우스를 hover 하거나 click 했을 때 해당 element의 크기 또는 text의 위치가 의도한 바와 다르게 아주 조금씩 어긋나는 경우를 한 번쯤 경험해 봤을 것이다. 이런 경우, 혹시 내가 설정한 css 속성에 border가 있는지 한 번 확인해 보길 바란다.   웹페이지에서 F12를 눌러 개발자모드에서 styles 탭의 가장 아래쪽에서 해당 element의 속성을 보자.   아래 그림에서 볼 수 있듯이 element의 전체 크기에는 margin, border, padding이 모두 포함된다.  즉, border는 element의 전체 크기에 영향을 준다. 그러나 outline은 포함되지 않아 element의 전체 크기에 영향을 주지 않음을 알 수 있다.   따라서..
Recoil 사용하기
·
FrontEnd/React
Recoil 공식문서를 바탕으로 사용법을 정리하였습니다. 개념뿌리(atoms)로부터 순수함수(selectors)를 거쳐 컴포넌트로 흐름React의 내부에서 사용하는 상태관리(ex. usestate)처럼 get/set을 사용하여 전역 상태 관리  패키지 설치npm install recoil  라이브러리 불러오기import { RecoilRoot, atom, selector, useRecoilState, useRecoilValue,} from 'recoil';  RecoilRootRecoilRoot는 root component에 사용function App() { return ( // 이렇게 감싸주어야 함 );}  AtomAtom은 Recoil에서 상태(state)를 정의함어..
React | 서버로 form 데이터 전송하기
·
FrontEnd/React
리액트에서 form 컴포넌트를 사용해 데이터를 서버로 전송하는 과정을 공식문서를 바탕으로 정리해보려 한다. 먼저, form 컴포넌트는 built-in 컴포넌트로 다음과 같이 사용할 수 있다. Submit    textarea를 form 태그로 감싸면 버튼을 클릭했을 때 onSubmit 이벤트 핸들러가 호출된다. 리액트 공식문서에 제공된 이벤트 핸들러 코드는 다음과 같다.이벤트가 발생한 타깃의 값을 가져와 new FormData()로 FormData 객체를 생성한 뒤 body에 담아 전송하는 방식이다.function handleSubmit(e) { // Prevent the browser from reloading the page e.preventDefault(); ..
React | npm install 시 발생하는 SELF_SIGNED_CERT_IN_CHAIN 해결 방법
·
FrontEnd/React
npm install을 사용해 모듈들을 설치하려 하자 다음과 같은 에러가 발생했다.npm ERR! code SELF_SIGNED_CERT_IN_CHAINnpm ERR! errno SELF_SIGNED_CERT_IN_CHAIN  회사 같은 사내 인터넷망을 사용할 때 보안적인 문제로 이런 에러가 발생할 수 있는데, 찾아보니 SSL 인증서 검증을 통과하지 못하는 것이 원인이라 한다. 따라서, SSL 검증을 하지 않기 위해 다음 명령어를 터미널에서 한 번 실행한 후, 다시 npm install을 하면 정상적으로 작동된다.npm config set strict-ssl false -g