avatar
글
205
태그
112
카테고리
24
Archives
Tags
Categories
List
  • AWS
  • Algorithm
  • Frontend
Link
About
LogoStudyYeong
Archives
Tags
Categories
List
  • AWS
  • Algorithm
  • Frontend
Link
About

StudyYeong

[AWS] DLQ(Dead Letter Queue) 리드라이브
작성일2023-05-23|AWS
DLQSQS에서 DLQ(dead-letter queue)란 성공적으로 처리되지 않은 메세지를 담고있는 큐를 말한다. DLQ는 자동으로 설정되는 것은 아니고, 일단 큐를 생성한 후 해당 큐를 다른 큐의 DLQ로 설정하여 사용할 수 있다. DLQ도 소스 큐와 같은 유형의 큐여야 한다. FIFO 큐의 DLQ는 FIFO 큐가 되어야 하는 것이다. (스탠다드 큐도 같다) DLQ는 큐 생성 시에도 설정할 수 있고 생성 후에도 큐 편집 메뉴의 배달 못한 편지 대기열에서 설정 가능하다. DLQ 리드라이브 정상 처리되지 못한 메세지를 DLQ에서 다른 큐로 보내는 것을 ‘리드라이브’라고 한다. 큐 리드라이브는 원래 메세지를 처리하는 소스 큐로 보내는 것이 일반적이지만 다른 큐에서 처리되도록 할 수도 있다. DLQ로 지정된 큐는 콘솔에서 DLQ 리드라이브 버튼이 활성화 된 것을 확인 할 수 있다. 이 때 메세지 처리 정책을 정할 수 있다. maxReceiveCount는 최대 재처리 횟수를...
[AWS] aws-sdk v3 마이그레이션 (Node.js 18.x 런타임)
작성일2023-05-18|AWS
serverless로 Labmda를 컴파일하는데 aws-sdk v3를 사용하라는 warning이 계속 나타나서 이참에 업그레이드를 하기로 했다. AWS에서 sdk-v3로 코드를 바꿔주는 커맨드가 있긴한데 난 그걸로는 부족해서 이참에 리팩토링도 진행했다.v3로 버전업 되면서 달라진 점이 몇 가지 있는데 장점이 많아 업그레이드 할 시간이 있다면 바꿔보는 게 좋을 것 같다. modular package이전에는 aws-sdk 라이브러리 전체를 import해서 사용해야 했다. 1import {SNS} from "aws-sdk"; 이제 필요한 모듈만 import해서 사용할 수 있다. 1import { SNSClient } from "@aws-sdk/client-sns"; 이렇게 전체 라이브러리가 아닌 modular package를 사용하면 전체 번들러의 크기가 줄어들기 때문에 성능 향상에 도움이 될 수 있다....
[Error] Typescript process.env undefined 이슈
작성일2023-05-18|Error
아무 세팅없이 process.env를 사용하면 그 타입은 string|undefined이다. 타입스크립트가 실제로 그 환경 변수가 있는지 알 수 없기 떄문이다. 그래서 타입에러가 가끔 발생한다. 12345678const dynamoDBClient = new DynamoDBClient({ endpoint: process.env.DYNAMO_ENDPOINT, region: process.env.REGION, credentials: { accessKeyId: process.env.ACCESS_KEY, secretAccessKey: process.env.SECRET_ACCESS_KEY, }, }) 이렇게 작성할 경우 DynmoDBClient 생성자 파라미터 옵션이 모두 string으로 되어있기 때문에 타입에러가 발생한다. TS2322: Type ‘string | undefined’ is not...
[CS] Singleton pattern(JS)
작성일2023-05-16|CS
Singleton pattern은 생성자가 여러 차례 호출되더라도 실제 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초 생성자가 생성한 객체를 리턴하는 디자인 유형이다. 주로 공통된 객체를 여러개 생성해 사용하는 Database Connection Pool과 같은 상황에서 많이 사용된다. 몇 가지 단점도 있는 패턴이다. Single responsibility 원칙을 저해한다. 두 가지 문제를 한 번에 해결해버리는 패턴이다. 한 가지는, ‘하나의 클래스는 하나의 인스턴스만 가질 것’ 다른 문제는 ‘단 하나의 클래스 인스턴스로 글로벌 액세스 포인트를 제공할 것’이다. 유닛 테스트를 작성하기 힘들어진다. 글로벌 변수의 현재 상태는 실행 순서에 따라 값이 달라지기 때문이다. 또한 글로벌 인스턴스이기 때문에 테스트 중 다른 컴포넌트가 상태를 변화시킬 수 있어 디버깅이 어려워질 수 있다. 자바스크립트에서 singleton pattern을 구현하는 방법은 여러가지가...
[AWS] serverless AWS Labmda testing - SQS & DynamoDB
작성일2023-05-15|AWS
AWS Lambda 테스트 코드를 작성한다. 나는 serverless 프레임워크 위에서 작업을 진행하고 있다. SQS 테스트serverless 문서에 따라 ElasticMQ를 사용했다. ElasticMQ는 Amazon SQS와 호환 가능한 메시지 큐 시스템이다. Amazon SQS를 테스트 하고 싶을때도 많이 사용된다고 한다.
[Error] Serverless DynamoDB local 설치 이슈
작성일2023-05-15|Error
테스트를 위해 local DynamoDB를 serverless에 설치하려는데 에러가 발생했다. 1sls dynamodb install 설치 명령어를 입력하면 아래 에러가 발생하며 설치가 실행되지 않았다. Error: Error getting DynamoDb local latest tar.gz location undefined: 403 검색해보니 이미 많은 사람들이 겪고있는 문제였다. (Error getting DynamoDb local latest tar.gz location undefined: 403) 공식 해결법은 아직 없는 것 같고 라이브러리 코드를 조금 수정해서 해결할 수 있었다. 해결법node_modules/dynamodb-localhost/dynamodb/config.json 파일을 열어 download_url을 https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz로...
[React Native] 배포 및 릴리즈 기록
작성일2023-05-02|React Native
React Native로 개발한 앱을 여러번의 수정을 거쳐 빌드를 마치고 앱 스토어 심사를 기다리고 있다. 순탄하게 흘러갔던 과정이 단 하나도 없었던 것 같아 기록을 남겨놓으려고 한다. 빌드iOSiOS는 XCode 사용법이 익숙치 않아 초반에 어려움을 느꼈으나 한 번만 세팅만 잘 맞춰놓으면 그 뒤로 문제가 발생한 적은 없었던 것 같다. ‘Product > Scheme’ 설정에서 Build Configuration을 Release로 맞추고 ‘Product > Archive’를 눌러 실행하면 production 버전의 빌드가 시작된다. 정상적으로 빌드가 완료되면 Archive 히스토리와 함께 새로운 창이 뜬다. 배포할 버전을 선택하고 Distribute App 버튼을 누르면 배포가 진행된다. 앱 배포 및 TestFlight 기능을 사용하기 위해 App Store Connect를 선택했다. 다음 옵션도 대부분 App Store Connect에 관리를 위임하도록...
[React] ref 전달하기
작성일2023-04-20|React
React에서 자식 컴포넌트에 ref를 전달하려고 하면 오류가 발생한다. 123456789101112import { useRef, useEffect } from 'react'export function Parent() { const elementRef = useRef() useEffect(() => { // Does not work! console.log(elementRef.current) // logs undefined }, []) return <Child ref={elementRef} /> // assign the ref}function Child({ ref }) { // a new component return <div ref={ref}>Hello,...
[React] setInterval 내부에서 state 업데이트 하기
작성일2023-04-10|React
[Javascript] Closure란
작성일2023-04-07|Javascript
클로저란 함수의 레퍼런스와 함수를 둘러싼 state, 즉 lexical 환경을 합쳐서 부르는 말이다. 클로저는 내부 함수에서 외부 함수 scope에 접근할 수 있도록 해준다. JavaScript에서 클로저는 함수가 생성될 때마다 함수 생성 시점에 클로저가 생성된다. Lexical scoping아래 코드를 살펴보자. 123456789function init() { var name = "Mozilla"; // name 은 init에서 만들어진 local variable이다 function displayName() { // displayName() 은 내부 함수이다. 클로저를 형성한다. console.log(name); // 외부 부모 함수에서 만든 variable을 사용하고있다. } displayName();}init(); init()은 name이라는 local variable과...
1…345…21
avatar
Soyeong Choi
Personal IT Diary
글
205
태그
112
카테고리
24
Follow Me
공지
Life is not all beer and skittles.
최근 글
Redis Stream 알아보기2025-09-09
verdaccio private npm registry 구축하기2025-04-02
rollup.js2025-03-11
NodeJS 구조 및 성능 향상 시키기2024-12-02
serverless esbuild로 패키지 사이즈 줄이기2024-11-12
카테고리
  • AWS29
  • Algorithm14
  • CS4
  • Else10
  • Error10
  • Frontend13
  • Git1
  • GraphQL3
태그
InputType webpack AWS AppSync graphQL EC2 NestJS Aurora MySQL html Web Programming Cloudwatch Express.js Flask Handlebars Gulp.js API Gateway ElasticBeanstalk gulp-sass CloudFront 구현 GraphQL typescript git CodeDeploy Hexo uwsgi github page hexo nvm serverless Kinesis SPA BOJ Web Server jwt SQS ES6 Class component DynamoDB aws-lambda
아카이브
  • 9월 2025 1
  • 4월 2025 1
  • 3월 2025 1
  • 12월 2024 1
  • 11월 2024 1
  • 10월 2024 4
  • 3월 2024 3
  • 1월 2024 4
사이트 정보
글 수 :
205
방문자 수 :
총 조회수 :
마지막 업데이트 :
©2019 - 2025 By Soyeong Choi
프레임워크 Hexo|테마 Butterfly