코딩캠프

Nest.js 심화 7. 캐싱 사용하기 자주 변하지 않는 데이터에 동일한 요청이 지속적으로 들어오는 경우에 대해서는 캐싱 기능을 사용할 수 있다면 서버의 성능이 전반적으로 올라가겠죠? 캐싱은 사용할 수 있으면 무조건 사용하는 것이 성능을 끌어올릴 수 있는 비결 Nest.js 에서는 cache-manager 를 사용해서 캐싱 기능을 사용할 수 있다. cache-manager 설치 npm i cache-manager npm i -D @types/cache-manager 모듈에 패키지 적용 app.module.ts import { CacheModule, MiddlewareConsumer, Module, NestModule, RequestMethod, } from "@nestjs/common"; CacheMod..
Nest.js 심화 5. 커스텀 리포지토리가 왜 필요한가? 일반 리포지토리로도 기본적인 CRUD를 해야하지만 경우에 따라서는 더 복잡한 연산 및 쿼리를 직접 정의해야 하는 경우가 있다 일반 리포지토리를 상속받은 커스텀 리포지토리를 작성하여 해결 할수있다. 💡 일반 리포지토리 기능을 상속받은 커스텀 쿼리가 가능한 리포지토리 6. 커스텀 리포지토리 만들기 Article 엔티티에 view 컬럼을 추가 article.entity.ts 수정 import { Column, CreateDateColumn, DeleteDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn, } from "typeorm"; @Entity({ schema: "board", name: ..
Nest.js 심화 2. JWT 발급하기 Nest.js에서의 jwt 패키지는 @nestjs/jwt @nestjs/jwt 설치 npm i @nestjs/jwt Auth 에 대해 알아보기 Authentication (인증) 인증은 login 함수와 같은 함수를 통해 사용자 ID와 암호와 같은 데이터를 요구하여 사용자의 신원을 파악하는 프로세스에요. 이 인증 절차를 통과한 유저만이 해당 유저임을 증빙할 수 있는 JWT 토큰을 받아요. Authorization (승인 또는 인가) 승인은 해당 사용자가 특정 함수 혹은 리소스에 접근할 수 있는지를 파악하는 프로세스에요. 발급받은 JWT 토큰을 토대로 서버는 특정 사용자임을 알아내고 특정 사용자에 관련된 액션은 전부 허가를 해줘요. user.module.ts 1차 ..
Nest.js 심화 1. 회원가입 / 로그인 기능 구현 강의 자료나 영상에서는 src 디렉토리로 이동한 뒤에 실행 하라고 하는데 이게 맥이랑 윈도우 차이인지 src 디렉토리가 아니더라도 잘 생성해주니 그냥 실행한다. User 모듈 / 서비스 추가 nest g mo user nest g s user user.entity.ts import { Column, CreateDateColumn, DeleteDateColumn, Entity, Index, PrimaryGeneratedColumn, UpdateDateColumn, } from "typeorm"; @Entity({ schema: "board", name: "users" }) export class User { @PrimaryGeneratedColumn(..
TypeORM 3. 서비스 코드를 데이터베이스 기반으로 변경 - board.service.ts 1차 - getArticles 함수 코드 바꾸기! 더보기 async getArticles() { return await this.articleRepository.find({ where: { deletedAt: null }, select: ['author', 'title', 'createdAt'], }); } - board.service.ts 2차 - getArticleById 함수 코드 바꾸기! 더보기 async getArticleById(id: number) { return await this.articleRepository.findOne({ where: { id, deletedAt: null }, selec..
사실, 객관(Facts) : 이번 일주일 동안 있었던 일, 내가 한 일 Nest.js 입문 TypeORM 반절쯤? 느낌, 주관(Feelings) : 나의 감정적인 반응, 느낌 아직은 노드가 좋다 배운 것(Findings) : 그 상황으로부터 내가 배운 것, 얻은 것 네스트 기초랑 타입오알엠 초반? 쯤? 미래(Future) : 배운 것을 미래에는 어떻게 적용할 지 몰라!!
TypeORM 1. 데이터베이스 연결 Nest.js에서 데이터베이스 연동은 TypeORM을 사용한다. TypeORM 설치 npm i typeorm@0.3.0 @nestjs/typeorm mysql TypeORM을 모듈에 임포트! import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { BoardModule } from './board/board.module'; @Module({ imports: [ TypeOrmModule..
Nest.js 입문 게시판 확인 서버 실행 npm run start 정상적으로 실행이 될때 Thunder Client 로 API 테스트 진행~ 진행 중 전체 게시글 조회는 잘나오는데 게시글 상세 조회에서 없다고 나온다~ 여기서 number 타입의 articleId로 id라는 파라미터를 받으려고 했지만 실제로 articleId의 타입은 string입니다. URI에 들어가는 파라미터는 항상 string으로 표현되기 때문 class-transformer 패키지를 이용해 설정을 해줘야 한다. class-transformer 패키지 설치 npm i class-transformer main.ts 수정 import { ValidationPipe } from '@nestjs/common'; import { NestFa..
Nest.js 입문 게시판 만들어보기 Part.1 board 모듈, 컨트롤러,서비스 생성 // 모듈 nest g mo board // 컨트롤러 nest g co board // 서비스 nest g s board import { Controller } from '@nestjs/common'; @Controller('board') export class BoardController {} 컨트롤러 데코레이터 옆에 문자열은 라우팅이다.!!! 이 컨트롤러는 /board 라는 주소 아래로 요청을 하면 해당 컨트롤러에서 처리 게시판 만들어보기 Part.2 lodash - Javascript로 코딩할 때 유용하게 사용할 수 있는 유틸성 패키지 lodash 패키지 설치 npm i lodash ES6 모듈 사양을 준수하여..
Nest.js 입문 IoC와 DI IoC (Inversion of Control)와 DI (Dependency Injection)는 소프트웨어 개발에서 객체 간의 의존성을 처리하는 방식 중 하나 IoC IoC (Inversion of Control)는 제어역전 객체의 생성, 관리, 의존성 관리 등을 개발자가 아닌 컨테이너가 대신 수행 객체의 관리를 컨테이너에 맡겨서 제어권이 넘어갔기 때문에 IoC[제어역전]라고 함 💡 IoC는 모듈 간 결합도를 낮추기 때문에 하나의 모듈이 변경되어도 다른 모듈들에는 영향을 최소화되어 웹 어플리케이션을 지속 가능하고 확장성 있게 해줍니다! DI 잘 알아야 편하지~
Nest.js 입문 코드분석 - main.js main.js 파일은 절대로 임의로 파일 이름을 변경하지 않아야 한다. (네스트에서 진입점으로 사용하겠다고한 파일이라서.) import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); await app.listen(3000); } bootstrap(); main.js 파일은 Nest.js 애플리케이션의 시작점(entry point)으로, 애플리케이션의 설정과 시작 프로세스를 정의, Nest Factory를 사용하여 애플리케이션 인..
사실, 객관(Facts) : 이번 일주일 동안 있었던 일, 내가 한 일 02.01~08 - 이커머스 프로젝트 끝 02.09~10 - Nest.js 입문 느낌, 주관(Feelings) : 나의 감정적인 반응, 느낌 겨우 이커머스라고 할수있는 기능들을 다 만들어서 제출했다. 아쉽게도 저번 프로젝트의 선택이였던 기능이 이번에 필수였지만 시간이 부족해서 하지못했다 배운 것(Findings) : 그 상황으로부터 내가 배운 것, 얻은 것 Nest 쓰면 편하다는건 알겠는데 그래서 뭐 미래(Future) : 배운 것을 미래에는 어떻게 적용할 지 Nest 로 프로젝트 하기???!!
고랑E
'코딩캠프' 카테고리의 글 목록 (8 Page)