분류 전체보기

최근 객체지향적인 코드를 만들어 보려고 노력하다 보니 다양한 디자인 패턴을 경험할 수 있었다. 객체를 생성하는 방법은 new 키워드를 이용하는 방법만 생각하고 있었는데, 그 왜에도 Factory functino과 ES6부터 추가된 class 문법을 이용해 객체를 만들 수 있다는 것을 확인했고 이 글에서는 박복 객체를 생성할 때 쓰이는 패턴인 Factory Pattern에 대해 남겨두려고 한다. Factory Pattern Factory Pattern 객체를 사용하는 코드에서 객체 생성 부분을 때어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴 Factory Pattern은 공장(Factory)이라..
이전에 진행한 프로젝트에 유효성을 검증하는 기능을 넣으려고 했다.하나하나 조건문을 이용해 검증하기에는 코드도 지저분해지고 미들웨어로 넣어 처리해주고 싶었다.그래서 joi라는 것을 사용해 유효성 검증 기능을 넣었다.https://joi.dev/ joiSite## Build Setupjoi.devjoi 왜에도 node.js 환경에서 유효성 검증을 도와주는 모듈은 다양하다.express-validator, yup 등이 있지만 정확한 차이는 잘 모르겠고 이용 수가 가장 많으면서 스키마로 따로 정의할 수 있다는 저에서 joi를 선택했다.모듈을 설치$ yarn add joi 사용법은 간단했다.내가 작성한 코드를 간단하게 얘기하자면유효성 검증을 위한 조건을 가진 스키마들을 따로 정의하고 요청과 함께 들어온 데이터들을..
이전에 express 프레임워크 환경에서 작업을 하면서 api 명세를 swagger로 진행했다.당시 swagger-ui-express와 swagger-jsdoc을 이용해 router를 작성한 코드 위해 바로 yaml형식의 swagger데이터를 데코레이터와 주석을 이용해 명세를 했었다.너무 마음에 안 들었다. router 영역은 몇 줄 안되는데 자세하게 명세를 하다 보면 코드가 router의 3~4배나 길게 적혔다.그래서 방법을 찾아 swagger 명세는. yaml 파일로 분리해 리팩터링을 진행하려고 한다. 우선 swagger-jsdoc는 사용하지 않을 거다.swagger-ui-express는 설치되어 있다는 전제하에 아래 모듈들을 설치해 주자$ npm i swagger-cli yamljs상황에 따라 de..
Bycrypt는 현업에서 가장 많이 사용한다고 한다. 나도 종종 사용했는데 많은 알고리즘 중에 이것이 선택되고 있는지 알아보고 기록해두려고 한다. bcrypt? 1999년 USENIX에서 발표한 Blowfish 암호를 기반으로 Niels Provos와 David Mazières가 설계한 단방향 해싱 함수라고 한다. 단방향 해시 함수? 해시 함수는 입력값을 문자와 숫자를 임의로 나열한 일정한 길이의 다이제스트(Digest) 형태로 변환시켜준다. 다이제스트란, 해시 함수를 통해 생성된 암호화된 메시지이다. 이를 단방향으로 암호화하고 복호화는 불가능해 원본을 알 수 없게 하는 것이 단방향 해시이다. 패스워드를 바로 데이터베이스에 저장하지 않고 다이제스트를 저장하는 것이 보편화되었다. salting과 키 스트레..
이전에 express를 사용할 때도 jwt를 사용해 토큰을 생성하게 만들었었다. 이번에 NestJS를 공부하면서 반가운 jwt를 적용해 보려고 한다. 설치 모듈$ yarn add @nestjs/jwt @nestjs/passport passport passport-jwt총 4가지를 yarn add를 통해 다운로드하였다.여기서 passport도 함께 다운로드하였는데 이는 다음에 얘기할 거고 여기서는 토큰을 발급받는 과정만 적어보려고 한다.passport.js여권이라는 이름과 같이 서버에서 사용자를 인증하기 위해 사용하는 Node.js용 미들웨어이다. JWT 모듈 등록// auth.module.ts@Module({ imports: [ PassportModule.register({ defaultStrat..
예를 들어 게시물을 하나 만들 때 조건을 주고 싶다. 제목이 없으면 안 되고 내용이 없으면 안 되고 제목은 무조건 한글이어야 되고... 등등 이런 것을 사전에 확인해주는 것이 파이프다. Pipe란?파이프를 data의 transformation과 validation을 위해 사용된다. 컨트롤러 경우 처리기에 의해 처리된다.@Injectalble() 데코레이터로 주석이 달린 클래스이며 Nest는 메서드가 호출되기 직전에 파이프를 삽입하고 파이프는 메서드로 들어가는 인수를 수신해 동작한다.파이프는 두 가지의 유즈 케이스를 가지고 있다.Data Transformation : 입력 데이터를 원하는 형식으로 변환Data Validation : 입력 데이터를 평가하고 유효산 경우 변경되지 않은 상태로 전달하면 됨. 그..
장바금
'분류 전체보기' 카테고리의 글 목록 (7 Page)