본문 바로가기

전체 글78

React 렌더링 사이클과 useEffect, 그리고 useRef ref와 useEffectuseEffect는 굉장히 섬세하다. 웬만해서는 사용해서는 안된다. 그런데, 이전에 구글 맵을 렌더링할 때, useEffect와 ref를 같이 사용함으로써, 예기치 못한 부작용들이 발생할 수 있었다. 이를 위해서 react의 trigger phase, render phase와 commit phase를 파고들어 보자.TLDR리액트 공식문서에서는 렌더링 과정을 다음과 같이 얘기한다.렌더링 트리거 (손님의 주문을 주방으로 전달)컴포넌트 렌더링 (주방에서 주문 준비하기)DOM에 커밋 (테이블에 주문한 요리 내놓기)렌더링 트리거렌더링 트리거란, 단순히 렌더링을 트리거하는 것이다. 렌더링 트리거가 왜 일어나는지에는 다음의 두 가지 이유가 있다.Initial render어떠한 동작(페이지 방.. 2024. 4. 25.
백준 19941 햄버거 분배 C++ 문제 보고 그냥 단순하게 왼쪽부터 차례대로 전부 탐색 시간제한이 0.5초이고, n이 20000개, k가 10이다. 최소한 20000 * 10하면 이십만번 탐색하면 0.5초도 안걸린다고 생각해서 전부 탐색해도 된다. 답 #include #include #include using namespace std; int main(){ cin.tie(0); ios_base::sync_with_stdio(0); int n,k; cin>>n>>k; string a; cin>>a; vector visited(n,false); int ans=0; for(int i=0;i 2024. 4. 21.
React의 Typescript와 함께 data fetching(axios로 API 호출) Typescripttypescript를 사용함에 따라 기존의 코드에서 사용하던 axios가 어려워져버렸다... 기존의 자바스크립트를 이용한 axios는 간단하고 데이터를 쉽게 받아올 수 있었으나, Dynamically Typed Language라는 말에 걸맞게, 불러오는 데이터의 형식을 전혀 알 수 없었다. 다음과 같은 js 코드를 보자, 내 취향껏 짠 코드이다. 엄청 간단하고 명확하지만, 어떤 데이터를 주고 받는지 알 수 없다.import axios from 'axios';export async function getItems() { return new Promise((resolve, reject) => { (async () => { try { const res = awai.. 2024. 4. 21.
msw 오류 Cannot read properties of undefined (reading 'url') 응답을 mocking 하기 위해 msw를 사용하였지만, url을 읽을 수 없는 오류가 발생하였다.그러나 막상 오류를 무시해도 잘 작동이 되어서 무엇이 원인인지 궁금해졌다.  크롬의 개발자 도구를 켜서 오류를 확인해보니, createResponseListener.ts에서 문제가 발생하였다.  이 코드는 내가 짠 것이 아니라, msw에서 발생한 오류이다.  주석처리 되어 있는 링크를 들어가보니까, 내 문제가 아니라 msw의 문제였다.     내 문제가 아니라 어떻게 해야할지 모르겠는데, 하다가 안되면 버전 다운그레이드나 제거를 해야겠다...  궁금하면 가서 읽어보는 것을 추천합니다. https://github.com/mswjs/msw/issues/2030https://github.com/mswjs/msw/i.. 2024. 4. 16.
백준 17406 배열 돌리기 4 C++ 단순히 손이 많이 가는 백트래킹 배열을 돌릴 순서를 정하고, 배열을 돌리면 된다. 간단한 해설 배열을 돌릴 순서를 정하는 법 단순히 백트래킹 기법을 이용한다. 배열을 돌리는 법 c(거리)에 따라서 모든 거리를 동적으로 돌린다. (rotateArray 함수 부분) 만약 거리가 3이면 먼저 거리 1 회전, 그다음 거리 2 회전 그리고 마지막으로 거리 3 회전을 하면 된다. 나머지 디테일은 전부 생구현 내 아이디어 스케치 답 #include #include #include #include #include using namespace std; vector v(50,vector(50)); deque picker; int n,m,k,r,c,s; int ans=987654321; void rotateArray(vec.. 2024. 4. 16.
백준 22115 창영이와 커피 C++ 단순한 배낭 문제 반례 1 0 1답 : 0 답 #include #include #include using namespace std; int main(){ cin.tie(0); ios_base::sync_with_stdio(0); int n,k; cin>>n>>k; vector v(n); for(int i=0;i>v[i]; } vector dp(n+1,vector(k+1,200)); dp[0][0]=0; for(int i=1;i 2024. 4. 16.