SPA의 핵심, history API
코드리뷰
history API를 이용한 SPA의 핵심 개념은 실제 이동은 일어나지 않지만 히스토리에는 쌓이고 현재 URL을 바꿔준다. 즉 페이지 이동 없이 화면을 다시 그릴 수 있다. 새로고침이 일어나지 않고 앞으로가기 뒤로가기가 된다.
- pushState: 세션 히스토리에 새 url 상태를 쌓는다.
- replaceState: 세션 히스토리에 새 url 상태를 쌓지 않고 현재 url을 대체한다.
상부상조할 수 있는 코드리뷰는 뭘까?
2번의 과제를 제출하고 데브코스에서 느끼는 건 나는 누군가에게 알려주는 입장보다는 배우는 입장인 경우가 훨씬 많다는 것이다. 그래서 남들이 구조적인 부분을 지적해줄 수 있는 능력이 있을 때 나는 그런 부분을 언급하지 못하고 간단하고 기초적인...뱅크샐러드 코드리뷰 포스팅에서 P5정도의 간단한 문제점만 언급할 수 있는 것 같다.
그렇다고 또 구조적인 문제를 발견했을 때 언급할 수 있냐? 하면 또 아닌게 나 조차도 그 문제가 맞는지 아닌지를 모른다. 그래서 진짜 확실한 경우 아니면 넘기거나 오히려 팀원에게 물어보는 형식으로 리뷰를 남긴다.뭔가...뭔가 학습의 방법이 잘못되고 있는걸까? 아니면 남들보다 그냥 많이 부족한 걸까? 일단 이번 과제부터는 우리 팀원들의 코드 뿐만 아니라 다른 동기들의 코드리뷰도 참고해보면서 다 내 코드에 적용하고 내껄로 만들어야겠다.
부족하다고 불평할 시간이 없다. 불평할 시간에 내껄로 만들자.
오늘의 소확행이다. 기초적인 문제지만 이분탐색을 레퍼런스 없이 풀이했다. 그래도 커가고 있다는 느낌을 받을 수 있었다. 이제 제발 그래프랑 단골 문제들은 레퍼없이 풀어보자
// https://www.acmicpc.net/problem/1920 let fs = require("fs"); // let input = fs.readFileSync("example.txt").toString().split("\n"); //vscode let input = fs.readFileSync("/dev/stdin").toString().split("\n"); //백준 // console.log(input); const N = Number(input[0]); const N_arr = input[1].split(" ").map(Number); const M = Number(input[2]); const M_arr = input[3].split(" ").map(Number); N_arr.sort((a, b) => a - b); // console.log(N, M, N_arr, M_arr); // console.log(); const binarySerach = (array, target) => { let start = 0; let end = array.length - 1; while (start <= end) { let mid = parseInt((start + end) / 2); if (target === array[mid]) { return true; } else { if (target > array[mid]) { start = mid + 1; } else { end = mid - 1; } } } return false; }; const answer = []; for (let i = 0; i < M; i++) { binarySerach(N_arr, M_arr[i]) ? answer.push(1) : answer.push(0); } console.log(answer.join(" "));
잠을 제대로 못자서 컨디션이 말이 아니였다. 역대급으로 집중 안되고 그랬던 날이다. 그럴 수 있어...이런 날도 있는거지 뭐
그리고 얼른 4k모니터를 구매해야겠다. 이렇게 TIL을 작성하거나 강의를 들으며 코드를 작성할 때 생산성이 너무 떨어지는 거를 체감하고 있는데 그렇다고 데탑에서 뭔가를 하자니 유혹도 많고 데브코스 이후에는 모든 학습을 맥에서 해서 모든 자료가 맥에 연동되어 있다.
고민은 점점 많아지고 할거는 많아지는데 컨디션까지 않좋으니 기분이 안좋다. 과거의 놀았던 업보 그래도 내일은 잘 자고 잘 일어나서 잘 해야지!!