[TIL] 2022-07-06 / 78일차 (useReducer) 포스팅 썸네일 이미지

프로그래머스/데브코스 프론트엔드

[TIL] 2022-07-06 / 78일차 (useReducer)

Context API에 대한 강의에서 ContextProvider 컴포넌트에서 로컬 state를 관리하기 위해 useReducer hook을 사용했었다. 얼핏 기억하기로는 그때 당시 강의에서 useState와 유사한 역할을 한다고 간단한 설명을 하고 적용했던 것으로 기억한다. useState와 유사하다니 그런 줄만 알고 넘어갔었는데, Context API를 직접 다시 사용해보니 useState를 사용할 때와 다르게 사용되는 것을 보고 useReducer는 useState와 어떻게 다른지 알아야 할 것 같다는 필요성을 느끼게 되었고 간단하게 정리해보았다. useReducer 우선 useState와 유사한데 굳이 사용하는 이유는 무엇일까? useReducer를 많이 사용해보지 않아 정확하게 사용하는 이유를 ..

2022.07.06 게시됨

[TIL] 2022-07-01 / 75일차 (Context API) 포스팅 썸네일 이미지

프로그래머스/데브코스 프론트엔드

[TIL] 2022-07-01 / 75일차 (Context API)

중간 프로젝트가 끝나고 React 심화 수업을 수강함과 동시에 과제가 시작되었다. 과제는 강사님 회사에서 진행하는 과제로 재활용할 수 있는 컴포넌트를 만드는 연습을 하기 위해 내준 것 같다. 강의 내용이 어려워서 강의보다는 얼른 과제를 끝내고 싶은 마음에 빠르게 과제부터 진행했다. 어느 정도 완성은 했지만 재활용할 수 있는 컴포넌트를 만들었냐고 물어보면 아니라고 말할 것 같다. 아직까진 추상화 개념이 어렵다. 많은 연습이 필요할 것 같다. 과제를 진행하면서 Context API를 도입하고자 했다. 사실 이 과제에서 Context API가 필요하냐 하면 그렇지 않다. 큰 프로젝트도 아니고 간단한 컴포넌트라서 불필요하다. 중간 팀 프로젝트를 진행할 때 User 객체를 전역적으로 관리하며 Context API..

2022.07.01 게시됨

[TIL] 2022-06-28 / 72일차 (SPA역사와 SSR) 포스팅 썸네일 이미지

프로그래머스/데브코스 프론트엔드

[TIL] 2022-06-28 / 72일차 (SPA역사와 SSR)

Vue와 React 강의를 듣고, Vue 과제(영화 검색)와 중간 팀 프로젝트(React)를 진행하면서 SPA 프레임워크를 접하고 다루게 되었다. SPA 프레임워크를 사용하는데 SPA에 대해 이해하고 Next.js 강의를 들으면서 SSR이 무엇인지 알아야 할 필요성을 느껴 어떤 배경에서 등장했는지 어떻게 동작하는지 대략적으로 정리를 했다. SPA(Single Page Application)의 역사 MPA (Multi Page Application) MPA(Multi Page Application)의 동작 순서는 다음과 같다. 1. 사용자가 브라우저를 통해 특정 요청을 보낸다. (그림상으로 1번 post에 대한 요청) 2. 서버는 요청을 받고, 데이터를 가공해 HTML을 생성한다. 3. 그 후 브라우저로 ..

2022.06.28 게시됨

[TIL] 2022-06-23 / Day 69 (타입스크립트 기본 문법) 포스팅 썸네일 이미지

프로그래머스/데브코스 프론트엔드

[TIL] 2022-06-23 / Day 69 (타입스크립트 기본 문법)

중간 프로젝트(SNS 만들기)가 끝나고 오랜만에 강의를 다시 듣게 되었다. 처음 접하게 된 타입스크립트에 대해 간략하게나마 정리를 했다. 프로젝트 회고도 곧 정리해서 작성할 계획이다. 오늘 배운 내용 타입스크립트 타입 + 자바스크립트. 타입이 적용된 자바스크립트이다. 장점 안정성 가독성 명시적으로 타입을 지정해 사용하기 때문에 안정성이 높아진다. 컴파일 단계에서 미리 오류를 감지할 수 있기 때문이다. 자바스크립트는 타입 없이 사용하기 때문에 높은 자유도가 있지만, 직접 실행해보고 테스트하기 전까지는 오류를 감지하기 어렵다. 타입을 명시적으로 지정했기 때문에 실수를 줄일 수 있다. 타입을 명시적으로 작성했기 때문에 타입을 보고 무엇인지 알아보기가 쉽다. 네이밍만으로 유추하기 힘들다거나 다른 사람이 작성한 ..

2022.06.23 게시됨

[TIL] 2022-06-01 / 53일차 (React - Hook 3) 포스팅 썸네일 이미지

프로그래머스/데브코스 프론트엔드

[TIL] 2022-06-01 / 53일차 (React - Hook 3)

오늘 배운 내용 useMemo Hooks API Reference – React A JavaScript library for building user interfaces ko.reactjs.org useMemo는 최적화를 위해 사용하는 Hook이다. 컴포넌트가 리 렌더링 된다는 것은 Function 컴포넌트를 호출하는 것과 동일하다. 만약 리 렌더링이 여러 번 일어난다는 것은 함수가 매번 다시 실행되고 내부의 선언된 변수와 함수가 그때마다 다시 선언되고 실행된다는 의미다. 그렇다면 리 렌더링(re-rendering)은 언제 발생하는가? 함수 컴포넌트는 자신의 state가 변경될 때 re-rendering 한다. 부모 컴포넌트로부터 받는 props가 변경될 때 re-rendering 한다. 부모 컴포넌트의..

2022.06.01 게시됨

[TIL] 2022-05-28 / (React - Hook 2) 포스팅 썸네일 이미지

프로그래머스/데브코스 프론트엔드

[TIL] 2022-05-28 / (React - Hook 2)

오늘 배운 내용 useRef useRef는 언제 사용하는가? Javascript에서 DOM Selector 함수를 사용하여 DOM에 직접적인 접근을 하는 것처럼, React에서는 이 기능을 useRef가 대체하고 있다. 간단한 예제를 살펴보자. import { useRef } from 'react'; function App() { const inputRef = useRef(null); return ( inputRef.current.focus()}>Click Here! ); } export default App; input 태그가 있고, button 태그가 있는 기본적인 구조다. button을 클릭하게 되면, input 태그에 focus를 주는 구조이다. Javascript에서 DOM에 접근하기 위해서는 ..

2022.05.28 게시됨