분류 전체보기 48

React_netflix-clone_5

5. netflix-clone_1 : useDebounce Custom Hooks 만들기 Debouce가 무엇인가?! 우리가 검색 창에 검색어를 입력하면 한 글자 한 글자 치는대로 바로 요청을 하게 된다. 당연히 이러면 성능에서 좋지 않겠지!!! 그래서 검색어를 입력 할 때 입력 결과가 나타날 때까지 지연을 줘야한다. 이 기능은 debounce라는 function에 의해 제어된다. debounce function은 사용자가 미리 결정된 시간 동안 타이핑을 멈출 때까지 keyup 이벤트의 처리를 지연시킨다. 이렇게 하면 UI코드가 모든 이벤트를 처리할 필요가 없고 서버로 전송되는 API 호출 수도 크게 줄어든다. 좌좌 그래서~ src 폴더 내부에 hooks 폴더와 useDebounce.js 를 만들어줬다...

React/Netflix 앱 2023.02.07

React_netflix-clone_4

4. netflix-clone_1 : React Router Dom react router dom을 사용하면 웹 앱에서 동적 라우팅을 구현할 수 있다. 라우팅이 실행 중인 앱 외부의 구성에서 처리되는 기존 라우팅 아키텍쳐와 달리 react router dom은 앱 및 플랫폼의 요구 사항에 따라 컴포넌트 기반 라우팅을 용이하게 한다. 리액트는 SPA(single page application)이기 때문에 하나의 index.html 템플릿 파일을 가지고 있다. 여기서 자바스크립트를 이용해 다른 컴포넌트들을 이 index.html 템플릿에 넣음으로써 페이지를 변경해주게 된다. 이때 react router dom 라이브러리가 새 컴포넌트로 라우팅/탐색을 하고 렌더링하는데 도움을 주게 되는 것이다. 우선 reac..

React/Netflix 앱 2023.02.06

React_netflix-clone_3

3. netflix-clone_1 : 영화 나열을 위한 Row 컴포넌트 생성하기 우선 Row.js에 함수를 만들고 App.js에서 이렇게 props를 내려주기 위해 Row를 가져왔다. 처음의 netflix originals만 사이즈를 다르게 해주기 위해 isLargeRow를 추가해줬다. 이제 내려준 props를 Row.js에서 가져오자. 우선 Row의 인자로 props를 써주고 useEffect를 통해 필요한 정보를 가져오기 위해 fetchMovieData 함수를 콜했다. fetchMovieData 함수에서는 비동기 요청을 하니까 저번처럼 async await을 사용하고 axios.get을 통해 fetchUrl을 가져온다. 이렇게 가져온 requset가 무엇인지 콘솔로 찍어보면 호묘묭... 이제 이 영화..

React/Netflix 앱 2023.02.06

React_netflix-clone_2

이전 내용 netflix-clone 2에서 포스팅 내용 중 마지막에 네비게이션 바를 만들면서 이렇게 삼항 연산자 쓰는 법.... 요상하다고 했었음..... https://velog.io/@rlaghwns1995/JavaScript-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A6%AC%ED%84%B0%EB%9F%B4 [JavaScript] 템플릿 리터럴 ES6이전에는 템플릿 문자열이라고 부르던 것을 ES6에서 템플릿 리터럴이라 부르게 되었다. ES6에서 문자열을 삽입하는 방식에 대해 알아보자 !! 템플릿 리터럴이란 내장된 표현식을 허용하는 문자 velog.io 규진 오빠가 보다 답답했는지 알려줌.. 호호^_^... 이렇게 또 배워갑니다... 따흑 2. netflix-clone_1 : 이미지 ..

React/Netflix 앱 2023.02.05

React_netflix-clone_1

학습 목표 netflix를 만들어 보자고!!!!! 1. netflix-clone_1 : The Movie DB API Key 생성하기 가장 처음으로는 react-netflix-clone 최상위 폴더를 만들고 터미널에 요롷게 해당 디렉토리에 리액트 앱을 설치해준다. 넷플릭스를 만들기 위해선 우선적으로 영화 정보를 가져와야겠지?? 그 곳이 바로 The Movie DB이고 API를 사용해서 가져올 것이다. 이때 중요한 것은 API Key 가 있어야 가져올 수 있다. 그렇다면 이 API Key는 어디서 가져올 것이냐!! https://www.themoviedb.org/ The Movie Database (TMDB) Welcome. Millions of movies, TV shows and people to di..

React/Netflix 앱 2023.02.03

React_to-do_8

8. 최종 우선 내가 만들고 있던 깃허브 배포 페이지에 리액트 프로젝트를 더 확실하게(?) 배포하려면... 그러니까 다른 사용자도 와서 내가 만든 것 좀 구경하게끔ㅋㅋ.. 하고 용량도 관리를 해주려면 build를 해줘야 한다. https://velog.io/@nemo/github-page-deploy-%EB%B0%B0%ED%8F%AC [React] 깃허브 페이지에 리액트 프로젝트 배포하기 자, 이제 제작한 앱을 깃허브 페이지에 배포해보자.메인 디렉토리 URL : https://{본인아이디}.github.io/서브 디렉토리 URL : https://{본인아이디}.github.io/movie-app우리는 메인이 아닌 서브 디렉토리에 배 velog.io 그래서 이 사이트를 참고해서 다... 올려줬고 이제 강의..

React/To-do 앱 2023.02.01

React_to-do_7

7. To-do_1 : 리액트 확장 프로그램 추가하기 이전 포스팅에서 React.memo를 통해 console을 찍으면서 리렌더링의 유무를 확인했었다. 이건 리액트 확장 프로그램을 통해서도 확인할 수 있다. 구글에서 '크롬 확장 프로그램'으로 검색을 해서 크롬 웹 스토어에 들어가 리액트를 검색하면 이렇게 개발 툴이 나오고 여기서 크롬에 추가를 하면 바로 확장 프로그램이 추가된다. 이제 우리가 만든 앱을 크롬으로 시작하면 리렌더링 되는 부분을 설정에서 보이도록 설정했을 때... 리렌더링 되는 부분이 색깔로... 표시된다고 한다... 나중에 크롬으로 열어서 확인해봐야겠다!! 7. To-do_2 : 할 일 리스트 모두 지우기 버튼 생성 이건 간단하게 할 수있다. App.js에서 할 일 목록 다음에 handle..

React/To-do 앱 2023.02.01

React_to-do_6

6. To-do_1 : 리액트 불변성 지키기 불변성이란 사전적 의미에서 값이나 상태를 변경할 수 없는 것을 의미한다. 자바스크립트는 두 가지의 타입이 있다. 1. 원시 타입 : Boolean, String, Number, null, undefined, Symbol 2. 참조 타입 : Object, Array 여기서 원시 타입은 불변성을 가지고 있고 참조 타입은 그렇지 않다. 자바스크립트에서는 원시 타입에 대한 참조 및 값을 저장하기 위해 call stack 메모리 공간을 사용하고 참조 타입인 경우 heap이라는 별도의 메모리 공간을 사용한다. 이 경우 call stack은 개체 및 배열 값이 아닌 메모리에만 heap 메모리 참조 ID를 저장한다. 즉, 원시 타입은 고정된 크기로 call stack 메모리..

React/To-do 앱 2023.01.31

React_to-do_5

5. To-do_1 : Drag and Drop 기능 추가하기 Drag and Drop 기능을 구현하는 순서로는 1. html 드래그 앤 드랍 api를 사용하여 원하는 목록을 드래그 가능하게 만든다. 2. 사용자가 드래그 할 때 적절한 애니메이션을 준다. 3. 사용자가 드래그를 멈췄는지 확인하고 여기에도 애니메이션을 준다. 4. 클라이언트가 목록을 재설정한 경우 항목의 위치를 새 항목으로 업데이트한다. >> 이것을 쉽게 구현할 수 있도록 해주는 모듈이 react-beautiful-dnd 이다. 따라서 이 모듈을 설치해보자~!! 후후 요로콤시 해주면 된다. 여기서 제공해주는 드래그 앤 드랍 api를 살펴보면 1. : 드래그 앤 드랍 하길 원하는 부분 전체를 감싸준다. 2,3 포함 2. : 드래그 앤 드랍하..

React/To-do 앱 2023.01.30

React_to-do_4

4. To-do_1 : 구조 분해 할당(Destructing) 구조 분해 할당이란 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 자바스크립트 표현식이다. 말 그대로 구조를 분해하는 것이라고 보면 된다. 구조 분해 할당은 clean code!! 깔끔한 코드를 위해서 한다. 객체 구조 분해 할당이 있고 배열 구조 분해 할당이 있는데.. 일단 그렇다는 것 정도만 알아두자 하하하ㅏ.... 다음에 이건 자세하게.. 봐야지ㅠㅠ 4. To-do_2 : From 부분을 위한 컴포넌트 생성하기 이전 포스팅에서 List 부분의 컴포넌트까지만 생성해줬다. 이제 입력 창을 담당하는 Form 부분의 컴포넌트도 분리를 해줄 것이다. List.js에서 했던 방식과 동일하므로 자세한 설명은 생략하겠다!! ..

React/To-do 앱 2023.01.29