AWS Lambda에서 이미지 리사이징을 위해 sharp 라이브러리를 사용했을 때, 제목과 같은 오류가 발생할 수 있다. 이는 AWS Lambda의 아키텍쳐와 sharp 라이브러리의 아키텍쳐가 맞지 않기 때문에 발생하는 문제이며, 다음과 같이 node_modules에 sharp를 재설치하여 해결할 수 있다. [~] rm -rf ./node_modules/sharp [~] SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install --arch=arm64 --platform=linux sharp [~] 참고 sharp - High performance Node.js image processing sharp.pixelplumbing.com
AWS lambda 노드 런타임을 사용할 때, 공통 코드를 layer(계층)에 관리하고 있다면 다음과 같이 import하여 사용하게 된다. const myLibrary = require('/opt/myLibrary'); exports.handler = function(event, context) { myLibrary.greeting(); // hello! } 그러나 해당 코드를 로컬에서 테스트하는 경우, 계층에 포함된 라이브러리가 로컬 환경의 /opt 하위 경로에 존재하지 않으므로 모듈을 임포트할 수 없는 문제가 발생한다. jest를 사용하여 테스트하는 경우, jest.config.js에 다음과 같이 작성하여 문제를 쉽게 해결할 수 있다. module.exports = { moduleNameMapper:..
업무 도중에 Node.js로 다음과 같은 기능을 작성할 일이 있었다. 수 많은 Promise를 생성하되, 각각의 Promise는 1:1로 대응되는 stream의 end 또는 error 이벤트에서 상태가 결정된다. Promise.all로 작업이 완료되는 것을 기다린다. 후속 작업을 처리한다. 그런데 await Promise.all(promises); 에서 대기하던 중 Node.js 애플리케이션이 아무런 로그 없이 code 0으로 정상 종료되는 상황이 발생하였다. (물론 코드 전역에 try - catch를 걸어도 어떠한 에러도 잡히지 않았다.) 해당 문제의 원인은 다음과 같으며, 핵심은 stream의 에러 또는 스펙이 아닌 Node.js 동작 방식에 있었다. Node.js는 애플리케이션을 실행할 경우, 이벤..
. ├── app.js └── input.txt 요런 구조일 때, const fs = require('fs'); const { exec } = require('child_process'); // 요 부분은 본인이 원하는대로 후처리한다. // 후처리가 필요없으면 fs.readFileSync만 해도 무방하다. const text = fs.readFileSync('./input.txt', 'utf-8') .trim() .split('\n') .map(line => line.replace('\t', '=')) .join(';'); exec(`echo "${text}" | pbcopy`, ((error, stdout, stderr) => { console.log(stdout); })); 요런 식으로 pbcopy를..
변수 할당에서도 &&와 ||를 유용하게 사용할 수 있다. &&(AND) const temp = a && b : a가 있으면 b를 쓴다. let a; /* let a = undefined; // undefined가 출력된다. let a = null; // null이 출력된다. let a = ''; // 빈 문자열이 출력된다. let a = 0; // 0이 출력된다. let a = false; // false가 출력된다. */ const temp1 = a && 'ingnoh'; console.log(temp1); // undefined가 출력된다. a = 'monkey'; const temp2 = a && 'ingnoh'; console.log(temp2); // ingnoh가 출력된다. ||(OR) con..
- Total
- Today
- Yesterday
- JPA
- Database
- terraform
- AWS
- kotlin
- ffmpeg
- Docker
- IntelliJ
- Linux
- Git
- 코딩테스트
- mysql
- postgresql
- eureka
- pgloader
- etc
- javascript
- shell
- react
- Node.js
- Java
- dev
- Vault
- spring boot
- jQuery
- Puppeteer
- AWS IoT
- Gradle
- hashicorp
- Spring Cloud Config
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |