📡 백엔드/🐱 Nest.js

    [NestJs] 따라하면서 배우는 NestJs - 9 (로그, 설정)

    [NestJs] 따라하면서 배우는 NestJs - 9 (로그, 설정)

    ✅ Logger 모듈 추가 📝./src/main.ts import { Logger } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { const logger = new Logger(); const port = 3000; const app = await NestFactory.create(AppModule); await app.listen(port); logger.log(`Application running on port ${port}`); } bootstrap(); expressjs 에서는 Winston 모듈을..

    [NestJs] 따라하면서 배우는 NestJs - 8 (권한 부여, 유저와 게시글 관계 부여)

    [NestJs] 따라하면서 배우는 NestJs - 8 (권한 부여, 유저와 게시글 관계 부여)

    ✅ Boards 모듈에서 AuthGuard 사용하기 📝./src/boards/boards.module.ts import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AuthModule } from 'src/auth/auth.module'; import { BoardRepository } from './board.repository'; import { BoardsController } from './boards.controller'; import { BoardsService } from './boards...

    [NestJs] 따라하면서 배우는 NestJs - 7 (JWT, passport 이용한 인증 구현)

    [NestJs] 따라하면서 배우는 NestJs - 7 (JWT, passport 이용한 인증 구현)

    ✅ JWT, passport 모듈 추가 npm i @nestjs/jwt @nestjs/passport passport passport-jwt --save ✔ @nestjs/jwt - nest에서 jwt를 사용하기 위한 모듈 ✔ @nestjs/passport - nest에서 passport를 사용하기 위한 모듈 ✔ passport - passport 모듈 ✔ passport-jwt - passport와 jwt를 연동하기 위한 모듈 📝./src/auth/auth.module.ts import { Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passpor..

    [NestJs] 따라하면서 배우는 NestJs - 6 (auth 모듈 구현)

    [NestJs] 따라하면서 배우는 NestJs - 6 (auth 모듈 구현)

    ✅ 인증을 위한 auth 모듈 생성 nest g module auth nest g controller auth --no-spec nest g service auth --no-spec ✅ User Entity & Repository 구현 및 등록 📝 ./src/auth/user.entity.ts import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class User extends BaseEntity { @PrimaryGeneratedColumn() id: number; @Column() username: string; @Column() password: string; } 📝 ./src/au..

    [NestJs] 따라하면서 배우는 NestJs - 5 (레포지토리 구현 및 DB 이용 CRUD)

    [NestJs] 따라하면서 배우는 NestJs - 5 (레포지토리 구현 및 DB 이용 CRUD)

    ✅ 레포지토리 의존성 주입 📝 ./src/boards/boards.service.ts import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { BoardRepository } from './board.repository'; @Injectable() export class BoardsService { constructor( @InjectRepository(BoardRepository) private boardRepository: BoardRepository, ) {} } 컨트롤러에 서비스를 주입한 것 처럼 서비스에 레포지토리를 주입해준다 여기서는 역시 생성자 주입 사용 데코레..

    [NestJs] TypeORM 사용 시 RepositoryNotFoundError 해결하기

    [NestJs] TypeORM 사용 시 RepositoryNotFoundError 해결하기

    ❌ 난관 봉착 nestjs의 TypeORM 은 3.0부터 EntityRepository 가 deprecated 되어서 사용할 수 없다 따라서 최신의 TypeORM 에서 이 커스텀 레포지토리를 사용하려면 커스텀 데코레이터를 만들어서 어찌저찌 하면 되긴 한다 하지만 일단은 예제를 따라 공부하는 중이기 때문에 TypeORM을 강제로 2.0으로 낮췄다 npm i --save typeorm@0.2 📝 package.json "dependencies": { "@nestjs/common": "^8.0.0", "@nestjs/config": "^2.1.0", "@nestjs/core": "^8.0.0", "@nestjs/platform-express": "^8.0.0", "@nestjs/typeorm": "^8.0.1..

    [NestJs] 따라하면서 배우는 NestJs - 4 (Postgres, TypeORM 적용)

    [NestJs] 따라하면서 배우는 NestJs - 4 (Postgres, TypeORM 적용)

    ✅ ORM(Object Relational Mapping) 객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결해주는 것 객체 클래스 vs 관계형 db 테이블간 불일치를 해소 ✅ Postgres, TypeORM 설치 및 적용 npm i pg typeorm @nestjs/typeorm --save pg : postgres 모듈 typeorm : TypeORM 모듈 @nestjs/typeorm : nest와 TypeORM 간의 연동 예제에서는 postgresSQL과 pgAdmin4 사용 💾 postgresSQL for MAC - https://postgresapp.com/downloads.html 💾 pgAdmin4 for MAC - https://www.pgadmin.org/download/pgad..

    [NestJs] 따라하면서 배우는 NestJs - 3 (pipe와 validation)

    [NestJs] 따라하면서 배우는 NestJs - 3 (pipe와 validation)

    ✅ Pipe 데이터 변환과 데이터 유효성 검사를 위한 클래스 핸들러 레벨 / 파라미터 레벨 / 글로벌 레벨의 3가지 레벨에서 사용할 수 있음 ✅ 모듈 설치 npm i class-validator class-transformer --save 📝 class-validator docs https://github.com/typestack/class-validator#manual-validation ✅ class-validator 적용 📝 ./boards/dto/create-board.dto.ts import { IsNotEmpty } from 'class-validator'; export class CreateBoardDto { @IsNotEmpty() title: string; @IsNotEmpty() des..