NPM (Node Package Manager)? npm (노드 패키지 매니저/Node Package Manager)은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. 자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자이다. 명령 줄 클라이언트(npm), 그리고 공개 패키지와 지불 방식의 개인 패키지의 온라인 데이터베이스(npm 레지스트리)로 이루어져 있다. 이 레지스트리는 클라이언트를 통해 접근되며 사용 가능한 패키지들은 npm 웹사이트를 통해 찾아보고 검색할 수 있다. 패키지 관리자와 레지스트리는 npm사에 의해 관리된다. npm을 이용한 패키지 설치 $ npm install install 대신 i를 약어로 사용이 가능 → $ npm i 에는 설치할 패키지 명을 적는다. 만약 특정한 ..
Backend/Node.js
NestJS에서 TypeORM을 사용하다 보면 Active Record와 Data Mapper라는 말을 종종 들었고 이 둘을 비교하는 글도 볼 수 있었다. 이들은 쿼리 메서드의 정의 방법을 결정하는 패턴인 듯 보인다. 평소에 당연하다는 듯이 Data Mapper 방식을 사용했고 Active Record 패턴은 생소했기에 적어두려고 한다. TypeORM의 패턴 Node.js에서 많이 사용되는 ORM인 Sequelize는 Active Record Pattern이라고 한다. 그러나 같은 Node.js의 ORM인 TypeORM은 Active Record Pattern뿐만 아니라 Data Mapper 패턴을 지원한다고 한다. Data Mapper Pattern은 큰 서비스에서 유지 보수하며 개발하기 좋다는 장점이..
socket.io라는 것을 학습해보면서 polling이라는 단어를 접했다. 예전에 들어봤지만 정확한 개념을 알지 못하고 각각 어떤 차이가 있는지 몰랐기에 적어두려고 한다. 기존의 HTTP 프로토콜 HTTP규격은 애초에 클라이언트에서 서버로의 단방향 통신을 위해 만들어진 방법이다. 이렇기에 클라이언트의 요청이 있어야만 서버가 응답을 할 수가 있고 반대로 서버가 먼저 보내는 요청은 클라이언트가 받을 수 없다. 이는 웹이 발전하면서 다양한 콘텐츠에서 단점으로 작용한다.이러한 단점을 보완하기 위해 일반적인 HTTP request에 약간의 트릭을 사용해 실시간 통신인 것처럼 작동하는 기술이 Polling이다. Polling Polling은 클라이언트 측에서 일정 시간을 두고 request를 계속해서 보내면..
이전에 진행한 프로젝트에 유효성을 검증하는 기능을 넣으려고 했다.하나하나 조건문을 이용해 검증하기에는 코드도 지저분해지고 미들웨어로 넣어 처리해주고 싶었다.그래서 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..
이전에 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..