$ ls -lt posts/ | sed -n 101,120p
SY Tech Blog_
-
Step Functions 작성하기
나중에 또 쓸 일이 있을 것 같아서 기록해둔다. SQS에 쌓여있는 Queue를 10초에 한 번씩 처리하도록 했다. Step 10초에 한 번 람다를 실행시키는 Step Functions Stemp Functions 에서 실행시키는 iterator 람다는 아래와 같다.
[cloud] -
Ubuntu18.04 CodeDeploy agent cli 설치
AWS 공식 문서에서는 Codedeploy agent 설치시 AWS Systems Manager를 사용할 것을 권장한다. 하지만 나는 온프레미스 서버에서의 간단한 세팅을 원하기 때문에 그냥 cli로 설치하기로 했다. 🥸 설치 사용중인 Ubuntu 버전에 따라 설치 커맨드가 달라지고 잘못 입력할 경우 패키지를 지웠다 깔…
[cloud] -
ElasticBeanstalk yarn 적용 및 Javascript heap out of memory 오류
ElasticBeanstalk에서 Node.js 엔진을 선택하면 default 패키지 매니저가 npm으로 설정된다. 대부분의 경우 npm이든 yarn이든 문제없이 실행되겠지만 내 프로젝트는 npm 실행시 에러가 발생했다. 관련 내용은 짧게 찾아봤는데 나중에 더 자세히 봐야겠다. 구글링을 하면 yarn을 설치하여 사용하는…
[troubleshooting] -
서비스 운영 서버 분류 (local, dev, stg, prod)
현재 내가 맡고있는 프로젝트는 CI/CD 구축이 되어있지 않고 번거로운 방법으로 배포를 진행중이다. 서비스 특성상 로컬 환경에서는 확인할 수 없는 기능들이 있어 CI/CD 구축의 필요성을 느꼈고 팀에 말씀드렸더니 그러려면 스테이징 서버도 필요하겠다고 하셨다. 스테이징 서버가 정확히 어떤 것이고 왜 필요한지 몰라서 정리해…
[cs] -
Ubuntu14.04 CI/CD 구축
Codedeploy agent 설치 agent 파일을 설치한다. ruby 설치 후 agent를 설치한다. 이 때 ruby 버전 2 이상이 필요하므로 레포지토리를 따로 추가 후에 설치해야 정상 진행이 가능하다.
[backend] -
[HTML] 모바일 디바이스에서 double-tap 줌인 disable
모바일 디바이스에서 더블탭 동작 시 화면인 줌인 되는 이벤트가 있다. 추가 구현중인 기능에 해당 동작이 방해가 되어 disable 하는 법을 찾아 기록해놓는다. meta 태그 추가 참고 Disable double tap "zoom" option in browser on touch devices
[frontend] -
암호화 해시 함수 / 메시지 인증 코드
암호화 해시 함수 해시 함수의 일종으로, 해시 값으로부터 원래의 입력값과의 관계를 찾기 어려운 성질을 가지는 경우를 의미한다. 성질 역상 저항성: 주어진 해시 값에 대해, 그 해시 값을 생성하는 입력값을 찾는 것이 계산상 어렵다. (일방향함수와 연관되어 있다.) 제 2 역상 저항성: 입력 값에 대해, 그 입력의 해시 값…
[security] -
helmet.js 버전업 이슈
helmet.js는 Express 앱에 보안을 위한 HTTP 헤더를 추가해 앱을 보호해주는 라이브러리다. 모듈 업데이트가 한참 적용되지 않은 프로젝트를 넘겨받아 업데이트를 진행했는데 버전 3 에서 버전 5로 버전이 확 뛰었다. helmet 버전 4에 추가된 미들웨어들이 앱 동작에 에러를 일으켰다. public asset…
[troubleshooting] -
Jest 경로 에러
테스트 코드를 실행하려고하는데 아래와 같은 에러가 발생했다. 서치를 좀 하다가 Jest 설정을 수정했는데 아래와 같은 에러도 발생했다. 결론적으로는 같은 원인으로 발생한 문제였다. 해결법 파일의 Jest 설정을 바꿔주면 된다. 참고 How to fix the ‘Cannot find module’ when importin…
[testing] -
TypeORM Query builder로 Join
TypeORM에서 서로 다른 테이블을 조인하여 값을 가져오는 작업은 Query Builder를 사용해야 한다. SQL query TypeORM
[backend] -
create-react-app 에러
문제 을 실행하려고 하는데 아래와 같은 에러로 실행이 되지 않았다. 옛날에 create react app을 설치한 적이 있어서 생기는 오류인 것 같다. 현재 컴퓨터에 설치된 패키지가 없음에도 설치된 패키지를 삭제하라는 메세지가 출력됐다. 해결법 이후에 다시 을 실행하면 정상적으로 동작한다.
[frontend] -
SSR & CSR 그리고 NextJS
SPA (Single Page Application) 현재의 페이지를 동적으로 작성함으로써 사용자와 소통하는 웹 애플리케이션이다. 연속되는 페이지 간 UX를 향상시킨다. 전통적인 Page LifeCycle은 1. Client에서 Server로 최초의 요청을 보낸다. 2. Server는 응답을 보내고 Client에서 화면…
[frontend] -
SQS Lambda Trigger
SQS Lambda Trigger란 Lambda trigger로 SQS를 등록할 수 있다. Standard 큐와 FIFO 큐 모두 지원한다. Lambda는 큐를 poll하여 가져온 큐 메시지로 동기적으로 Lambda 함수를 실행한다. Lambda는 batch안의 메시지들을 읽고 각 batch당 한 번씩 Lambda 함수…
[cloud] -
serverless 사용해보기
Serverless는 개발 프로세스를 단순화하기 위해 만들어졌다. AWS에서 Lambda를 작성한다면 각 Lambda마다 함수를 작성해야 하고 매번 환경 설정을 해야 한다. 그렇게 작성한 Lambda는 AWS 콘솔에서 다른 서비스와 연결시켜줘야 사용할 수 있다. 이런 과정을 간소화해주는 것이 Serverless Fram…
[cloud] -
Skipping start: DynamoDB Local is not available for stage Issue
Serverless로 serverless dynamodb local 플러그인을 설치 후 실행시 오류가 발생했다. serverless.yml 코드를 추가 후 다시 실행하면 해결된다.
[troubleshooting] -
CodeDeploy
CodeDeploy는 Amazon EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lambda 함수 또는 ECS 서비스로 애플리케이션 배포를 자동화하는 배포 서비스이다. 기존 코드 변경 없이도 사용이 가능하다. 장점 신속한 새 기능 출시 애플리케이션 배포 시 가동 중지 방지 수동 배포와 관련된 다양한 위험 없이 애플리케…
[cloud] -
AWS SAM init 에러
에러 명령어로 stage stack을 생성하던 중 에러가 발생했다. 해결법 정해진 해결법은 없다. 구글링을 하면 aws credential이 잘못 설정된 문제라고 하기도 하고 cloud formation에서 생성이 실패한 스택을 직접 삭제 후 재배포 하면 된다는 글도 있었다. 나는 두 가지 방법으로는 해결되지 않았고 c…
[troubleshooting] -
AWS SAM (Lambda Typescript로 작성하기)
SAM은 Serverless Application Model의 줄임말이다. 서버리스 애플리케이션을 빌드하는 데 사용할 수 있는 오픈 소스 프레임워크이다. 서버리스 애플리케이션이란 작업을 수행하는 데 함께 작동하는 Lambda 함수, 이벤트 소스 및 기타 리소스의 조합이다. 단순 Lambda 함수 그 이상으로, API,…
[cloud] -
Kinesis
Amazon Kineses를 사용하면 실시간 스트리밍 데이터를 손쉽게 수집, 처리 및 분석할 수 있으므로 새로운 정보에 신속 대응할 수 있다. Amazon Kineses에서는 기계 학습, 분석 및 기타 애플리케이션을 위해 비디오, 오디오, 애플리케이션 로그 데이터와 같은 실시간 데이터를 수집할 수 있다. 중요 특징 실시…
[cloud] -
[React Native] dotenv 사용하기
dotenv를 쓰려고 추가하다가 생각지도 못하게 시간을 잡아먹어서 정리해놓으려고 한다. 모듈을 사용하면 된다. react native dotenv Installation react native dotenv 모듈을 다운받는다. Configuration 이 모듈은 babel plugin 이라 설정 파일에 추가해줘야 한다.…
[mobile]