분류 전체보기
22_리덕스 미들웨어
리덕스 미들웨어를 쓰지 않는건 리덕스를 쓸 이유가 없다는 것과 같다! 액션이 일어나고 리듀서가 일어나기 전에 코드를 실행하게 하거나 액션을 수정하거나 또다른 액션을 만들어서 dispatch를 한더던지 등등의 기능을 쓸 수 있다. 주로 API요청과 같은 비동기 작업을 처리할때 굉장히 유용하게 쓸 수 있다. 먼저 리액트 프로젝트를 하나 만든 후에 yarn add redux react-redux redux라이브러리와 react-redux라이브러리를 설치해 준다. 그 이후 간단한 리덕스 구조를 만들어주자. 저번 글에서 했던 카운터 예제를 다시한번 구현해보자. 다음과 같은 파일구조를 만들어주고 //counter.js const INCREASE = 'INCREASE'; //action type const DECRE..
2565_전깃줄
문제는 더보기! 더보기 문제 두 전봇대 A와 B 사이에 하나 둘씩 전깃줄을 추가하다 보니 전깃줄이 서로 교차하는 경우가 발생하였다. 합선의 위험이 있어 이들 중 몇 개의 전깃줄을 없애 전깃줄이 교차하지 않도록 만들려고 한다. 예를 들어, 과 같이 전깃줄이 연결되어 있는 경우 A의 1번 위치와 B의 8번 위치를 잇는 전깃줄, A의 3번 위치와 B의 9번 위치를 잇는 전깃줄, A의 4번 위치와 B의 1번 위치를 잇는 전깃줄을 없애면 남아있는 모든 전깃줄이 서로 교차하지 않게 된다. 전깃줄이 전봇대에 연결되는 위치는 전봇대 위에서부터 차례대로 번호가 매겨진다. 전깃줄의 개수와 전깃줄들이 두 전봇대에 연결되는 위치의 번호가 주어질 때, 남아있는 모든 전깃줄이 서로 교차하지 않게 하..
21_리액트_리덕스
리덕스 사용률이 가장 높은 상태관리 라이브러리 ContextAPI + useReducer을 사용한 개발흐름과 유사하다. Context와의 차이점 1. 미들웨어 비동기 작업을 더욱 체계적으로 관리가 가능하다. 2. 유용한 함수, Hooks 라이브러리 내 함수들과 Hook을 지원받을 수 있다. ex) connect,useSelector,useDispatch ... 3. 기본적인 최적화가 이미 되어있다. 4. 하나의 커다란 상태 모든 글로벌상태를 큰곳에 넣어서 사용 5. DevTools 여러 도구가 있다. 6. 이미 사용중인 프로젝트가 많음 리덕스의 사용시기? 프로젝트가 클수록, 비동기 작업을 할수록, 리덕스가 편할수록 리덕스를 사용하면 된다. 사용 키워드들 액션 상태변화가 필요하게 될때 사용 { type :..
11053_가장 긴 증가하는 수열
문제는 더보기! 더보기 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 예제 입력 1 복사 6 10 20 10 30 20 50 예제 출력 1 복사 4 우선 가장 긴 증가하는 수열에대해 알아야 한다. 증가하는 부분수열이란, 수열의 부분수열중 오름차순..
20_리액트_라우터
본 게시물은 react-router-dom v5버전을 다룹니다! v6버전은 사용하지 않습니다. Single Page Application 라우팅을 클라이언트가 담당 라우팅??? 어던 주소에 어떤 UI를 보여줄지 처리하는 작업! 이전에는 위와같은 구조로 서버에서 정보를 가져왔는데 이는 사용자가 늘어나면 불필요한 작업이 많아진다. SPA를 사용하면 굳이 /about페이지로 이동하지 않아도 되고 필요한 정보가 있다면 그 부분만 json 형태로 정보를 받게 된다. SPA의 단점 1. 앱의 규모가 너무 커지면 JS파일의 크기가 너무 커진다. >> code splitting로 해결 각 기능별로 파일을 분리시켜 필요한 시점마다 파일을 불러오는 방식 2/ 자바스크립트가 구동되지 않으면 UI를 볼 수 없음 >> Serv..
10844_쉬운계단수
문제는 더보기! 더보기 문제 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 출력 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. 예제 입력 1 복사 1 예제 출력 1 복사 9 예제 입력 2 복사 2 예제 출력 2 복사 17 처음에는 100의 자리니까 리스트를 100개를 만들어서 값을 하나씩 채워나가면 되지 않을까? 라고 생각했다. 직접 머리로 생각하는건 3번째정도까지 가능했는데, 고민하다보니 결국 값을 관리해주는건 끝이 0일때..