dependencies  설치 과정에서 생기는 경고창이다.

로그 내용 대로 직역 하자면 사용하고 있는 라이브러리에서 취약점이 48개가 확인되었고

npm audit fix 명령 통해 감사를 수정 하거나 강제 하거나.. 뭐 이런 내용인데 

dependencies 모두 업데이트 하더라도 모든 경고는 없애주기는 쉽지 않은 것으로 알고 있다.

 

글을 찾아 보니 npm v6가 나오면서 npm audit 이라는 기능이 추가 되어

npm 설치 과정 중 모듈의 취약점을 검사해 준다고 한다.

 

npm install 과정에서 해당 검사 과정이 필요없다면 과감히 no audit 명령어를 사용해도 좋다.

npm install --no--audit

 

자 그럼 위 취약점 문제들은 dependencies의 버전 업데이트 만으로도 최소화 시킬 수 있으니

npm-check-updates 기능을 활용하여 버전 관리를 진행해보자.

 

해당 패키지는 package.json dependencies 최신 버전으로 전체 관리 해준다.

자 그럼 아래 명령어를 통해 설치를 진행 해보자

npm install -g npm-check-updates

 

설치가 정상 적으로 되었다면 아래 커맨드를 실행하여 출력 값을 확인 해보자

 

ncu -u

해당 명령어를 실행 하면 dependencies 최신 버전이 존재하는지 확인하고 업데이트 까지 진행 해준다.

자.. 이제 dependencies 버전 관리를 한땀한땀 update 하는 수고를 덜 었다.

또한 디렉토리 package.json 파일을 확인해보면 수정 된 dependencies 버전 정보를 확인 할 수 있을 것 이다.

자세한 내용은 아래 링크에서도 확인 가능하다.

 

 

Reference

 

GitHub - raineorshine/npm-check-updates: Find newer versions of package dependencies than what your package.json allows

Find newer versions of package dependencies than what your package.json allows - GitHub - raineorshine/npm-check-updates: Find newer versions of package dependencies than what your package.json allows

github.com

 

 

 

Request Lifecycle

Nest 애플리케이션은 요청 수명 주기 라고 하는 순서대로 요청을 처리하고 응답을 생성한다.

일반적으로 요청은 미들웨어를 통해 가드, 인터셉터, 파이프, 반환 경로의 인터셉터 순으로 흐른다.


미들웨어

  • 전역적으로 바인딩된 미들웨어를 먼저 실행
  • 이후 모듈 바인딩된 미들웨어를 실행
  • 서로 다른 모듈에 걸쳐 바인딩된 미들웨어는 루트 모듈에 바인딩된 미들웨어 실행, imports 배열에 모듈이 추가된 순서대로 미들웨어를 실행

가드

  • 글로벌 가드, 컨트롤러 가드, 라우트 가드 순으로 실행

인터셉터

  • 요청은 전역, 컨트롤러, 라우트 순으로 확인
  • 응답은 라우트, 컨트롤러, 전역 순으로 확인

파이프

  • 전역 파이프, 나중에 바인딩 되는 파이프 순으로 실행
  • 매개변수 별 파이프가 있는 경우 마지막 매개변수에서 첫번째 매개 변수로 실행

필터

  • 라우터, 컨트롤러, 전역 순으로 동작

일반적인 요청 수명 주기 순서

요청 

1. 미들웨어

2. 가드

3. 인터셉터(컨트롤러 실행 이전

4.파이프

5.컨트롤러

5-1.서비스

6. 인터셉터(컨트롤러 실행 이후)

7.예외필터

응답

'Typescript' 카테고리의 다른 글

[NestJs] - Provider 살펴보기  (1) 2023.10.26

 

작업 시 참고

시작 하기 전에 ..

Postgres 에서는 저장 프로시저를 사용하지 않고 함수를 사용한다고 한다.

우리가 아는 procedure == function 이라고 생각하면 될 것 같다.

 

Stored Procedure는 이미 컴파일되어 DBMS 단계에서 바로 실행할 수 있도록 준비되어 있어 그 실행 속도가 빠르며, 호출시 인자만 변경되기 때문에 재활용이 가능하다.

 

이 글에서는 단점에 대한 내용은 정리 하지 않도록 하겠다.

 

그럼 pl/pgsql 을 이용해 10자리 난수를 얻는 간단한 Procedure를 작성해 보자

create or replace function custom_random_number()
returns bigint language plpgsql as
$$
   declare result bigint := (select rpad(cast(trunc(random() * 10000000000) as varchar), 10 , '0'));
   begin
        return result;
   end;
$$;

alter function custom_random_number() owner to yeokgank;

작성한 Procedure 를 호출 해본다.

select custom_random_number() as random_number
from generate_series(1,10);

결과 

 

 

EDB: Power to Postgres | Get the most out of PostgreSQL with tools, products, services, and support for enterprises

EDB provides best in class database management software and wide-range services with 24x7 support to get more from Postgres. EDB offers secure, scalable, advanced and enterprise-class Postgres solutions.

www.enterprisedb.com

Reference

The logical && (AND) operator

const trueCondition = true;
const falseCondition = false;

const obj = {
  ...(trueCondition && { dogs: "woof" }),
  ...(falseCondition && { cats: "meow" }),
};

// { dogs: 'woof' }

const arr = [
  ...(trueCondition ? ["dog"] : []),
  ...(falseCondition ? ["cat"] : [])
];

// ['dog']

The spread operator (...)

let myDogs = [`Riggins`, `Lyla`];
let parentsDogs = [`Ellie`, `Remi`];

const holidayDoghouse = [...myDogs, ...parentsDogs];
// [ 'Riggins', 'Lyla', 'Ellie', 'Remi' ]
let existingAnimals = {
  dogs: 2,
  cats: 4,
  donkeys: 2,
  horses: 2,
};

let newAnimals = {
  goats: 2,
};

const allAnimals = {
  ...existingAnimals,
  ...newAnimals,
};
// { dogs: 2, cats: 4, donkeys: 2, horses: 2, goats: 2 }

 

'Javascript' 카테고리의 다른 글

[Javascript] Promise  (1) 2022.11.17
Javascript - console.log()  (0) 2022.04.07
[Javascript] 정렬 함수 sort  (0) 2021.12.17
[JavaScript] Object Literals (정리)  (0) 2021.07.14
[Javascript] 함수 표현식 vs 함수 선언식  (0) 2019.08.05

+ Recent posts