알아두면 좋은 라이브러리
-
[yup] 유효성 검증 :: 마이구미알아두면 좋은 라이브러리 2022. 6. 5. 10:52
이 글은 yup 이라는 라이브러리를 다룬다. yup 은 유효성 검증 로직에 큰 도움을 줄 수 있다. 조금이나마 도움을 줄 수 있는 라이브러리들을 소개하는 카테고리로 분류된 글이다. 알아두면 좋은 라이브러리 yup 이란? Custom validation(without API) Custom validation(with API) Error Message customization Transform, parsing Examples With react-hook-form yup 이란? yup 라이브러리는 스키마 유효성 검증이 목적이다. 실제로는 서버쪽(Node.js) 에서 더 많이 사용된다. React 기준으로는 react-hook-form 과 함께 사용하고 있다. 하지만 그건 크게 중요하지 않다. 유효성 검증이라는..
-
[React] react-transition-group :: 마이구미알아두면 좋은 라이브러리 2022. 4. 28. 21:47
이 글은 트랜지션과 관련된 라이브러리 react-transition-group 을 다룬다. 조금이나마 도움을 줄 수 있는 라이브러리들을 소개하는 카테고리로 분류된 글이다. 알아두면 좋은 라이브러리 react-transition-group 는 굉장히 심플하다. 게다가 이미 공식 문서에서는 기본적인 예제는 codesandbox 를 통해 제공해주고 있어, 크게 설명할 게 없다. 처음 접한다면 공식 문서를 한번 훑고 오는걸 추천한다. 이 글의 핵심은 기본 예제가 아닌 좀 더 응용할 수 있는 예제를 다뤄본다. 응용 예제는 라이브러리에서 제공해주는 TransitionGroup 컴포넌트를 주로 다루는 예제가 된다. 우선 간단하게 라이브러리를 알아보자. 진입(entering), 후퇴(exiting) 라는 용어로 트랜지..
-
[DOMPurify] XSS 공격 방지 :: 마이구미알아두면 좋은 라이브러리 2022. 3. 31. 21:19
이 글은 XSS 공격 방지에 도움을 줄 수 있는 라이브러리 dompurify을 다룬다. 바닐라 자바스크립트가 아닌 현재 개발 환경에서는 XSS 를 사실 대부분 신경을 크게 쓰지 않을 것이다. 흥미와 이해를 위해 React 를 조금 곁들였다. 조금이나마 도움을 줄 수 있는 라이브러리들을 소개하는 카테고리로 분류된 글이다. 알아두면 좋은 라이브러리 XSS 공격은 간단하게 말하면, 사용자 브라우저에서 예상치 못한 자바스크립트 코드를 실행하여 악의적인 행동을 취하는 것이다. 대표적으로 사용자 브라우저에 존재하는 쿠키, 세션, 로컬스토리지 등의 값을 긁어가는 것이다. div.innerHTML = ''; div.innerHTML = ''; 바닐라 자바스크립트를 사용한다면, DOM 에 주입하기 위해 innerHTML..
-
[svgr] SVG 아이콘 컴포넌트 생성 :: 마이구미알아두면 좋은 라이브러리 2022. 1. 28. 22:56
이 글은 svg 아이콘과 관련된 라이브러리 SVGR 을 다룬다. 리액트에서 아이콘을 svg 파일로 관리하는 경우 도움을 줄 수 있는 라이브러리이다. 글에서 소개하는 예제들은 각 tag 를 checkout 을 통해 확인할 수 있다. 예제 - https://github.com/hotehrud/svgr-example 조금이나마 도움을 줄 수 있는 라이브러리들을 소개하는 카테고리로 분류된 글이다. 알아두면 좋은 라이브러리 SVGR 은 svg 파일을 React 컴포넌트로 변환시켜주는 라이브러리이다. 원본 svg 와 svg 를 React 컴포넌트로 변환한 코드를 각각 확인해보자. // icon.svg // Icon.tsx import * as React from "react"; const SvgAc = (props..
-
[detect-port] 사용 가능한 포트 찾기 :: 마이구미알아두면 좋은 라이브러리 2022. 1. 4. 22:20
이 글은 사용 가능한 포트 번호를 찾는 라이브러리 detect-port 을 다룬다. CRA(create-react-app) 에서는 이미 사용 중인 포트 번호가 아닌 사용 가능한 포트 번호로 서버 실행을 도와준다. 관련 기능에 대해 어떻게 동작되는지 알아본다. 조금이나마 도움을 줄 수 있는 라이브러리들을 소개하는 카테고리로 분류된 글이다. 알아두면 좋은 라이브러리 detect-port 와 같은 라이브러리는 현재 사용 가능한 포트 번호를 찾아주는 용도로 사용된다. 우리는 이러한 기능을 필요로 하거나, 이미 자연스럽게 사용하고 있다. 이 라이브러리를 사용하고 있는 대표적인 예는 CRA(create-react-app) 로 들 수 있다. 그 외에도 익숙한 곳들에서도 많이 사용하고 있는 README.md 에서 확인..
-
[use-memo-one] useMemo/useCallback 개선 :: 마이구미알아두면 좋은 라이브러리 2021. 11. 29. 21:33
이 글은 useMemo/useCallback 와 관련된 라이브러리 use-memo-one 을 다룬다. README.md 중심의 내용과 실제 코드를 통해 리뷰해본다. 조금이나마 도움을 줄 수 있는 라이브러리들을 소개하는 카테고리로 분류된 글이다. 알아두면 좋은 라이브러리 참고로 use-memo-one 은 이전 글에서 다뤘던 memoize-one 라이브러리의 제작자이다. README.md 에서 use-memo-one 를 표현하는 문장을 보자. useMemo and useCallback with a stable cache (semantic guarantee) 지금 당장은 stable cahce, semantic guarantee 용어는 쉽게 이해하기는 힘들 것이다. 우선 쉽게 말하자면, React 에서 제공하..
-
[memoize-one] 캐시를 활용한 라이브러리 :: 마이구미알아두면 좋은 라이브러리 2021. 11. 27. 22:02
이 글은 캐시를 활용한 라이브러리 중 하나로 memoize-one 을 다룬다. README.md 중심의 내용과 실제 코드를 통해 리뷰해본다. 조금이나마 도움을 줄 수 있는 라이브러리들을 소개하는 카테고리로 분류된 글이다. 알아두면 좋은 라이브러리 memoize-one 은 메모이제이션 전략을 사용하는 라이브러리 중 하나이다. 메모이제이션은 동일한 계산을 반복해야하는 경우, 이전에 계산한 값을 저장하여 반복된 계산 수행 없이 활용하는 기법으로 캐시라고 생각하면 이해하기 쉽다. "one" 이름처럼 오직 하나, 가장 최근 결과만 기억한다. 최소화된 기능으로 캐시를 위한 사이즈, 만료 시간, 예외 데이터(blacklist, whitelist) 등은 존재하지 않는다. 결과적으로 위와 같은 기능들로 인한 메모리 누수..