당신은 리액트를 쓰면서 useEffect를 얼마나 사용하는가? useEffect는 React 컴포넌트에서 side effect를 처리하는데 너무나도 중요하게 사용되는 훅이다. useEffect에 대해서 알아보려면 side effect에 대한 이야기부터 차근차근 밟아가야 한다. Side Effect란? 간단하게 한국어로 번역하면 부수효과라는 뜻으로 함수나 표현식의 실행 결과 외에 발생하는 영향을 말한다. 우리가 일반적으로 프로그래밍을 할 때에는 함수나 표현식의 결과값을 반환하는 것을 기대한다. 하지만 예상한 결과 값 외에도 외부 상태를 변경하거나 다른 부작용을 발생시키는 경우가 있다. 이런 외부 상태의 변경이나 부작용을 Side Effect라고 부른다. 보통 비동기적으로 처리되는 효과들을 Side Effe..
리액트, 왜 사용하시나요? 최근 기술 면접을 대비하여 준비를 하다 보니, 문득 내가 왜 React를 쓰고, React Native를 쓰는 거지? 생각이 들었다. 내가 React를 사용하는 이유에 대해 나조차 전혀 모르고 있었기 때문에 내가 왜 리액트를 사용해야 하고, 이 라이브러리를 통해 얻을 수 있는 것이 무엇인지에 대해 알아본다. 결론부터 정의 해 보자면, 우리가 HTML, CSS, Javascript로 쌩 코딩하지 않는 이유는 시대의 변화와 흐름 때문이라고 볼 수 있다. 동적으로 사용자 친화적으로 웹 서비스가 변화 하면서 사용자에게 더 좋은 UI와 UX를 제공하기 위해 리액트를 사용하고 있는 것이다. 리액트란? 리액트 왜 사용하는지 결론을 냈으니, 리액트가 무엇인지 알아보자. 먼저 리액트 공식 D..
Hook은 최근 리액트 16.8부터 새로 도입된 기술로, Class Component에서만 사용 가능했던 state와 lifecycle을 function component에서도 사용 가능 하도록 제작됐다. 단지 Class component를 function component로 옮기는 것에서 끝난 것이 아닌, 컴포넌트의 state에 관련된 로직을 재사용 할 수 있다는 장점이 있고, 컴포넌트간의 통신을 도우는 Context API등 다양한 발전들이 이뤄졌다. React v.17 이후부턴 리액트가 공식적으로 Class component를 사용하는 것이 아닌, Functional Component를 사용하라고 권장했다. 따라서 외부 라이브러리부터 다양한 프로젝트에서도 Functional component와 ho..
React Navigation setup 리액트 네이티브 공식 문서를 살펴보면, Pagination 또는 Navigation을 원한다면 React Navigation 모듈을 사용하길 권장하고 있다. 다음 과정을 거쳐 나의 프로젝트에 React Navigation을 다운로드 해주었다. 먼저 프로젝트에 npm install 해주었다. > npm install @react-navigation/native 그다음 나 같은 경우는 Expo CLI를 사용하는 것이 아닌, ReactNative CLI를 사용하고 있기 때문에, npm install로 새로운 dependencies를 설치해 주었다. > npm install react-native-screens react-native-safe-area-context 리액..
보통 우리가 페이지 이동을 구현 할 때 를 사용하여 만들었을 것이다. 하지만 a 태그를 사용 했을 때 문제가 있다. 는 페이지가 이동 할 때 js와 css 모두 다시 다운로드 한다는 문제점이 있다. React Application은 SPA 방식으로 한 번 다운로드 하고 나선 다운로드 하지 않기 때문에 react-router-dom을 이용하여 Link를 사용해주어야 한다. App.js import { BrowserRouter, Route, Switch } from 'react-router-dom'; import Home from './pages/Home'; import Profile from './pages/Profile'; import About from './pages/About'; import No..
React가 나오기 전 전통적인 방식은 다음 그림과 같다. url이라고 불리는 단위를 바탕으로 해당 페이지의 html, css, js를 서버에게 url에 해당하는 html을 받아왔다. React로 넘어오면서 url을 받아오는 것이 아니고, 큰 앱 전체를 받아왔다. 각각의 페이지를 요청하는 것이 아닌 전체(Single Page Application)을 받아오는 방식을 사용하기 시작했다. SPA의 라우팅 과정 브라우저에서 최초에 '/'(root) 경로를 요청하면 서버에서 React Web App을 내려준다. 내려 받은 React App에서 '/' 경로에 맞는 컴포넌트를 먼저 보여준다. React App에서 다른 페이지로 이동하는 동작을 수행하게 된다면 새로운 경로의 컴포넌트를 보여준다. React 범주에서 ..