예를 들어 게시물을 하나 만들 때 조건을 주고 싶다. 제목이 없으면 안 되고 내용이 없으면 안 되고 제목은 무조건 한글이어야 되고... 등등 이런 것을 사전에 확인해주는 것이 파이프다. Pipe란?파이프를 data의 transformation과 validation을 위해 사용된다. 컨트롤러 경우 처리기에 의해 처리된다.@Injectalble() 데코레이터로 주석이 달린 클래스이며 Nest는 메서드가 호출되기 직전에 파이프를 삽입하고 파이프는 메서드로 들어가는 인수를 수신해 동작한다.파이프는 두 가지의 유즈 케이스를 가지고 있다.Data Transformation : 입력 데이터를 원하는 형식으로 변환Data Validation : 입력 데이터를 평가하고 유효산 경우 변경되지 않은 상태로 전달하면 됨. 그..
Backend/Node.js
여태 express 길게 공부해왔다. 자유도는 정말 좋았지만 뭔가 딱딱함? 이 느껴지지 않았다. 그래서 NestJS라는 것을 알고 이를 공부해보려고 한다. 사실 TypeScript 공부도 이를 위한 빌드업이라고 할까...? 우선 NestJS란 뭔지 공식 사이트에서 간단하게 알아봤다.Nest (NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다.이것은 알겠다. 큰 특징은 다음에 있다. - 프로그레시브 자바스크립트 사용- TypeScript로 빌드되고 완벽하게 지원- OOP (객체 지향 프로그래밍 Object Oriented Programming)- FP (함수형 프로그래밍 Functional Programming)- FRP (함수형 반응형 프로그래밍 ..
프로필 사진의 변경을 담당하는 API에서 이미지를 그대로 받아와 저장소에 저장하기에는 용량이 너무 크다는 무리가 있었고 가지각색의 용량을 가진 이미지들을 반환해주는데 속도를 보장할 수 없었다. 나는 프로필 이미지를 받으면 프로필 상에 작게 표시해주고 크게 보여줄 일은 없기 때문에 이미지를 압축해 저장소에 저장을 하는 방법을 생각해보았다. sharp는 이를 도와주는 라이브러리이다.나는 sharp로 이미지 크기를 줄인 후 multer로 저장소에 저장하는 방식으로 구현을 했다. sharp를 설치해준다.npm install sharp// 혹은 (yarn을 사용한다면)yarn add sharp다음은 sharp를 importconst sharp = require("sharp") 형식은 아래와 같이 사용해주면 된다...