목록공부 (179)
저장을 습관화
배열 메소드 .some 배열의 각 엘리먼트에 대해서 검사한 후, 반환 값이 하나라도 true가 있는지 확인한다 하나라도 true가 있다면 true를 반환한다. 모두 false인 경우 false를 반환한다. || (or) 연산자와 같은 조건이다 기존 배열값은 변경되지 않는다 문법 arr.some(function(currentValue, index, array), thisValue)) 예시 var objArr = [{name: '철수', age: 10},{name: '영희', age: 10}, {name: '바둑이', age: 2}] console.log(objArr.some((item)=> item.age>5)); //true console.log(objArr.some((item)=> item.age>10..
DTO는 타입 유효성 검사 목적과, 데이터를 주고 받을때 규약(설계도)와 같이 안전하게 필요한 데이터만 통신하기 위해서 사용한다 예를들어 회원가입을 하는 도메인에서 필요한 데이터는 사용자의 이름, 이메일, 패스워드가 있다 하지만 request를 보낼 때 필요없는 데이터를 보낸다던지, 누락된 데이터가 보내는것을 체크하는 것이 DTO이다. 통신 데이터 규칙이라고 생각하면 좋다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/beRAWq/btswBEK17zV/SWioscvVdUpCsv9JkPq410/img.png)
준비물 - bcrypt, @types/bcrypt $ npm install bcrypt $ npm install -D @types/bcrypt 서비스 파일 import { Injectable, UnauthorizedException } from '@nestjs/common'; import { CatRequestDto } from './dto/cats.request.dto'; import { InjectModel } from '@nestjs/mongoose'; import { Model } from 'mongoose'; import { Cat } from './cats.schema'; import * as bcrypt from 'bcrypt'; @Injectable() export class CatsSer..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bTRcAG/btsv7WG34Im/oKuGts3wpolr3k9owjcXZK/img.png)
- 증상 NestJS + MongoDB(mongoose) 연습 도중 발생 export class Cat extends Document { ^ ReferenceError: Document is not defined - 원인 mongoose에서 Document 라이브러리를 import 하지 못해서 발생한 문제.. 위와 같이 작성하고 있었던 중 발생 Document가 다른 라이브러리처럼 import 되지 않았다고 불이 들어오거나 빨간 줄이 쳐있지 않아 import 문제인줄 몰랐다.. 괜히 다른 파일만 뒤적거렸네 Document 외에도 SchemaOptions도 mongoose가 아닌 @nestjs/mongoose에서 가져오고 있는 등 import 관련 문제가 많았다 VSC 확장프로그램 Auto Import -..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/waf1B/btsxLk5vXh1/hvq1V10SX3ElTdyOskMJ80/img.png)
express.js 에서는 .nev을 사용하려면 dotenv를 설치해야 하지만 NestJS에서는 @nestjs/config에 포함되어 있다. // .env 사용을 위한 nestjs config 설치 $ npm install @nestjs/config - app.module.ts import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ConfigModule.forRoot({ isGlobal: true })..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/N5pVn/btswBFQp0sG/GPlkkAiRjHLlKcoKq7rFf0/img.png)
관련 공식 문서 https://mongoosejs.com/docs/migrating_to_6.html#no-more-deprecation-warning-options Mongoose v7.5.3: Migrating to Mongoose 6 Please note: we plan to discontinue Mongoose 5 support on March 1, 2024. Please see our version support guide. There are several backwards-breaking changes you should be aware of when migrating from Mongoose 5.x to Mongoose 6.x. If you're still on Mongoose mongoos..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/o4tBK/btsv92TQAT2/UXJG790ryXI1QnfK4Qpnz0/img.png)
const 팩토리얼 = (num) => (num === 0 ? 1 : num * 팩토리얼(num - 1)); 추가 - 서로 다른 n개 중 m개를 뽑는 경우의 수 const 팩토리얼 = (num) => (num === 0 ? 1 : num * 팩토리얼(num - 1)); const cases = (n, m) => { return 팩토리얼(n) / (팩토리얼(n - m) * 팩토리얼(m)); }; console.log(cases(3, 2)); // 3 console.log(cases(5, 3)); // 10 console.log(cases(10, 8)); // 45
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bSowi2/btswbzX2jQo/bjX2BKOaN2BiGzonjqQnek/img.png)
자바스크립트가 기본적으로 지원하는 숫자, Number의 범위는 -(2^53)-1 ~ 2^53-1 까지이다. console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991 console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991 수가 이보다 커지면 '절대값이 2^53보다 크거나 같은 숫자 리터럴은 너무 커서 정수로 정확하게 표시할 수 없다' 라는 메세지가 나오며 입력한 숫자가 제대로 계산되지 못하는 에러가 발생하게 된다. console.log(18446744073709551615); // 18446744073709552000 console.log(287346502836570928366); // 2873465028365..
파이프와 미들웨어 둘 다 웹 어플리케이션이 클라이언트로부터 데이터를 받아, 데이터를 중간중간 가공하여 처리하는 역할을 한다. 단, 사용 목적과 패턴에서 차이가 있다 - 사용 목적 middleware: 요청과 응답 객체에 접근하여, 로깅, 인증, CORS 설정 등의 공통 작업을 처리하는데 사용된다. pipe: 데이터 유효성 검사, 형변환, 예외 처리 등을 수행하며, 잘못된 요청을 걸러내거나, 파라미터를 올바른 형태로 변환하여 컨트롤러에 전달하는데 사용된다 - 실행 순서 middleware: 요청이 들어온 후, 컨트롤러 및 다른 요소들에 앞서 실행된다. pipe: 가드와 인터셉터 사이에 실행되며, 컨트롤러에 데이터를 전달하기 전에 실행된다. - 구현 방식 middleware: 클래스 또는 함수를 사용하여 구..
기본 String.fromCharCode() 개념 console.log(String.fromCharCode(65)); // A console.log(String.fromCharCode(97)); // a console.log(String.fromCharCode(65, 66, 67)); // ABC fromCharCode(유니코드 번호)를 입력하면 그와 일치하는 문자가 나오게된다. 유니코드 번호 65부터 90은 대문자 A부터 Z이며 유니코드 번호 97부터 122는 소문자 a부터 z이다. 이를 응용하여 아래와 같이 알파벳 배열을 만들 수 있다. let upperAlphabet = Array(26) .fill() .map((_, i) => String.fromCharCode(i + 65)); // 유니코드 6..