본문 바로가기 메뉴 바로가기

I'm a Fig, Not a Pig

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

I'm a Fig, Not a Pig

검색하기 폼
  • 분류 전체보기 (219) N
    • Language (59)
      • JavaScript (59)
      • Python (0)
    • Client (55)
      • HTML (3)
      • CSS (11)
      • React.js (25)
      • TypeScript (8)
      • Next.js (8)
      • React Native (0)
    • Backend (4)
      • AWS (0)
    • Git&Github (17)
    • 코드잇 스프린트 (40)
      • Weekly paper (10)
      • Daily Quiz (30)
    • Toy Project (12)
      • Time to focus (12)
      • Chrome Extension (0)
    • Error (1)
    • Linux (0)
    • CS (14)
      • Computational Thinking (3)
      • C (5)
      • 네트워크 (1)
      • 운영체제 (1)
      • 리눅스 (0)
      • 컴퓨터구조 (2)
    • Online courses (4)
      • The Complete JS Course 2023 (1)
      • Coding apple (3)
    • Tips (2)
      • 보안 (2)
      • IT 상식 (5)
      • 취업 (0)
    • Daily (3) N
      • 서평 (1) N
      • 회고 (1)
      • 개발일지(Fig Notes) (0)
    • Design (0)
  • 방명록

2024/04 (32)
[React] usePagination hook으로 페이지네이션 구현하기

페이지 네이션은 여러 컴포넌트에서 쓰일 수 있기 때문에 훅을 이용하는게 컴포넌트 재사용이라는 측면에서 유용하다. 그래서 구현중인데.. 쉽지않다..1. 첫 시도맨 처음 getAllProductsAsync()로 usePagination.js에 { page, pageSize: PAGESIZE, orderBy }를 넘겨주고, 다음 버튼과 이전 버튼 내에 함수가 실행되도록 로직을 짰다.// FleaMarketPage.jsfunction FleaMarketPage() { const [products, setProducts] = useState([]); const [orderBy, setOrderBy] = useState("recent"); const [allProductsError, getAllProducts..

Client/React.js 2024. 4. 29. 09:00
[React] Uncaught TypeError: Cannot read properties of undefined (reading 'map')

