문제 설명2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.제한 조건행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.곱할 수 있는 배열만 주어집니다.입출력 예arr1arr2return[[1, 4], [3, 2], [4, 1]][[3, 3], [3, 3]][[15, 15], [15, 15], [15, 15]][[2, 3, 2], [4, 2, 4], [3, 1, 4]][[5, 4, 3], [2, 4, 1], [3, 1, 1]][[22, 22, 11], [36, 28, 18], [29, 20, 14]] 문제 풀이행렬의 곱셈 공식을 그대로 적..
Routing이란? 라우팅(Routing)은 네트워크 상에서 경로를 선택하는 프로세스 또는 그 행위를 일컫는 말이다. SPA에서 Routing을 사용하는 이유SPA에서 태그를 사용할 경우 페이지가 새로고침되며 화면 깜빡임이 발생한다. 다시 말해서 페이지 전체가 새롭게 로딩되는 것인데, 이는 사용자 경험 측면에서 굉장히 좋지 않다.그렇다면 모든 페이지를 초기 로딩 시점에 전부 렌더링하고, JS 코드로 페이지 전환만 시켜주면 되는거 아닌가? 라는 의문이 생길 수 있는데, 이 경우 생기는 다양한 문제점들이 있다.1. 초기 로딩 시간 증가페이지가 많아질수록 초기 로딩 시간이 길어진다. 또한, 모든 페이지가 로딩될 때까지 기다려야하므로, 사용자 경험 측면에서 좋지 않다.2. 메모리의 사용량 증가클라이언트 측 ..
Zustand를 사용해보자!프로젝트에서 사용할 기술 스택을 정하는 과정에서 프론트엔드 영역의 전역 상태 관리를 위해 Zustand를 사용하기로 하였다.프로젝트에서 사용하게 된 배경은 우선 최근 트렌드에 맞는 기술이라고 생각했으며, 금방 배울 수 있기에 같이 프로젝트를 진행하는 팀원들(이제 막 리액트를 배우는 팀원도 있다.) 입장에서 사용하기도 편리할 것이라고 생각했다. 우선 필자는 React에선 Redux, Recoil를, Vue3에선 Pinia를 사용해 본 경험이 있다.Redux, 특히 미들웨어 부분에서 어려움을 많이 느껴 한동안 Recoil을 주로 사용했는데 마침 최근 떠오르는 Zustand에 대해 궁금하기도 했고 이번 기회를 빌어 Zustand를 한 번 사용해보고자 한다. 1년 간의 주 단위 N..
Primitive TypeNumberBigIntStringBooleannullundefinedSymbol(ES6)Reference TypeArrayFunctionRegExpSet / WeekSet (ES6)Map / WeakMap (ES6)Primitive Type 변수 할당var a;a = 'abc';a 라는 변수에 값을 할당할 때 메모리에서 일어나는 과정을 살펴보자.힙과 스택에 대한 부분은 제쳐둔 채, 그냥 ‘메모리’ 라는 관점에서만 보려고 한다. 우선 a 라는 변수를 선언했으므로 메모리의 임의의 공간(ex. 주소 1003번)에 a 라는 값을 넣는다.다음으로 a 에 'abc' 라는 값을 할당했으므로, 이제 a 에 'abc' 라는 값을 넣어줘야 한다. 이때 1003번지의 데이터에 값을 바로 넣지 않고,..