윤상석 님의 NestJS 강의를 토대로 한 기록 포스팅 입니다.
AWS RDS MySQL 구축 및 NestJS + TypeORM 프로젝트 셋업(old)
rds구축을 먼저 해야하지만 이미 많이 해 봤으므로 패쓰
$ npm install --save @nestjs/typeorm typeorm mysql2
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost', //rds에 있는 엔드 포인트
port: 3306,
username: 'root',
password: 'root',
database: 'test', // rds의 데이터 베이스 이름
entities: [],
synchronize: true,
}),
],
})
export class AppModule {}
PostgreSQL셋업(with docker) & TypeORM연결
Joi라는 라이브러리는 환경변수가 안오면 에러를 던진다.
아래는 compose.yml 파일에 대한 설명
version: '3.1'
services:
db:
image: postgres:9.6.23
restart: always
env_file:
- ./.env
ports:
- 5433:5432 원래는 5432로 열리지만 우리는 5433을 사용할것이다.
volumes: // db 백업할때 어떻게 하는지 배우기위해 !
- ./db_data:/var/lib/postgresql/data //이경로에 해당하는 데이터가 저장이 된다.
도커 서버가 날라간 경우 로컬 db_data에 디비 정보를 백업할 수 있따. 그게 바로 volume mount라고 한다.
docker-compose up -d. // 컨테이더 만들기 -d는 데몬 서버(백그라운드)에서 연다.
위와 같은 경로의 tables에 데이터가 저장이 된다.
보일러플레이트 코드 리뷰 및 테스팅 소개
이번에는 프론트에게 바로 토큰을 주는것이 아닌 httponly로 쿠키에 담아서 토큰을 보낼것이다.
그리서 strategy에서 헤더의 토큰이 아닌 쿠키에서 토큰을 뽑아 인증을 진행한다 !
현재 사용자의 Ip를 뽑아낼 수 있다.
TDD 소개 및 통합 테스팅
음 역시 솔직히 아직 tdd의 공부에 대한 필요성을 못느끼겠다..
차후 그 필요성을 느끼면 다시 공부해 보고자한다..
요구사항에 맞는 도메인설계, ERD 모델링에 대하여
many-to-many 관계를 위해서는 중간에 테이블이 하나 더 필요하다
softdelete 예제 데코레이터
엔티티간에 관계에 대하여
https://www.w3schools.com/sql/default.asp
PostgreSQL 타입 char vs varchar vs text
https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-char-varchar-text/
typeorm공식문서
https://typeorm.io/active-record-data-mapper#what-is-the-active-record-pattern
[TypeORM에서 Active Record와 Data Mapper 차이]
- 공식 문서
- Active Record 패턴
레포지토리 레이어를 두지 않고 엔터티 자체에서 직접 접근하여 로직을 수행합니다. 비교적 작은 서비스에 어울리는 패턴입니다.
모든 엔터티들은 TypeORM에서 제공하는 BaseEntity를 상속하고 이 BaseEntity에는 대부분의 기본 레포지토리에서 제공하는 메서드들이 담겨있습니다.
- Data Mapper 패턴
엔터티에 직접 접근하는 방식이 아닌 레포지토리 레이어를 두고 접근합니다.
NestJS 관리자 페이지 개발(Mogoose)
'모카 스터디 > Nest' 카테고리의 다른 글
MySQL,MongoDB 설계와 구축 (0) | 2023.08.01 |
---|---|
NestJS 랜덤 채팅 웹 앱 (풀스택, 소켓 프로그래밍) (0) | 2023.08.01 |
프로젝트 배포와 서버 운영 (0) | 2023.08.01 |
NestJS 게시판 커뮤니티 프로젝트 1 (0) | 2023.08.01 |
NestJS 개요 및 객체지향 디자인 패턴 (0) | 2023.08.01 |