예를 들어 게시물을 하나 만들 때 조건을 주고 싶다. 제목이 없으면 안 되고 내용이 없으면 안 되고 제목은 무조건 한글이어야 되고... 등등 이런 것을 사전에 확인해주는 것이 파이프다. Pipe란?파이프를 data의 transformation과 validation을 위해 사용된다. 컨트롤러 경우 처리기에 의해 처리된다.@Injectalble() 데코레이터로 주석이 달린 클래스이며 Nest는 메서드가 호출되기 직전에 파이프를 삽입하고 파이프는 메서드로 들어가는 인수를 수신해 동작한다.파이프는 두 가지의 유즈 케이스를 가지고 있다.Data Transformation : 입력 데이터를 원하는 형식으로 변환Data Validation : 입력 데이터를 평가하고 유효산 경우 변경되지 않은 상태로 전달하면 됨. 그..
Backend
여태 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") 형식은 아래와 같이 사용해주면 된다...
이전에 프로젝트를 진행하면서 회원의 정보를 하루가 지날 때마다 수정을 해야 하는 작업을 했어야 했다. 처음엔 어플리케이션을 돌리는 서버에서 배치 프로그램을 돌리거나 crontap을 돌려야 되나 싶었지만 찾아보니 mongodb는 친절하게 Trigger라는 기능을 제공해 주고 있었다. 나는 예약 작업만 걸어주면 mongodb가 알아서 쿼리를 정해준 시간에 돌려준다. 방법이 복잡하지 않아서 남겨두려고 한다. 내가 할 작업은 우리나라 기준 0시마다 "test"라는 DB의 모든 User의 quizChance를 3으로 바꿔줄거다. 우선 웹 mongodb atlas 관리 페이지로 들어가 준다. 그러면 위처럼 왼편에 "Triggers"라는 것이 있다. 저곳에서 trigger를 등록할 수 있다. "Add Trigger"..
이전 글[SSL] certbot을 이용한 Let's Encrypt SSL 인증서 자동 갱신 [SSL] certbot을 이용한 Let's Encrypt SSL 인증서 자동 갱신이전 글 [SSL] Certbot으로 SSL 무료 인증서 발급 프로젝트 진행 중 카카오 맵 API를 이용해 명소의 위치를 찍어주려고 한다. 하지만 로컬에서는 잘 보이지만 배포 환경에서는 보이지 않고 404를 받는jangbageum.tistory.comNginx가 설치 되어있고 실행중이라는 가정 하에 적겠다. $ sudo vim /etc/nginx/site-available/defaultvim 에디터를 이용해 default 파일의 server 부분을 아래와 같이 수정해준다.server { listen 80; s..
이전 글 [SSL] Certbot으로 SSL 무료 인증서 발급프로젝트 진행 중 카카오 맵 API를 이용해 명소의 위치를 찍어주려고 한다. 하지만 로컬에서는 잘 보이지만 배포 환경에서는 보이지 않고 404를 받는 이슈가 나타났다.... 설마 HTTPS 설정을 해야 되jangbageum.tistory.com저번에 certbot을 이용해 SSL 인증서를 무료로 받았으니 이번에는 자동 갱신을 해보려고 한다.Let's Encrypt의 SSL 인증서는 90일짜리 인증서이다. 그래서 90일이 지나기 전에 적어도 한 번은 인증서를 갱신해 주어야 한다. 직접 갱신하기갱신을 하기 전 갱신 과정에서 오류가 발생 하는지 아래 명령으로 테스트를 할 수 있다.$ certbot renew --dry-run테스트를 했고 문제가 없다..