예를 들어, 다음과 같이 두 함수 foo, bar가 있다고 하자. const foo = (a: string, b: string, c: string) => { return `${a}-${b}-${c}` } const bar = (func: (a: string, b: string)=> string) => { return func('wow', 'amazing') } 이때, bar의 파라미터로 foo를 넘겨주고 싶은데, 파라미터 개수가 다르다. 따라서, foo의 첫 번째 파라미터는 'world'로 고정하여 bar에 넘겨주고 싶을 때, Function.bind(this, ...)를 사용할 수 있다. bar(foo.bind(this, 'world')) // wolrd-wow-amazing foo.bind(this,..
개요 너무 대중적인 웹사이트는 굳이 정리할 필요는 없다. 나중에 특정 기능이 필요해서 검색하면 나올법한 웹사이트는 정리할 필요 없다. 카테고리 위키 위키하우 일상생활에 밀접한 유용한 정보를 자세하게 제공 웹 도구 시간 Sleep Time 일어날 시간을 입력하면 가장 이상적인 자야할 시간을 알려줌 EpochConverter Epoch 및 유닉스 타임스탬프 변환 도구 이미지 편집 PIXLR 포토샵 작업을 할 수 있는 사이트 Photopea 플래쉬 없는 이미지 편집 사이트 MasterShot 웹 브라우저에서 간단한 동영상 편집 기능 제공 변환 ICO converter 이미지를 아이콘으로 변경해주는 사이트 PicAscii 이미지를 아스키 코드로 변경해주는 사이트 TinyPNG PNG 용량을 극한으로 줄여주는 사..
웹 앱에서 MariaDB, MySQL 등의 RDB와 통신할 때 보통 쿼리와 파라미터를 넘기는데, 사용하는 DB, 테이블, 칼럼이 많아지면 쿼리도 많아지게 되면서 나중에는 프로젝트에 쿼리 문자열로 가득차게 된다. TypeOrm 패키지는 쿼리 대신 객체와 클래스를 이용해서 DB와 통신할 수 있는 방법을 제공한다. 타입스크립트에서 기본 예제를 소개한다. 우선 프로젝트에 mysql, reflect-metadata, typeorm을 설치한다. $ npm install --save typeorm $ npm install --save reflect-metadata $ npm install --save mysql tsconfig.json 파일에 다음의 속성을 추가한다. { "compilerOptions": { "exp..
테스트 환경 이름 설명 CPU AMD Ryzen 7 1700 Memory DDR4 32GB 테스트 툴 autocannon autocannon Fast HTTP benchmarking tool written in Node.js www.npmjs.com 옵션 동시요청 : 2500 요청시간 : 30초 파이프라이닝 : 4 > autocannon -c 2500 -d 30 -p 4 127.0.0.1:8081 테스트 대상 (Node.js) express (Node.js) hyper-express Go Rust 테스트 방법 각 웹서버는 '/' path 만 구현되어 있으며, 요청 수신 시 Hello를 응답한다. 각 웹 서버 별 30초 동안 요청 처리 개수를 측정한다. 결과 예상대로, express가 가장 낮은 성능을 보..
설정 루트 디렉토리에 .npmrc 파일 추가하기 engine-strict=true package.json에 engines 속성 추가하기 { "engines": { "node": ">=14.16.0" } } 사용자 관점 리파지토리 클론 후 npm install 입력 (버전 옵션 조건을 만족하지 못한 경우) npm ERR! code EBADENGINE npm ERR! engine Unsupported engine npm ERR! engine Not compatible with your version of node/npm: js_test_01@1.0.0 npm ERR! notsup Not compatible with your version of node/npm: js_test_01@1.0.0 npm ERR! ..