프로그래밍 293

Error computing cache key - CircleCi

Circle Ci상에서 아래와 같은 오류를 만날 수 있다. error computing cache key: template: cacheKey:1:30: executing "cacheKey" at 대충 package-lock.json이 없어서 발생하는데, 추가해주면 해당 오류를 수정 할 수 있다. ref. https://stackoverflow.com/questions/64311553/error-computing-cache-key-on-circle-cl-when-i-setup 혹은, circleCi 설정 파일에서 pkg-manager를 yarn으로 바꿔서 하면 될 것 같기도 한데, 테스트 해보진 않았다.

프로그래밍 2022.08.03

코드스피츠 77 - ES6+ 기초편 6회차 (Generator, Promise, Async/Await)

Generator const infinity = (function*() { let i = 0; while(true) yield i++; }) console.log(infinity.next()) yield를 이용하면 블록을 중간에 끊어주는 효과가 발생 => JS에서는 하나의 문들을 Record로 만들어 주고, 해당 레코드를 실행 할지 말지를 결정 하게 됨. suspension, generator, command pattern등 여러 가지 개념들이 설명 되어 나오는데, 각각을 잘 이해하는게 중요하다. gererator + async + executor generator => 흐름을 멈춰준다. const profile = function*(end, next, r) { const userid = yield $...

lambda 아키텍처 vs kappa 아키텍처

FullStack으로 일 하다가, 팀의 규모가 20여명 정도로 커지는 바람에 FE/BE를 나누게 되면서 작년부터 저는 BE영역에서 일 하고 있습니다. 그러다 보니 데이터 관련한 아키텍처들에 관심이 많아졌고, 어떻게 하면 이해가 쉬운 구조이면서 이슈 없는 데이터 플로우 구조를 만들 수 있을까 고민 하고 있습니다. 그러던 와중에 생소한 용어를 듣게 되어 간단하게 공유하고자 합니다. Ref. https://www.credera.com/insights/modern-data-architecture-an-overview-of-lambda-and-kappa-architectures https://www.qlik.com/blog/lambda-or-kappa-the-need-for-a-new-data-processing..

프로그래밍 2022.04.12

Maven: Blocked mirror for repositories 이슈

Maven 3.8.1버전부터 해당 오류가 발생하기 시작하고, http로 된 repository를 차단하기 때문에, 디펜던시를 못가져온다. 방법은 여러가지가 있는데, 제일 좋은 방법은 private repository를 https를 지원 하게 하는 것이다. 그 외는 간편한 방법은 maven 버전을 내리면 된다. ❯ brew install maven@3.3 # 3.3 버전으로 설치 ❯ which mvn /opt/homebrew/opt/maven@3.3/bin/mvn intelliJ IDEA에 maven 항목을 찾아서, 경로를 바꿔주면 된다. 레거시 환경에서 자주 있는 일이다..

Volta?! (JavaScript command line tool)

volta (JavaScript command line tool) 원래 node 버전 매니저로 nvm을 제일 많이 썼다. 실제 실무에서도 물리서버에서 쓰거나, jenkins(유물 같지만, 실무에서도 짱짱하게 잘 썼다. 현재는 github action을 쓰고 있다.)에서도 nvm을 설치해서 쓰곤 했는데, 이제 로컬에서는 volta를 쓴다. 쓴지는 좀 됐다. volta를 쓰는 이유는 nvm보다 훨씬 빠르다. 인터랙션이 훨씬 빨라서 쓰게 되었고, nvm 보다 더 가벼운 느낌의 Node 버전 매니저는 n이라는 것도 있는데, 잠시 쓰다가 바로 volta로 왔다. volta install # install Volta curl https://get.volta.sh | bash # install Node volta i..

코드스피츠 77 - ES6+ 5회차 (Block, Non-Block & Sync, Async)

코드스피츠 77 - ES6+ 5회차 (Block, Non-Block & Sync, Async) Block, Non-Block Flow를 막고 있는 것을 Block이라고 하고, 그런 상태를 blocking(상태)로 표현 한다. 업계 표준이 존재함. 그 표준 시간 동안 멈춰 있으면, Blocking/Non-Blocking으로도 볼 수 있다. Flow is blocking for(const i of (function*() { let i = 0; while(true) yield i++; })()) console.log(i); // script timeout // 플랫폼의 안정성을 위해 블록 되는 시간이 길면 강제 종료 시킴. Blocking function 점유하는 시간만큼 블록을 일으키는 함수 const f ..

코드스피츠 77 ES6+ 4회차 노트

Complex recursion 단순한 배열을 루프인 경우는 간단히 이터레이션을 작성할 수 있음. { [Symbol.iterator]() { return this; }, data: [1,2,3,4], next() { return { done: this.data.length == 0, value: this.data.shift() } } } 문제는 다층형 그래프는 어떻게 이터레이션을 할 것인가? { [Symbol.iterator]() { return this; }, data: [{ a: [1,2,3,4], b: '-'}, [5,6,7], 8, 9], next() { return /// 어떻게 작성 해야 할까????? } } { [Symbol.iterator]() { return this; }, data: [..

코드스피츠 77 ES6+ 3회차 노트

코드스피츠 77 - ES6+ 3회차 interface 인터페이스란 사양에 맞는 값과 연결된 속성키의 셋트 어떤 Object라도 인터페이스의 정의를 충족시킬 수 있다. 하나의 Object는 여러개의 인터페이스를 충족시킬 수 있다. interface test test라는 키를 갖고 값으로 문자열인자를 1개 받아 불린 결과를 반환하는 함수가 온다. { test(str) { return true; } } interator interface next라는 키를 갖는다. 값으로 인자를 받지 않고, IteratorResultObject를 반환하는 함수가 온다. IteratorResultObject는 value와 done이라는 키를 갖고 있다. 이 중 done은 계속 반복할 수 있을지 없을지에 따라 불린값을 반환한다. ..

반응형