목록전체 글 (213)
포도가게의 개발일지
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..
queue model : SQS - 여러 producer가 queue에 message를 보낸다, 모든 메세지가 queue에 들어감, - consumer는 queue polling하여 message를 가져가서 작업을 처리함, queue 가 버퍼가 됨 - 어플리케이션을 분리하는데 도움됨, 메세지는 4일동안 queue에 저장됨, 컨슈머가 가져가고 queue에서 삭제 - sqs 256kb 미만이어야 한다. 재정렬에 노력해야함, - producer는 sdk를 이용하여 message를 보냄, - consumer는 sqs message 가져가고 -> 처리함 -> 그리고 deleteMessageApi를 이용하여 message없앰(at least once delevery) Visibility timeout : 특정 기간..
Serverless - 서버가 없는게 아니라 관리 안하는것 - 원격 관리되는 모든 것 포함, lambda, dynamodb, cognito, api gateway, s3, sns, sqs, kinesis, aurora Lambda - 클라우드내 가성 서버, 자동으로 auto scailing - 코드를 제공하고 가동됨, limited by time, run on-demand 작동안하다가 request들어오면 작동 - 다양한 프로그래밍 랭기지, aws cloud watch로 모니터링, per function 10Gb - Lambda container image를통해 어떤 컨테이너도 실행가능 - 메모리 늘리면 vCpu 늘어남 실행 시간이 15분 미만으로 줄어들지는 않습니다. 시간제한 Lambda의 최대 실행 ..
CloudFront - CDN, read performance 향상 목적, edge location 216 point, ddos protection, 방화벽 - s3 앞에 보통 흔한 패턴, 보안이 강화됨 OAI(s3 접근할때)사용, 어디서나 s3로 파일업로드 가능 - load balancer, ec2 instance ,s3 website, any http backend에 붙일수 있음 암호화 서명된 URL은 개별 파일에 액세스하려는 경우에 유용합니다. 서명된 쿠키는 여러 파일에 액세스하려는 경우에 유용합니다. CDN 작동방식 multiple origin origin group AWS GLOBAL Accelerator - aws edge location을 이용하여 aws 내부망을 이용한 초고속 access
RDS - 클라우드 관계형 데이터 베이스 서비스, sql - 인스턴스 안쓰고 rds 쓰는 이유, 지속적인 백업파일, 타이스탬프 복원, 모니터링 대시보드, read replicas로 읽기 성능 개선 - multi-az 로 고가용성, 수직 수평 스케일가능, ssh로 접근 불가, 백업 ebs(gp2 or io1)으로 제어 Rds backup - 자동으로 rds에 저장, 일일 트랜잭션 로그도 백업됨 5분마다 , - 스냅샵 수동으로 해서 원하는만큼 백업가능 rds auto scale - rds가 스토리지를 감지해서 자동으로 scale함 스토리지를 그래서 최댓값설정 필요 Read replica - 여러 팀이 db에 동시에 접근하고 싶을 때, read replica를 만들어 제공함으로써 퍼포먼스 성능을 올림 - 무조..
S3 - size가 확장가능, 파일은 버켓에 들어가고 버켓이름은 global하게 고유해야함 - 네이밍 규칙이 있음(소문자 , ip x 등..) - key가 파일의 전체 경로 - 오브젝트 값은 데이터 body이고 5tb까지 가능 그이상은 나눠서 multi part upload 수행 -> 파일이 100MB를 초과하는 즉시 멀티파트 업로드를 권장합니다. - version id를 가지고 있음, public object url을 통해 외부접근가능(하지만 block 되있음) - console에서 open 하면 미리서명된 url을 통해 접근 가능, - 버저닝 : 동일한 key를 이용해 파일을 업로드하면 덮어쓰지않고 버전을 입힘니다. 의도되지 않은 삭제로부터 예방가능 -> 모든 이전버전도 저장함 - 버저닝 안키면 버전..
ELB( Elastic load balacer) - SSl 을 이용하여 쿠키를 이용해 - 내가 직접 로드밸런스세팅하는거보단 비쌈 - 대신 ELB쓰면 통합하기가 쉬움 elb에서 health check를 통해 인스턴스에 상태를 꾸준히 확인하여 load balacing 최적화 일반적으로 health check url로 /health 공통으로 사용한다. 정상 status code를 200!!으로 알려줌 1. classic load balancer 2009 - layer4 tcp와, layer7 http & https를 지원한다. 2. application load balancer 2016 - 7 layer 지원, 타겟 그룹 설정, http/2 웹소켓 지원, http -> https 리다이렉트 지원, url or..