분류 전체보기(222)
-
[정리] 객체,배열 깊은 복사하기
요약: JS에서 깊은 복사를 하는 방법은 라이브러리를 사용하지 않는 이상, JSON을 사용하는 방법 뿐이다. 1. slice 메소드 - nested하지 않은 배열에서 얕은 복사를 수행 - 얕은 복사가 수행된다 2. spread operator - 내부적으로 iterator-looping을 수행, 얕은 복사가 수행된다. 3. Object.assign - object.assign은 첫번째 args에 두번째 value를 담는 것으로 복사를 수행한다. - 얕은 복사가 수행된다. 4. JSON.parse와 JSON.stringify - 객체를 문자열로 바꿨다가 그대로 담으므로 nested도 간단하게 복사 가능 - 객체를 문자열로 바꾼다는 것의 뜻은, primitive type을 다룬다는 것이고, 이 때문에 깊은 ..
2021.02.03 -
[Array] two sum
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. 배열과 target이라는 정수가 주어질 때, 배열의 원소 두개를 더해 target이 될 수 있다면, 몇번째 자리의 원소 두개를 더했는지 리턴하라는 문제. 아무래도 시간복잡도가 중요한 문제가 되겠다. 처음에는 target을 기준으로..
2021.02.02 -
[Tree] Diameter of Binary Tree
Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root. 트리를 순회하면서 최대 길이를 구하라는 문제이다. 예를들어 그림과 같은 트리가 있다면, 최대길이는 4->2->1->3 또는 5->2->1->3으로 3일 것이다. 1) 하나의 루트 노드를 기준으로 보면, left까지의 최대 길이에 1을 더한값과, right까지의 최대길이에 1을 더한값이 root의 최대 길이가..
2021.02.02 -
[정리] Virtual Scroll과 Infinity Scroll
참고: yeoulcoding.tistory.com/171 [React] 가상스크롤 구현 (1) Lab은 최신 기술 스택이나, 실험적인 문법, 라이브러리들을 테스트하고 적용해보는 섹션입니다. Overview 프레임워크를 떠나서, 리스트는 모든 애플리케이션에 필수로 구현되어야 하는 기능 중의 yeoulcoding.tistory.com 많은 양의 리스트 데이터를 화면에 그리는 경우, 모든 항목을 그리면 성능상 문제를 초래한다. 즉, 10만개의 데이터를 그리기 위해 10만개의 DOM노드를 그리려고 하면 Call Stack size error가 발생한다는 것이다. 따라서 화면에 직접적으로 보여지는 부분만 그리고, 나머지 부분은 가상으로 그려내는 것이 Virtual Scroll의 목표이다. 실제로 화면에서 보여지는..
2021.02.02 -
[정리] Artillery를 이용한 부하테스트
Command yarn artillery quick --count 50 -n 30 apiEndpoint 이때 count는 유저수, n은 한명의 유저당 요청수이다 apiEndpoint에는 주소를 적는다 요청 응답에 대한 최대,최솟값과 분포를 확인할 수 있다 Artillery의 장점은 이러한 테스트를 시나리오화 할 수 있다는 것에 있다. config에는 타겟과 요청 빈도를, 시나리오에는 요청 flow를 작성한다 조금 확장해보면 이렇게 시나리오를 만들 수 있다 이때 테스트에 사용할 데이터는 payload에 정의한다. 예시의 경우는 get->post->get 순서로 테스트가 진행된다 capture는 post 시나리오에서 받은 data1이라는 결과물을, newData라는 이름으로 다음 시나리오에 보낸다. 최종적으..
2021.02.01 -
[정리] Jest를 이용한 Restful API 테스트
Restful API는 Create, Read, Update, Delete 명령을 수행한다 각 행위에 대해 기본적으로 테스트 해야 할 기능이 정해져 있으면, 그에 따른 루틴이 있다. 또한 모든 행위는 기능을 위한 유닛 테스트 -> 라이브러리, DB접근 등 실제 사용 환경을 포함한 통합테스트 과정을 거친다. 1) 시작전 이 포스팅에서 RestAPI의 기본기능 예시는 한번의 쿼리를 기준으로 한다. 예컨데 Id로 한개의 데이터를 find하는 API의 경우, 모델을 대상으로 데이터 하나를 찾는 로직만 작성하여 테스트한다 또한 Restful API는 전달객체 req, res와 미들웨어 next를 args로 갖는다. 그리고 특정 DB 모델을 대상으로 한다. 따라서 해당 객체들에 위와 같은 Mocking이 필요하다...
2021.02.01