React 는 렌더링이 화면에 커밋 된 후에야 모든 효과를 실행한다.즉 React는 return에서 user.map(...)을 반복실행할 때 첫 턴에 데이터가 아직 안들어와도 렌더링이 실행되며 당연히 그 데이터는 undefined로 정의되어 오류가 난다. 원래 1. 렌더링하고 2. useEffect 가 실행되고 데이터를 가져오고 3. 가져온 데이터를 이용해서 다시 렌더링한다.따라서 현재 1번에서 현재 에러가 난 상태이다.   해결방법1. &&을 이용한다.true && expression은 항상 expression으로 실행되고  false && expression은 항상 false로 실행된다. 따라서 조건이 참이면 && 바로 뒤의 요소가 출력에 나타난다. 거짓이면 React는 무시하고 건너뛴다. {p..

Client/React.js 2024. 4. 29. 09:00
[코드잇 스프린트] 8주차 위클리 페이퍼

1. 웹 페이지 렌더링 방식 CSR, SSR, SSG 각각의 특징과 각 방식을 어떤 상황에 사용하면 좋을지 설명해 주세요. Client Side Rendering (CSR)CSR은 클라이언트(브라우저)에서 웹 페이지를 렌더링 하는 것 이다. 동작방식은 다음과 같다. 사용자가 사이트에 접속하면 서버에서 index라는 HTML파일을 클라이언트에 보내준다. 이때 받는 index 파일은 body 안에는 id="root"만, 그리고 어플리케이션에서 필요한 자바스크립트 링크만 들어있는, 가장 추상적이고 심플하게 이루어져 있다. 따라서 HTML이 텅텅 비어져 있기 때문에 처음 접속 시 빈 화면만 보인다.이후 링크된 JS파일을 서버로부터 받아오는데 이 JS파일에는 어플리케이션에 필요한 로직들 뿐만 아니라 어플리케이션을..

코드잇 스프린트/Weekly paper 2024. 4. 27. 11:26
[React] React does not recognize the `isActive` prop on a DOM element.

styled-components로 생성한 요소에 prop으로 전달한 isActive 에서 아래와 같은 에러가 발생했다.읽어보면 React가 DOM 요소에서 isAcitve prop을 인식하지 못했으며, 의도적으로 custom attribute 을 나타낸 것이라면 소문자로 표시하라는 의미이다. 하지만 나는 prop을 카멜케이스로 작성하고 싶었고 해결 방안을 styled-components 공식문서에서 찾았다. transient props를 이용하면 이를 해결할 수 있다. transient props는 단순히 스타일로 지정된 prop이 기본 React 노드로 전달되어 DOM 요소로 렌더링 되는 것을 방지하게 해준다. 간단하게 $ 기호를 prop 앞에 추가하기만 하면 된다. const StyledNavLink..

Client/React.js 2024. 4. 27. 09:00
[Git] untracked files 까지 포함한 stash 생성 방법

1. git stash --include-untrackedgit 에서 stash 시 새 파일과 같은 untracked file은 stash에 포함해 주려면 따로 명령어를 추가해 줘야 한다.git stash --include-untracked  위 명령어를 사용해서 stash를 추가한 후 나중에 적용해주려면 git stash list 위 코드를 작성해서 stash들의 list를 확인해야 한다. 위 코드를 작성하면 아래와 같은 stash를 볼 수 있다.  stash@{0}: WIP on ... wip: ... 이후 git stash apply stash@{0}로 신규 파일이 들어있는 stash를 적용시켜주면 된다.    2. 에러해결나의 경우  git stash apply stash@{0}를 쳤더니 아래와 ..

Git&Github 2024. 4. 26. 09:00
[코드잇 스프린트] 0424 데일리 퀴즈

1. useEffect의 실행 순서를 설명해주세요.컴포넌트가 렌더링되고 화면에 나타난다.useEffect 함수가 호출된다.만약 useEffect의 두 번째 매개변수로 의존성 배열이 제공되었다면, 이 배열에 지정된 의존성들이 변경될 때마다 useEffect가 재실행된다.컴포넌트가 언마운트되기 전에 필요한 정리(clean-up) 작업이 실행된다.  2. 자식 컴포넌트에서 props의 변경 가능 여부와 이유를 설명해주세요.자식 컴포넌트에서 props는 읽기 전용이다. 이는 자식 컴포넌트가 부모로부터 전달된 props를 변경할 수 없다는 것을 의미한다. 이는 React의 단방향 데이터 흐름을 유지하고 부모와 자식 간의 결합을 느슨하게 유지하는 데 도움이 된다. 만약 자식 컴포넌트에서 pro..

코드잇 스프린트/Daily Quiz 2024. 4. 24. 10:32
[React] useEffect 내부에 fetch를 사용하면 생기는 문제점 & 해결책 (feat. race-condition)

useEffect에 대해 공부하던 중 공식문서에서 useEffect 내에 fetch를 사용하면 race condition이 발생할 수 있다는 것을 알게됐다. 공식문서에서는 race condition을 해결하기 위해 boolean flag를 사용했는데, 처음 보는 방법이라 정리해두려 한다. 1. Race condition Race condition(경쟁 상태)이란 여러 개의 프로세스가 공유 자원에 동시 접근 할 때 실행 순서에 따라 결과값이 달라질 수 있는 현상이다. Race condition은 컴퓨터의 입장에서 큰 문제이다. 이유는 똑같은 코드를 실행할 경우 실행 결과가 항상 같아야 하는데, Race condition이 발생하면 결과가 달라질 수 있기 때문이다. 이러한 문제를 방지하기 위해서 공유 메모리..

Client/React.js 2024. 4. 24. 09:00
[코드잇 스프린트] 0423 데일리 퀴즈

1. Link, Navigate, useNavigate를 언제 사용하면 좋을지 구분지어 설명해주세요. 1) Link 주로 애플리케이션 내에서 다른 경로로 이동할 때 사용한다. ex. 네비게이션 메뉴 항목 클릭 특정 버튼을 눌러 다른 페이지로 이동할 때 import { Link } from 'react-router-dom'; function NavigationMenu() { return ( Home About Contact ); } 2) Navigate 특정 경로에서 렌더링 시점에 다른 페이지로 이동시키고 싶을 때 사용한다. (리다이렉트) ex. 쇼핑몰의 회원 전용 페이지에 로그인없이 들어와서 로그인 페이지로 리다이렉트하는 경우 쇼핑몰의 상품 상세 페이지에서 제품이 품절되었거나 삭제되어서 다른 페이지로 이..

