🐈오늘 공부한 것
✔️Redux 정리
https://friedegg556.tistory.com/215
리덕스 공식문서의 fundamentals 챕터에 있는 바닐라 자바스크립트에 적용된 리덕스 코드를 분석하며 정리해보았다. 자바스크립트에서 동작하는 방법을 보니 리덕스의 원리(?) 에 대해서 더 이해하기가 쉬웠고, 왜 react-redux 라이브러리가 리액트에서 이를 쉽게 사용할 수 있게 도와주는지 더 잘 알게 되었다.
바닐라 자바스크립트에서는 데이터의 변경을 자동으로 감지하지 않기 때문에 subscribe 같은 별도 함수에 콜백함수를 전달해야하고, 또 DOM 이벤트를 감지하도록 이벤트 리스너를 설정하는 등 조금 복잡한 과정이 있었다.
리액트에서는 상태가 업데이트 되었을 때 화면을 변경할 수 있고 또 컴포넌트에서 이벤트를 감지하는 방식이 바닐라 자바스크립트보다는 조금 더 직관적이다 보니...
화면과 상태 업데이트 로직이 분리되어 굉장히 편리하고 보기 좋다는 생각이 많이 들었음.
✔️git push --mirror [new repository]
스터디를 위해 원본에서 fork한 레포지토리에 커밋을 했을 때, 해당 커밋 내역이 잔디에 심어지지 않는 문제가 있었다. 찾아보니 fork한 레포지토리에서 이루어지는 커밋은 잔디에 반영되지 않는다고 한다...! 그래서 찾은 방법이 이 링크에 잘 정리되어 있었다.
다시 정리해 보자면...1. 새로운 원격 레포지토리를 생성한다.2. 커밋을 하고 있던 fork 한 레포지토를 bare clone 한다. bare clone : 전체 복사가 아닌 커밋 이력 같은 정보만 복사할 수 있다.
git clone --bare [커밋 내역이 쌓여있는 fork한 레포지토리]
3. bare clone한 저장소로 이동하여, 새로 만든 원격 레포지토리로 mirror - push 를 한다. mirror 옵션은 한 레포지토리에서 다른 레포지토리로 이사(?)를 갈 때 활용할 수 있는 옵션이다.
cd [bare clone한 레포지토리 (fork 한 레포지토리)]
git push --mirror [새로 만든 빈 원격 레포지토리]
4. bare clone 한 임시 저장소 삭제
✔️완전탐색 알고리즘
인프런 자바스크립트 알고리즘 강의를 기반으로 알고리즘 스터디를 하게되어서, 이번주 주제인 완전탐색 알고리즘에 대해 간단하게 공부할 수 있었다. 완전탐색 알고리즘 자체가 하나의 기법인줄 알았는데, 가장 대표적인 방법이 for문을 사용해서 모든 경우의 수를 도출해 해답을 찾는 brute-force 방식이었던 것이다. 여기에 순열이나 dfs, bfs, 재귀, 비트마스크 같은 전체 경우의 수를 도출할 수 있는 알고리즘이 포함된다고 볼 수 있다.
이번에 풀었던 문제 중 전체 N개의 숫자 중에서 3개를 뽑아 K번째에 해당하는 답을 도출하는 문제가 있었다. 이 문제를 보았을 때 N중에 3이라고 하니 중복이 없는 순열 알고리즘으로 풀 수도 있겠다는 생각이 들긴 했다. 이전에 공부를 하긴 했지만 전혀 기억이 나지 않고 결국 익숙한 방식인 3중 for문을 사용했음..
🐈더 공부할 것
1. TodoList : 리덕스 적용해보기, 컴포넌트 수정
2. 인프런 자바스크립트 알고리즘 문제풀이
🐈오늘의 느낀 점
1. 나태지옥.. 금요일에서 토요일로 넘어가는 저녁은 침대의 유혹을 이기기가 너무 힘들었다. 빨리 정신차리고 일상으로 돌아오는 텀이 점점 짧아지고는 있는데, 아예 방지할 방법을 찾고 싶다. 과제를 일찍 끝냈으면 그만큼 더 보강할 생각을 해야하는데. 가끔 내가 너무 적당히만 하는 것 같아서 한심하다... ㅠ 이렇게 생각하는 것도 사치라는 것을 알고있기 때문에... 앞으로는 주간 단위로 목표를 세워서 주간 회고까지 해 볼 생각이다.
'TIL' 카테고리의 다른 글
[Day 54] 2022-0906 : 웹 접근성 (0) | 2022.09.07 |
---|---|
[Day 53] 2022-0905 : react-redux, 웹 표준화, SEO, 알고리즘 (0) | 2022.09.06 |
[Day 51] 2022-0901 : 리액트 상태관리, Redux (0) | 2022.09.01 |
[Day 50] 2022-0831 : Props drilling 체험(?), 미디어쿼리, 알고리즘 (0) | 2022.08.31 |
[Day 49] 2022-0830 : React Custom Components - 자동완성 , 인라인 에디터 (0) | 2022.08.30 |