목록전체 글 (188)
포도가게의 개발일지
Nest - Nest는 node.js를 효율적으로 서버측 어플리케이션을 확장 가능하게 빌드해주는 프레임워크이다. code snippet - 모듈처럼 일부 코드의 한 부분 현재 Nest Node 최소버전 >= 10.13.0, except for v13 Setup $ npm i -g @nestjs/cli $ nest new project-name Yarn vs Npm 속도 npm은 pakage 설치시 순차적으로 pakage를 설치하는 반면에 yarn은 병렬적으로 pakage를 설치하여 좀 더 빠르게 설치할 수 있다. 보안이슈도 있었지만 npm도 pakage-lock.json이 생기면서 이 부분에 대해서는 해결된 것 같다. 우리회사는 yarn으로 pakage관리를 하기 때문에 yarn command 사이트를 ..
RxJS? - 이벤트 기반 프로그래밍에서 함수형 프로그래밍을 이용해 보다 선언적으로 이벤트를 처리할 수 있도록 도와준다? - RxJS는 모든 이벤트를 observable로 추상화하여 시간에 따른 스트림으로 간주할 수 있게 된다. 그리고 각 이벤트가 observer(이벤트 핸들러)에게 전달되기 전에 map, filter 등의 operator를 이용해 이벤트를 필요한 형태로 재가공하여 observer에게 전달할 수 있다. 일반적인 이벤트 처리 방식 document.addEventListener('click', () => console.log('Clicked')); RxJS 방식 import { fromEvent} from 'rxjs' //fromEvent를 이용하여 observable 객체로 만든다. con..
Blob? - Binary Large Object - 바이너리 형태(이진 형태)로 큰 객체를 저장함 - 여기서 큰 객체란 즉 이미지, 비디오 사운드 등과 같은 멀티미디어를 가리킨다. - 대개 데이터의 크기, MIME 타입을 알아내거나, 데이터를 송수신을 위한 작은 blob 객체로 나누기 위해 사용 - blob의 경우 4GB의 이진 데이터를 저장할 수 있다.ㄸ const newBlob = new Blob(array, options); array property 1. ArrayBuffer 2. Unit8Array 3. DOMString var blob = new Blob([typedArray], {type: 'application/octet-binary'}); var audioBlob = new Blob([..
https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch04s19.html Regular Expressions Cookbook, 2nd Edition 4.19. Validate Password Complexity Problem You’re tasked with ensuring that any passwords chosen by your website users meet your organization’s minimum complexity requirements. Solution The following regular expressions check many … - Selection from www.oreilly.c..
SSE? Server Sent Event의 약어로 서버의 데이터를 실시간으로, 지속적으로 Streaming하는 기술 웹 표준으로써 IE를 제외한 모든 브라우저에서 지원됨 Why? 기존에는 서버의 변경된 data를 업데이트 해주기 위하여 polling을 사용하여 가져왔지만 SSE는 1회성 데이터를 주고받은 뒤 종료하는 것이 아닌 연결상태를 유지하고 계쏙해서 데이터를 보내는 경우다 Websocket도 있는데 왜 SSE? 1. websocket은 대표적으로 양방향으로 클라이언트와 서버의 지속적인 통신이다. client도 데이터를 서버에게 보낼 수 있다는 것이다. 하지만 SSE는 바로 클라이언트가 굳이 서버에게 데이터를 보낼필요가 없을때 빛을 발한다.(단뱡향) Websocket은 http를 websocket 프..
IAM IAM을 사용하면 직원이 많은 조직에 단일 계정으로 여러 사용자 생성및 관리가 가능 사용자가 버킷이나 객체에 액세스 할 수 있는 권한을 중앙 집중식으로 관리 가능 IAM정책은 계정 내의 사용자에게만 S3 액세스 권한을 부여 가능 권한 경계를 사용하여 직원이 만들고 관리하는 IAM 보안 주체에 부여할 수 있는 권한을 제어할수있습니다. IAM role은 제 3자 외부 계정이 장기적인 자격증명 사용자의 액세스키 공유 없이 AWS 리소스에 액세스 할 수 있도록 하는 메카니즘을 제공합니다.(계정간 공유할 IAM role가능) 제 3자 third party에게 정보를 제공해주기위해 해당 서비스에 접근권한을 줄 때 cross-account role을 부여해줌으로써 외부 aws계정에서 서비스에 접근을 하게 할 ..
Intersection vs union type Union type check interface Bird { fly(): void; layEggs(): void; } interface Fish { swim(): void; layEggs(): void; } declare function getSmallPet(): Fish | Bird; let pet = getSmallPet(); pet.layEggs(); // Only available in one of the two possible types pet.swim(); Property 'swim' does not exist on type 'Bird | Fish'. Property 'swim' does not exist on type 'Bird'. inters..
pipe() : pipe 함수는 함수로 인자를 받아 함수들을 합성해 하나의 함수를 리턴한다., 받은 함수들을 연속적으로 실행해주는 함수를 리턴하는 함수 const pipe = (...funcs) => arg => funcs.reduce((a, f) => f(a), arg); // 위에서부터 차례대로 return하여 다음 함수에 영향을 줌 const p = pipe( a => a + 1, a => a + 10, a => a + 100 ); console.log(p(0)); // 111 Class-transformer 설치 $ yarn add class-transformer $ yarn add reflect-metadata plainToClass method import moment = require('mo..