본문 바로가기

JS & TS7

[sharp] VipsJpeg: Invalid SOS parameters for sequential JPEG sharp는 이미지 프로세싱에 있어 사용되는 라이브러리로 서비스에서 이미지 업로드 기능을 지원하는 경우 이미지 사이즈를 줄이기 위해 자주 사용된다. 이번 포스팅에는 sharp 사용 시 마주친 오류와 어떻게 처리하였는지에 대해 정리해보겠다. 나의 경우 sharp를 업로드한 이미지를 조회 시 리사이징하기 위해 사용하고 있다. CloudFront + Lambda@Edge 스택을 사용하여 업로드한 이미지 조회 시 sharp를 사용하여 리사이징 된 이미지를 생성하고 있다. (참고: AWS 인프라 위에서 채팅 이미지 업로드부터 조회까지) 기능 오픈 이후 문제가 없었는데 갑자기 아래와 같이 VipsJpeg: Invalid SOS parameters for sequential JPEG 라는 오류 메세지가 나왔다. 관련.. 2022. 10. 2.
Class method vs field function (2020-06-17에 작성된 글입니다) Javascript와 같은 함수를 일급 객체(first class citizen)로 취급하는 언어는 함수를 값처럼 사용할 수 있기 때문에 온갖 곳에 사용할 수 있다. 그러면 class의 field에 함수를 사용하는건 어떨까?? 아래 Typescript 코드를 보자 class Person { constructor( private name: string ) {} // method hello(): void { console.log(`Hello. My name is ${this.name}!`); } } new Person('Chris').hello(); // Hello. My name is Chris! class Person { constructor( private na.. 2021. 5. 29.
AdminBro로 Nest.js admin 쉽게 만들기 (2020-09-13에 작성된 글입니다) https://github.com/SoftwareBrothers/adminjs GitHub - SoftwareBrothers/adminjs: AdminJS is an admin panel for apps written in node.js AdminJS is an admin panel for apps written in node.js - GitHub - SoftwareBrothers/adminjs: AdminJS is an admin panel for apps written in node.js github.com 를 사용하세요. 개발을 할 때 따로 Admin 까지 개발해야한다는 것은 할 일이 많은 개발자들에게 부담이 되곤 하는데, Django framework 같은.. 2021. 5. 29.
WebStorm으로 TypeScript debug 모드 사용하기 (2019-12-17에 작성된 글입니다) WebStorm을 비롯한 JetBrains IDE를 사용할 때 강력한 debug 모드를 제공한다. 이번 포스팅에서는 TypeScript을 사용할 때 WebStorm으로 debug 모드 사용법을 알아보겠다. 먼저 빈 디렉토리를 생성하여 pacakage.json, tsconfig.json을 생성하자 $ npm init -y # init npm project $ tsc -init # init typescript config 그리고 실행할 간단한 ts 파일 2개를 생성한다. // hello.ts export default function hello(name: string): string { return `Hello ${name}`; } // index.ts import .. 2021. 1. 5.
TypeScript ESLint 적용하기 (+ Airbnb) (2019-10-09에 작성된 글입니다) 토이 프로젝트 같은 경우 혼자 작업하기 때문에 코드 스타일이 거의 일관되지만 협업을 하면 모두 각자의 코딩 취향이 있기 때문에 코드 스타일이 정해지지 않았다면, 코드에 개발자의 개성이 가득 남을 것이다. 개인적으로 팀 프로젝트엔 개발자의 개성이 적게 들어가고, 일관화되는 편이 좋다고 생각하기 때문에 linting tool을 사용하는 것이 좋다고 생각한다. 그런 의미로 이번에 Typescript에 lint를 적용하기 위해 TypeScript ESLint를 설정하는 법에 대해 알아보겠다. 굳이 ESLint를 사용하지 않고 TSLint라는 선택지도 있지만 TSLint는 곧 deprecated 될 예정이기 때문에 TSLint는 고려하지 않았다. (https://githu.. 2021. 1. 5.
Nest.js Docker image 만들기 (2020-03-23에 작성한 글입니다.) Nest.js 기본 프로젝트를 Docker image로 만들어보고 해당 image를 container로 실행시키는 과정을 알아보자 코드 예제는 여기에 있다. 1. 프로젝트 생성 먼저 Nest.js CLI를 통해 프로젝트를 생성한다. $ nest new nestjs-docker 2. Docker image 생성을 위한 세팅 다음 Docker image를 만들기 위해 프로젝트 디렉토리에 다음과 같이 Dockerfile을 생성한다. # Step 1 ## base image for Step 1: Node 10 FROM node:10 AS builder WORKDIR /app ## 프로젝트의 모든 파일을 WORKDIR(/app)로 복사한다 COPY . . ## Nest... 2021. 1. 2.