본문 바로가기

Project8

[클론 코딩] 리액트 라우터 적용 지난번에 카테고리까지 구현하면서 뉴스 뷰어 앱을 완성했습니다. 이번에는 카테고리마다 리액트 라우터로 SPA한 페이지를 만들어보겠습니다. 2021.12.11 - [Programming/React] - [React] 리액트 라우터 [React] 리액트 라우터 이번에는 리액트 라우터 라이브러리를 통해서 SPA가 적용되는 것을 간단하게 알아보려고 합니다. SPA에 대해서는 아래 링크 설명을 참조해주세요. 2021.12.09 - [Programming/CS] - SPA, Single Page Application.. bamtory29.tistory.com 2021.12.09 - [Programming/CS] - SPA, Single Page Application SPA, Single Page Application.. 2022. 1. 3.
[클론 코딩] 뉴스 api 연동 지난번에 전체적인 UI를 구상했습니다. 이제는 newsapi를 연동해서 본격적으로 완성시켜볼 차례입니다. 1. api 연동 컴포넌트가 렌더링 될 때마다 작업을 수행하는 useEffect를 통해 api를 연동할 예정입니다. 주의할 점은 이전에 api 연동을 위해 async로 useEffect에 콜백 함수를 등록할 때 여기에는 async를 붙이면 안된다는 점 입니다. 그 이유는 useEffect를 실행했을 때 뒷정리 함수를 반환하기 때문입니다. 그래서 지금처럼 useEffect에 비동기 처리가 필요하다면 내부에 함수를 하나 더 만들어서 async 키워드를 붙여서 이용해야 합니다. 2021.11.16 - [Programming/React] - [React] Hooks - useEffect [React] Hoo.. 2022. 1. 2.
[클론 코딩] 뉴스 API와 UI 설계 이번 포스트에서는 우리가 활용할 뉴스 API를 준비하고 그에 대한 ui 설계를 다루겠습니다. 1. API 키 발급 아래 사이트에서 가입을 하고 API키를 발급 받겠습니다. https://newsapi.org/ News API – Search News and Blog Articles on the Web News API is a simple, easy-to-use REST API that returns JSON search results for current and historic news articles published by over 80,000 worldwide sources. Worldwide Scale Search through hundreds of millions of articles in 14 .. 2021. 12. 30.
[클론 코딩] 뉴스 뷰어 만들기 이번에 가져온 클론 코딩은 뉴스 뷰어입니다. 이 프로젝트는 VELOPERT 님의 '리액트를 다루는 기술 개정판' 14장의 내용을 클론 코딩하였습니다. TODO-LIST의 리액트 기초 기술들을 다시 되돌아보고, 외부 API 연동까지 한 번에 챙겨가는 프로젝트가 되었으면 좋겠습니다. 1. 비동기 처리 외부에서 데이터를 받아서 우리 홈페이지에 보여줄 것이기 때문에 비동기처리가 필수적입니다. 그렇지 않으면 정보가 로딩되는 동안 기다려야하죠. 비동기와 그에 대한 자바스크립트 구문 설명은 아래 링크들을 참조해주세요. 2021.05.24 - [Programming/Javascript] - [Javascript] 프로미스(promise) 객체 2021.05.24 - [Programming/Javascript] - [J.. 2021. 12. 29.
[클론 코딩] Todo List 컴포넌트 성능 최적화 지난번 포스팅을 통해서 Todo List 앱을 완성시켰습니다. 하지만 최적화 과정이 없이 기능만을 구현했기에 성능 퍼포먼스는 좋다고는 할 수 없습니다. 비록 클론 코딩이지만 실제 개발에서 요구사항을 충족하는 개발에 성능 또한 중요시 여기므로 성능을 최적화 시키는 방법도 알아보겠습니다. 1. 컴포넌트 리렌더링 최적화를 해야하는 이유는 컴포넌트 리렌더링 때문입니다. 웹사이트에서 로딩이 발생하는 이유는 인터넷 대역폭 문제도 있겠지만, 우리가 겪는 로딩이 긴 사이트의 문제점은 웹 사이트의 구성 요소를 불러오는 시간 때문입니다. 즉, 화면에 그려야하는 요소가 많을수록 로딩이 길어지는 것입니다. 리액트를 처음 이야기 할 때, 컴포넌트들을 레고 조립하듯이 만든다고 소개했는데요. 이렇게 조립시킨 컴포넌트가 많아서 렌더.. 2021. 12. 23.
[클론 코딩] TODO LIST 기능 구현 지난 포스트에서 기본세팅과 UI를 구성했습니다. 이제 껍질의 내용물들을 구현해보도록 하겠습니다. 1. todos 우리가 만드는 TODO 앱은 App.js에서 배열의 형태로 관리됩니다. 그러기 위해서 useState Hook를 이용해서 todo를 관리하고 이 todos배열을 TodoList 컴포넌트의 props로 전달해서 보여주게 됩니다. const App = () => { const [todos, setTodos] = useState([ { id: 1, text: 'TODO LIST 앱 완성하기', checked: true, }, { id: 2, text: '블로그 포스팅하기', checked: false, }, ]); return ( ); }; todos 배열을 뜯어보고 지나가자면, 배열안에는 각 항목.. 2021. 12. 21.
300x250