분류 전체보기

    [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..

    [NestJs] 따라하면서 배우는 NestJs - 2 (기본적인 CRUD 수행)

    [NestJs] 따라하면서 배우는 NestJs - 2 (기본적인 CRUD 수행)

    ✅ 서비스 의존성 주입 및 전체 READ 📝 ./boards/boards.service.ts import { Injectable } from '@nestjs/common'; @Injectable() export class BoardsService { //일단 로컬 메모리에 저장하는 방식으로 private boards = []; getAllBoards() { return this.boards; } } 📝 ./boards/boards.controller.ts import { Controller, Get } from '@nestjs/common'; import { BoardsService } from './boards.service'; @Controller('boards') export class Boards..

    [NestJs] 따라하면서 배우는 NestJs - 1 (기본 세팅 및 구조 파악)

    [NestJs] 따라하면서 배우는 NestJs - 1 (기본 세팅 및 구조 파악)

    방학 동안 열심히 백엔드 기술 스택 쌓기 위한 노력의 일환 spring 공부하기 + nestjs 공부하기 두개가 비슷한 점이 많아서 아직까지는 할만한 것 같다 무엇보다 곧 진행하는 프로젝트에서 nestjs를 사용하기 때문에 얼른 공부해둬야 싶어서 부랴부랴 강의 들으면서 정리하는 중이다 ✅ Nestjs 설치 npm i -g @nestjs/cli cli를 global 로 설치해서 어떤 디렉토리에서도 쓸 수 있도록 한다 ✅ 프로젝트 생성 nest new (project-name) 또는 nest new ./ nest cli 를 설치했기 때문에 nest 명령어를 쓸 수 있다 현재 디렉토리인 ./를 입력하면 현재 위치에 프로젝트를 생성한다 ✅ 새 모듈 추가 nest g module (module-name) 처음 공..

    [Nodejs] passport 모듈로 로컬 로그인 전략 구현하기

    ✅ passport 모듈 회원가입과 로그인을 구현할 때 세션과 쿠키 처리등의 복잡한 작업을 쉽게 해주는 모듈 검증되어 있어 안전하게 사용할 수 있다 passport 모듈로 카카오, 구글, 페이스북 로그인을 위한 OAuth 도 사용 가능하다 ✅ 의존성 추가 및 설치 npm i passport passport-local passport-kakao bcrypt 🔨 app.js const passport = require('passport'); ... const passportConfig = require('./passport'); ... passportConfig(); app.use(passport.initialize()); app.use(passport.session()); passport.initializ..

    [Nodejs] Sequelize 로 SQL 쿼리 사용하기

    ✅ CRUD 작업 시작하기 Sequelize 로 받는 쿼리는 프로미스를 반환하기 때문에 .then 을 붙여 결괏값을 받을 수 있다 async/await 문법도 사용할 수 있다 ✅ Create // INSERT INTO nodejs.users (email, nick, password, ...) // VALUES ('gengminy@gengminy.com', 'gengminy', '1234', ...); const { User } = require('../models'); User.create({ email: 'gengminy@gengminy.com', nick: 'gengminy', password: '1234', ... }); models 모듈에서 User 모델을 불러와 create 메소드를 사용한다 데..

    [Nodejs] Sequelize 로 SQL 데이터베이스 연동하기

    ✅ Sequelize ORM으로 분류되는 라이브러리 즉 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구이다 📝ORM(Object- relational Mapping) 객체 관계 매핑 데이터베이스와 객체지향 프로그래밍 언어 사이에 호환되지 않는 데이터를 변환하는 프로그래밍 기법 객체지향 언어에서 사용할 수 있는 가상 객체 DB를 구축하는 방법이다 ✅ Sequelize 의존성 추가 및 초기 세팅 npm i sequelize sequelize-cli mysql2 npx sequelize init 🔨 config/config.json { "development": { "username": "root", "password": null, "database": "database_development", ..

    [Nodejs] Router 객체로 라우팅 파일 분리

    ✅ Router 주소별로 분기 처리를 할 때 app.js 에서 if문을 사용하게 된다면 코드가 복잡해지고 확장성이 떨어진다 express에서는 라우터를 분리하는 방법을 제공한다 🔨 Router 객체 생성 const express = require('express'); const router = express.Router(); ✅ 예제 router 폴더 안에 index.js 와 user.js 를 나누어 라우터 파일을 생성했다 두 파일을 app.js 에서 사용해보는 예제 🔨 index.js const express = require('express'); const router = express.Router(); router.get('/', (req, res) =>{ res.send('this is index..