전체 글

안녕하세요. react, flutter, node.js에 관련해서 글을 쓰는 블로그입니다.
728x90
반응형
·React
React18 버전에서 가장 크게 강조된 키워드는 동시성이다. 자바스크립트는 싱글스레드 언어이기때문에 한 번에 하나의 작업만 처리할 수 있다. 화면이 오래 멈춰있다면 사용자 경험은 악화되기 때문에 웹 개발에 있어서 큰 걸림돌이 된다. React는 렌더링 블록킹 문제를 해결하기 위해 동시성을 이용하게 되었다. 개념 해당 기능은 상태 업데이트를 함에 있어서 우선순위를 정하는데 도움을 준다. 리액트에서는 상태 업데이트 대상을 두가지로 나누었으며, 이를 통해 transition이 의미하는 바가 무엇인지 파악할 수 있다. Urgent updates(높은 우선순위) : 버튼 클릭, 키보드 입력과 같이 직관적으로 보았을 때 업데이트가 즉각적으로 일어나는 것을 기대하는 상태 값들 Transition updates(낮은..
·React
개념 배칭(batching)은 업데이트 대상이 되는 상태값들을 하나의 그룹으로 묶어서 한번의 리렌더링에 업데이트가 모두 진행될 수 있게 해주는 것을 의미한다. 한 함수 안에서 setState(업데이트)를 아무리 많이 호출시키더라도 리렌더링은 단 한번만 발생한다. 나오게 된 배경 이전부터 리랜더링과 관련해서 react-17v에서 이벤트 핸들러 내부에서 발생하는 상태 업데이트만 배치처리를 지원했다. 하지만 이벤트 핸들러 내부에 fetch()등 과 같은 콜백을 받아 처리하는 메소드가 존재할 경우 내부의 콜백이 모두 완료된 후에는 Automatic Batching이 처리되지 않았다. 그리고 react-17v에서 업데이트가 동기적으로 일어나지 않았다. 이전 버전과 최신 버전의 비교 1) React-17v impo..
·React
페이지 이동시 임의의 페이지 화면이 보여서 눌렀을 때 최상단에 위치하게 하기 위해서 찾아보다가 이글을 정리하게 되었다. useLocation() 처음에 useLocation()을 알아야 하는데 이는 npm install react-router-dom react-router-dom 모듈을 설치하여 임포트해준다. import { useLocation } from 'react-router-dom'; const location = useLocation(); useEffect(() => { console.log(location); }, [ location ]) 그리고 나서 location 변수에 담아 이를 location이 랜더링될 때마다 콘솔에 찍어 보이게 한다. 그리고 콘솔에 보면, hash, pathname..
·React
개념 useRef는 리렌더링 하지 않는다. 컴포넌트의 속성만 조회&수정한다. → 개인적인 견해로 여러 글을 보았는데 위의 문장이 제일 useRef()를 잘 설명해주는 것 같다. 사용 useRef함수는 current속성을 가지고 있는 객체를 반환한다. 인자로 넘어온 초기값을 current속성에 할당한다. 이 current속성은 값을 변경해도 상태를 변경할 때 처럼 React 컴포넌트가 다시 랜더링되지 않는다. 위에서 정의한 것처럼 리랜더링되지 않기 때문이다. React 컴포넌트가 다시 랜더링될 때도 마찬가지로 이 current 속성의 값이 유실되지 않는다. import React, { useState, useRef } from "react"; function ManualCounter() { const [c..
·React
앞 전에 suspense를 정리하였다. suspense가 기반되어야 쓸 수 있는 코드에 대해서 정리해보고자 한다. code-splitting 영어 단어 그대로 코드를 나눈다는 것이다. 왜 이것이 필요할까? 앱이 커짐에 따라 번들도 커지게 된다. 특히 큰 third-party라이브러리를 포함하는 경우에 번들에 포함된 코드를 주의깊게 확인해야 한다. 실수로 커진 앱으로 인해 로드시간이 오래 걸리는 문제를 방지한다. 큰 번들로 묶이지 않으려면 번들을 code splitting 하는것이 좋다. code splitting 기능은 런타임시 동적으로 로드할 수 있는 여러 번들을 만들 수 있는 Webpack 및 Browserify와 같은 번들러에서 지원되는 기능이다. code splitting을 하면 사용자가 현재 필..
·React
react가 16에서 알파버전이었다가, 18버전에서는 베타버전이 되었다. 그만큼 안정화가 되었다는 것을 말해준다. 이는 우연히 블로그에서 정보를 찾으려다가 발견한 정보이다. 아직 공부가 많이 필요하다는 것을 많이 느낀다. 그래서 우연히 알게된 이정보에 대해서 공부할려고 찾아보다가 더 많은 부분까지 알게되어 개념은 어느 정도 알겠지만 정리가 안되어, 이 개념을 정리하고자 글을 써본다. 이전에 정리해놓은 글인데 이제야 올립니다. 들어가며, 위에서 말한 것처럼 react의 suspense는 이미 출시되어 있었다. 16버전에서 알파버전이어서 그만큼 불안정했다가, 18버전에는 안정화가 되었다. 여기에서 나오는 개념은 클라이언트 react server개념이 나온다. RSC(React Server Component)..
·React
항상 react를 쓰는데 인터넷강의로 너무 간략하게 배우다보니 이에 대한 개념이 적립되지 못해 이제야 이 개념을 적립하고자 정리한다. 개념 useEffect() 함수는 React component가 렌더링 될 때마다 특정 작업(Sied effect)을 실행할 수 있도록 하는 리액트 Hook이다. 여기서 Side effect는 component가 렌더링 된 이후에 비동기로 처리되어야 하는 부수적인 효과들을 말한다. 이러한 기능으로 인해 함수형 컴포넌트에서도 클래스형 컴포넌트에서 사용했던 생명주기 메서드를 사용할 수 있게 되었다. 클래스형 컴포넌트에서는 생명주기 메소드를 사용할 수 있었는데, 이를 함수형 컴포넌트에서도 사용할 수 있게 되었다. 즉, 라이프사이클 훅을 대체할 수 있게 되었다. component..
·Node.js
node와 s3를 연동하면서 잘 되지 않았던 부분들을 정리하고자 글로 정리한다. 이는 세가지로 정리할 수 있다. s3연동하는 js하나, s3를 연동하는 js를 미들웨어로 넣어주어 사용하는 라우트 하나, 이에 대한 결과를 보여주는 컨트롤러로 이루어져 있다. 모듈 설치 npm install multer multer-s3 aws-sdk 위의 모듈은 s3와 node를 연동할 때 필요한 모듈이다. 이를 설치하고 난 후에 설치된 모듈의 버전을 확인해야 한다. 모듈과 관련하여 오류가 발생하였었다. 아래의 글을 한번 살펴보고 나서 이 글을 정독하거나 하면서 오류나는 부분들은 아래를 참고하면 좋다. 2023.02.08 - [Error] - [Error] this.client.send is not a function(no..
728x90
반응형