[NestJS] (공식문서 번역) Guards

NestJS 공식문서 번역 겸 공부하는 글 입니다. 의역 및 오역이 있을 수 있습니다. https://docs.nestjs.com/guards Guards Guards guard는 @Injectable() 데코레이터로 주석된 클래스이다. 모든 guard는 CanActivate 인터페이스를 구현해야 한다. guard는 단일 책임을 갖는다. guard는 런타임 시, 조건(권한, 역할, ACL 등)에 따라 request가 route handler에 의해 수행될지 아닐지를 결정한다. 이것은 종종 authorization을 가리킨다. 전통적인 express 애플리케이션에서 authorization(혹은 authentication)은 미들웨어에서 처리된다. 토큰의 유효성을 검사하고, request 오브젝트에 프로퍼티를 추가할 수 있기때문에 미들웨어에서 인증을 구현하는 것은 좋은 선택이다....

May 12, 2021 · 4 min · icecat471

[NestJS] (공식문서 번역) Pipe

NestJS 공식문서 번역 겸 공부하는 글 입니다. 의역 및 오역이 있을 수 있습니다. https://docs.nestjs.com/pipes Pipe Pipe pipe는 @injectable() 데코레이터로 주석이 된 클래스이다. pipe는 PipeTransform 인터페이스를 구현해야 한다. pipe는 두가지 사용방법이 있다. transformation: input 데이터를 원하는 형태로 변환(예를 들면, string에서 int로). validation: input 데이터가 유효한지 확인하고, 유효하지 않은 경우 예외 발생. 두가지 경우 모두 controller route handler의 argument에 동작한다. Nest는 method가 수행되기전에 끼어들어, pipe가 argument를 먼저 받게 한다. transform이나 validation은 이때 동작한다....

May 12, 2021 · 8 min · icecat471

[Vue] dotenv 환경변수를 undefined로 불러올 때

참고: https://cli.vuejs.org/guide/mode-and-env.html mode vue-cli에서는 기본적으로 3가지 모드가 있다. development: vue-cli-service serve test: vue-cli-service test:unit production: vue-cli-service build 또는 vue-cli-service test:e2e 또는 –mode 옵션을 전달하여 기본모드를 덮어 쓸 수 있다. vue-cli-service build --mode dev 환경변수 프로젝트 루트에 다음 파일을 추가하여 환경변수 지정 가능 .env # loaded in all cases .env.local # loaded in all cases, ignored by git .env.[mode] # only loaded in specified mode .env.[mode].local # only loaded in specified mode, ignored by git 주의할점...

May 5, 2021 · 1 min · icecat471

[NestJS] (공식문서 번역) Exception Filters

NestJS 공식문서 번역 겸 공부하는 글 입니다. 의역 및 오역이 있을 수 있습니다. https://docs.nestjs.com/exception-filters Exception filters Exception filters Nest에는 핸들링 되지 않은 예외를 처리해주는 exception layer가 내장되어 있다. 코드에서 예외를 처리해주지 않았다면 이 layer에서 예외를 캐치하여 자동으로 유저친화적인 response를 전송한다. 특히, 이것은 HttpException과 서브클래스들을 핸들링하는 global exception filter에 의해 수행된다. 예외가 인식되지 않을 때(HttpException과 그 서브클래스가 아닌 경우), exception filter는 자동으로 아래의 데이터를 JSON 형식으로 response한다. { "statusCode": 500, "message": "Internal server error" } Throwing standard exceptions Nest는 @nestjs/common 패키지를 통해, HttpException class를 제공한다....

May 3, 2021 · 5 min · icecat471

[NestJS] (공식문서 번역) Middleware

NestJS 공식문서 번역 겸 공부하는 글 입니다. 의역 및 오역이 있을 수 있습니다. https://docs.nestjs.com/middleware Middleware Middelware middleware는 route handler 이전에 호출되는 함수이다. middleware는 request와 response object에 접근할 수 있으며, 애플리케이션의 request-response cycle 내에서 next() 함수에도 접근할 수 있다. Nest middleware는 기본적으로 express middleware와 같다. 아래는 express 공식문서에 나와있는 express middleware의 특징이다. 어떠한 코드도 실행한다. request와 response object를 변형한다. request-response cycle을 끝낸다. stack에서 다음 middleware를 호출한다. 현재 middleware가 request-reponse cycle을 끝내지 못하면, next() 함수를 통해 다음 middleware를 호출한다....

May 3, 2021 · 3 min · icecat471

[NestJS] (공식문서 번역) Modules

NestJS 공식문서 번역 겸 공부하는 글 입니다. 의역 및 오역이 있을 수 있습니다. https://docs.nestjs.com/providers Modules Modules module class는 @Module 데코레이터로 선언된다. @Module 데코레이터는 Nest가 애플리케이션 구조를 조직하기 위해 사용하는 메타데이터를 붙여준다. 각각의 애플리케이션은 적어도 root module이라고 불리는 하나의 module을 갖는다. root module은 Nest가 애플리케이션그래프(Nest가 module과 provider의 관계들과 의존성을 결정하는데 사용하는 내부 데이터 구조)를 빌드하기 위해 사용하는 시작점이다. 보통 매우 작은 규모의 애플리케이션은 root module 단 하나만 갖는 경우도 있지만, 이러한 경우는 일반적이지는 않다....

May 3, 2021 · 5 min · icecat471

[NestJS] (공식문서 번역) Providers

NestJS 공식문서 번역 겸 공부하는 글 입니다. 의역 및 오역이 있을 수 있습니다. https://docs.nestjs.com/providers Providers Providers provider는 Nest에서 가장 근본적인 개념이다. 대부분의 기본 Nest class는 provider로 취급된다(예를 들어, service, repository, factory, helper 등등). provider는 의존성을 주입할 수 있다. 이것은 오브젝트간의 서로 다양한 관계들을 만들 수 있음을 뜻한다. 앞선 챕터에서, 우리는 CatsController를 만들었고, controller는 HTTP request를 핸들링하고 복잡한 일을 provider에게 맡긴다. Services 간단한 CatsService를 만들어보자. 이 service는 데이터를 저장하고 불러오는 역할을 담당할 것이며, CatsController가 이를 시용할 것이다....

May 2, 2021 · 4 min · icecat471

[Docker] PostgresSQL 설치

pull & run $ docker run -p 5432:5432 --name postgres \ -e POSTGRES_PASSWORD=password \ -d postgres 컨테이너 접속 및 사용자 생성 # 접속 $ docker exec -it postgres /bin/bash # postgres 접속 $ psql - U postgres # 사용자 생성 $ CREATE USER username PASSWORD 'password' SUPERUSER; CREATE ROLE $ CREATE DATABASE test OWNER username CREATE DATABASE

May 2, 2021 · 1 min · icecat471

[NestJS] (공식문서 번역) Controllers

NestJS 공식문서 번역 겸 공부하는 글 입니다. 의역 및 오역이 있을 수 있습니다. https://docs.nestjs.com/controllers Controllers Controllers Controller는 들어오는 request를 핸들링하고 클라이언트에게 response를 반환하는 역할. routing mechanism은 어떤 controller가 어떤 request를 받을지 컨트롤한다.각각의 controller는 보통 하나 이상의 route를 갖고, 서로 다른 route는 각각 다른 일을 수행힌다.Routing 아래 예제에서는 basic controller를 정의하는데 필요한 @Controller() 데코레이터를 사용한다. @Controller() 데코레이터는 관련된 route들을 쉽게 그룹화 할 수 있게 해주며, 코드의 반복을 줄여준다. 예를 들어, customer entity와 상호작용하는 route의 그룹이 있다면, /customers 라는 route로 묶을 수 있다....

May 1, 2021 · 8 min · icecat471

맥북 Tomcat9 설치

톰캣 홈페이지 http://tomcat.apache.org/ 받은 파일의 압축을 푼다 (다운로드 폴더 기준, apache-tomcat-9.0.45) # 폴더를 /usr/local 경로로 이동 $ sudo mv ~/Downloads/apache-tomcat-9.0.45 /usr/local/ # 기존에 존재하는 /Library/Tomcat 경로를 지우고 이동한 폴더를 링크함 $ sudo rm -f /Library/Tomcat $ sudo ln -s /usr/local/apache-tomcat-9.0.45/ /Library/Tomcat # 소유자를 본인으로 변경 $ sudo chown -R <userName> /Library/Tomcat # 실행권한 추가 $ sudo chmod +x /Library/Tomcat/bin/*.sh # Tomcat 실행 $ /Library/Tomcat/bin/startup.sh # Tomcat 종료 $ /Library/Tomcat/bin/shutdown.sh 톰캣 실행 확인...

April 30, 2021 · 1 min · icecat471