코드잇 스프린트/Daily Quiz 2024. 4. 23. 12:00
[React] React에서 SVG 다루기 with Styled-components (SVG 컴포넌트화)

React 에서 SVG를 사용하는 방법은 두 가지가 있다. 1. tag 사용하기 import Logo from 'assets/icon-logo.svg' 이 방법은 흔히 사용되는 방식으로, SVG 파일을 외부 리소스로서 로드하여 태그를 통해 사용한다. 이 방법은 간편하고 직관적이지만, SVG 내부의 요소에 동적으로 접근하거나 스타일을 변경하는 등 SVG의 일부 기능을 활용하기 어렵다는 단점이 있다. 2. ReactComponent 이용하기 import { ReactComponent as Logo } from 'assets/icon-logo.svg' 이 방법은 SVG 파일을 React 컴포넌트로서 불러와 사용하는 것이다. 이렇게 하면 SVG 파일 내부의 요소에 접근하여 스타일을 변경하거나 이벤트를 추가하는 ..

Client/React.js 2024. 4. 21. 09:00
[코드잇 스프린트] 7주차 위클리 페이퍼

1. 리액트에서 배열을 렌더링할 때 key를 써야 하는 이유에 대해 설명해 주세요. 리액트에서 배열을 렌더링할 때 key를 지정해야 하는 이유는 두 가지가 있다. 1. 성능 최적화를 위해 2. 어떤 항목을 변경, 추가 또는 삭제했는지 식별하기 위해 하나씩 살펴보자. 1. 성능 최적화를 위해 배열의 각 항목을 렌더링할 때 리액트는 Virtual DOM을 사용하여 실제 DOM 업데이트를 최소화한다. 이때 리액트는 각 요소의 key를 비교하여 변경된 부분을 파악하는데, key가 없으면 리액트는 각 요소를 변경된 부분으로 인식하지 않고, 전체를 다시 렌더링 하게 되므로 성능에 부담을 줄 수 있다. 2. 어떤 항목을 변경, 추가 또는 삭제했는지 식별하기 위해 요소마다 key로 고유한 값을 지정해주어야 요소를 삭제..

코드잇 스프린트/Weekly paper 2024. 4. 20. 12:50
이전 1 2 3 4 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • currentTarget
  • rest parameter
  • 코드잇 스프린트
  • 프론트엔드
  • html
  • hydrationboundary
  • Git
  • Next.js
  • innerhtml
  • 배열
  • 중급 프로젝트
  • GitHub
  • react
  • 비제어 컴포넌트
  • 유사배열객체
  • CSS
  • js
  • 리액트
  • Target
  • 취업까지달린다
  • 코드잇스프린트
  • map
  • 비동기
  • 제어 컴포넌트
  • 동기
  • javascript
  • arguments
  • 객체
  • tanstackquery
  • 스프린트프론트엔드6기
more
«   2024/04   »
일 월 화 수 목 금 토
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
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바