전체 글73 [4월19일] 신입 개발자가 useEffect를 사용할 때 자주 일어나는 실수 어제에 이어 useEffect에 대한 정보를 찾아보다가, 유투브영상에서 재밌게 봤던 영상을 소개한다. 1. useEffect Dependency Mistakes 상태의 변동에 따라 useEffect를 이용해 특정 기능을 실행하고 싶을 때가 있을거다. 이 떄 주의해야할 점은 []안에 오브젝트 또는 배열을 넣어선 안된다는 점이다. 배열과 오브젝트의 값은 주소값을 가르키기 때문에, [1] == [2] 는 성립하지 않을 뿐더러 [1] == [1] 도 절대 성립하지 않는다. 객체형식 또한 마찬가지다. 그럼 특정 state가 오브젝트 형식으로 되어있고, 오브젝트 안 특정 값에 따라 useEffect를 동작하고 싶으면 어떻게 해야할까? 정답은 바로 useMemo이다. useMemo로 먼저 특정 state값을 저장해주.. 2023. 4. 20. [4월17일] Using useEffect Effectively useEffect는 컴포넌트가 렌더링 될 때 마다 특정 작업을 수행하도록 지정할 수 있게해준다. 컴포넌트가 처음 렌더링 될 때, 그리고 컴포넌트가 언마운트 될 때 각각 수행해야되는 기능들을 등록해두면 알아서 기능수행을 해주기도 하고, 특정 상태의 변동에 따라 함수를 수현하도록 의존성 배열을 지정사용할 수 도 있다. 예를 들어 처음 렌더링 될 때 데이터를 불어오도록 할 수 있다. 인터넷에서 찾아보면, api를 useEffect에 담아 컴포넌트 또는 페이지 요소가 첫 로딩 될 때 api를 요청해서 데이터를 불러오는 방식으로 구현된 예제들이 매우 많다. 하지만 이런 방식은 중복되는 사이드이펙트를 일으킬 수 있어 매우 비효율적인 사용 방식이다. useEffect를 남용하지 말라는 내용은 리액트의 사용자라면 한번.. 2023. 4. 17. 백준 골드티어 달성 별로 한게 없는거 같은데, 벌써 골드티어에 도달했다. 추천 문제 위주로 풀기만 했으며, 현재 그리디에 한해선 실버는 손 쉽게 풀고, 골드 문제는 대부분 스스로 풀 수 있는 수준이 되었다. 앞으로 dp 문제와 dfs / bfs 탐색 문제에도 심혈을 기울여야 할 것 같다. 문제를 많이 풀어보는 것 밖에 답이 없는 것 같다. 새로운 문제를 푸는 것 보단, 예전에 힘들게 풀었던 문제들을 쉽게 풀어 낼 수 있는지 복습을 많이 하려 노력하고 있다. 그리디 / dp / 탐색 각각 50문제 씩만 풀어도 골드1은 찍지 않을까 예상해본다.. 2022. 12. 9. 백준 11659 - 구간 합 구하기 4 import sys input = sys.stdin.readline n,m = map(int,input().split()) arr = list(map(int,input().split())) arr2 = [0]*n arr2[0] = arr[0] for _ in range(1,n): arr2[_] = arr[_]+arr2[_-1] for _ in range(m): i,j = map(int,input().split()) if i == 1: print(arr2[j-1]) else: print(arr2[j-1]-arr2[i-2]) # 간단한 누적합 문제 간단한 누적 합 문제이다. 2022. 12. 9. 2021 Dev-Matching: 웹 백엔드 개발자(상반기) - 행렬 테두리 회전하기 def solution(rows, columns, queries): graph = [[0]*columns for _ in range(rows)] cnt = 1 answer = [] for i in range(rows): for j in range(columns): graph[i][j] = cnt cnt +=1 for _ in queries: arr = [] prev_graph = [item[:] for item in graph] for i in range(_[0],_[2]+1): for j in range(_[1],_[3]+1): if j == _[1] and i != _[2]: graph[i-1][j-1] = prev_graph[i][j-1] continue if j == _[3] and i != _[.. 2022. 11. 26. 2021 Dev-Matching: 웹 백엔드 개발자(상반기) - 로또의 최고 순위와 최저 순위 def solution(lottos, win_nums): cnt = 0 answer = [0,0] zero = lottos.count(0) for i in lottos: if i in win_nums: cnt += 1 if cnt == 6: return [1,1] if cnt == 0 and zero == 0: return [6,6] if zero == 6: return [1,6] answer[0] = 6-cnt-zero+1 answer[1] = 6-cnt+1 return answer 2022. 11. 26. 이전 1 2 3 4 5 6 7 8 ··· 13 다음