bobs 개발일지

Written by@bob
🐢 개발을 잡다하게 배워가는 중입니다. 자동화, 생산성, UX 및 성능에 관심이 많습니다.

GitHubLinkedIn

yarn workspace에서 nohoist 설정

Context yarn workspace의 루트에서 yarn으로 한번에 모듈을 설치했는데, subtree에서 참조하는 element-ui의 css파일을 실행시에 못 잡음 해결책 nohoist 옵션으로 element-ui만 서브트리에 두면 해결되었다…또르르 굳이 npm으로 다시 받아줄 필요가 없었던 것이다…

node + puppeteer를 heroku 서버로 배포하며 겪은 몇 가지 문제들

puppeteer는 heroku에서 기본적으로 돌지 않는다. heroku가 도는 ubuntu os에서 puppeteer를 돌리기 위한 라이브러리가 부족해서인데, heroku buildpack을 사용해 수동으로 모두 빌드해야 하는줄 알았으나… @jontewks라는 분이 만들어놓은 빌드팩이 존재했다. 링크는 여기 단 빌드팩 하나만 올리면 안되고, nod…

puppeteer 크롤링 중 querySelector return null 문제

puppeteer 사용 중 웹페이지의 중간 querySelector 어딘가에서 자꾸 null을 뱉었다. waitForSelector로 셀렉터 로드 될때까지 충분히 기다려도 timeout이 나는 상황. 처음엔 설마 봇을 막나 하고 봇 디텍션을 우회하는 방법을 사용해봤다 (링크) 그래도 안 되어서 계속 찾아보니, DOM TREE 중간 어딘가에 아이프레임이 …

webpack web worker 경로 설정

webpack을 사용할 때, 빌드 대상 디렉토리 (ex / ) 내에서 worker를 호출하면 올바르지 않은 mime type에 대한 에러가 뜨면서 워커가 제대로 로드되지 않았다. worker를 별도로 entry point를 지정해 다른 파일로 빌드하고, index.html에서 해당 스크립트를 각각 로드했다. 빌드 전 src에서는 미리 설정해놓은 publi…

gitlab ssh key permission 에러

Context Gitlab으로 저장소를 옮기고 ssh-key를 새로 추가했는데 계속 왠지모를 permission error가 난다 원인은 ssh-key의 비트 수… 기본으로 생성하면 2048이지만 GitLab에서는 4096이기 때문에 옵션으로 지정해 주어야 함 이렇게 생성하고, ~/.ssh/id_rsa.pub를 복사해서 gitlab에 붙인다

Heap과 HeapSort

Heap 이란? complete binary tree 이면서 heap property를 만족해야 함 complete binary tree(완전이진트리)가 뭔데? 다음과 같이 마지막 레벨을 제외하면 완전히 꽉 차있고, 마지막 레벨에는 가장 오른쪽부터 연속된 몇 개의 노드가 비어있을 수 있는 형태. 이와 반대로 full binary tree(포화이진트리)는 …

Quick sort

개요 분할: Pivot을 정하고, 배열을 pivot보다 작은 부분, 큰 부분으로 나눈다. 정복: 각 부분을 순환적으로 정렬한다. 합병: nothing to do 순서 정렬할 배열이 주어짐. 마지막 수를 Pivot으로 삼는다. 기준보다 작은 수는 기준의 왼쪽에, 나머지는 오른쪽에 오도록 재배치(분할) 한다. 기준의 왼쪽과 오른쪽을 각각 순환적으로 정렬한다.…

괄호 쌍 만들기

문제 괄호 쌍의 개수 n이 주어질 때, n개의 괄호 쌍으로 만들 수 있는 모든 가능한 괄호 문자열의 배열을 리턴하시오. 입출력 예 입력 출력 2 ”(())”, ”()()” 3 ’((()))’, ’(()())’, ’(())()’, ’()(())’, ’()()()’ 풀이 재귀를 이용해 푼다. 각 쌍의 수는 매개변수 n과 일치할 것이므로, base case…

재귀(recursion) 5

멱집합(Powerset) 임의의 집합 data의 모든 부분집합을 출력하라. 모든 가능한 갯수 찾기 문제 예시 2개의 경우의 수 (true or false); 2^4 = 16개의 가능한 부분집합. Recursive Thinking {a,b,c,d,e,f} 의 모든 부분집합을 나열하려면, a를 제외한 {b,c,d,e,f} 의 모든 부분집합들을 나열한다. 즉 …

재귀(recursion) 4

N Queens Problem 체스 판을 생각해보자 같은 열, 행, 대각선 상에 중복되지 않게 N개의 말을 놓아라. Back Traking 가장 최근에 내린 결정을 번복하는 과정 막다른 길에 도달했을 때, 가장 최근에 내린 결정을 번복해라. N개의 말을 모두 놓을 수 있는 위치를 찾았으면 그만둔다. 상태공간트리 모든 가능한 해를 포함하는 트리 즉 해가 존…