JavaScript Dev.

JavaScript Dev./Nest.js

Nest.js - Guards

1. Guards Nest.js에서 Guard란 라우팅되기 전에 실행되는 미들웨어 일반적으로 Guard는 인증, 권한 부여, 입력 유효성 검사 등과 같은 작업을 수행 2. 사용하기 @Injectable() 데코레이터를 사용하여 클래스를 작성 인터페이스를 구현 후 메서드를 구현하여 Guard 로직을 작성 import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; import { Observable } from 'rxjs'; @Injectable() export class AuthGuard implements CanActivate { canActivate( context: ExecutionContext, ): boolean | Pr..

JavaScript Dev./TypeORM

TypeORM - Repository 메소드 / QueryBuilder 메소드

1. Repository 메소드 Repository는 DB와 상호 작용하는 데 사용되는 주요 도구 중 하나이다. 1. find(conditions?:FindConditions): 지정된 조건에 맞는 모든 엔터티를 검색한다. 특정 조건에 해당하는 모든 사용자를 검색할 수 있다. const users = await userRepository.find({ age: 30 }); 2. findOne(id: any, options?: FindOneOptions): 주어진 조건에 해당하는 단일 엔터티를 검색한다. const user = await userRepository.findOne(1); 3. save(entity: Entity, options?: SaveOptions): 주어진 엔터티를 저장한다. 엔터티가 이..

JavaScript Dev./TypeORM

TypeORM - 주로 사용하는 데코레이터 정리

@Entity(): 엔터티를 정의. 클래스 위에 데코레이터를 추가하여 해당 클래스가 DB의 table과 mapping됨을 나타냄 @PrimaryGeneratedColumn(): Primary Key를 자동으로 생성하는 열을 정의. 자동으로 증가하는 값 @Column(): DB Column을 정의. 엔터티 클래스의 속성 위에 데코레이터를 추가하여 해당 속성이 DB의 Column과 Mapping됨을 나타냄 @OneToMany(): 1:N 관계를 정의. @ManyToOne(): N:1 관계를 정의. @ManyToMany(): N:M을 정의. @JoinColumn(): 관계 열을 정의하는 데 사용. 일대다 또는 다대일 관계에서 Foriegn Key(외래 키) Column의 이름을 지정할 때 사용 @JoinTab..

JavaScript Dev./TypeORM

TypeORM - 관계 설정(1:1, 1:N, N:M)

1. 관계 설정이란? 관계를 설정하는 것은 DB의 테이블 간의 관계를 표현하는 것 관계 설정은 DB 구조를 설계하고 데이터를 조직화하는 중요한 부분이다. 이는 DB의 성능, 일관성, 무결성 등을 보장하는 데 결정적인 역할을 한다. 여러 엔터티가 서로 연결되어 있는 복잡한 시나리오에서는 특히 중요하다. 데이터 일관성: 관계 설정을 통해 데이터 일관성 유지 부모 엔터티와 자식 엔터티 간의 관계를 설정하면 부모 엔터티의 변경이 자식 엔터티에 반영되어 일관된 데이터를 유지할 수 있다. 데이터 무결성: 관계 설정을 통해 데이터 무결성을 유지할 수 있다. 외래 키 제약 조건을 사용하여 DB의 무결성을 보장할 수 있다. 부모 엔터티의 삭제가 자식 엔터티에 영향을 미치지 않도록 외래 키 제약을 설정할 수 있다. 쿼리의..

JavaScript Dev./TypeORM

TypeORM - 설치부터 기본 개념까지

1. 설치 패키지 설치 npm install typeorm --save TypeScript 애플리케이션에서 런타임에 메타데이터를 관리하기 위한 라이브러리 ==> TypeScript는 데코레이터를 사용하여 클래스, 메서드, 속성 등에 메타데이터를 쉽게 추가할 수 있다. ==> 따라서 설치가 안돼 있다면 설치 권장 npm install reflect-metadata --save 프로젝트에서 사용할 DB 설치 npm install mysql --save // MySQL, MariaDB npm install pg --save // PostgreSQL, CockroachDB npm install sqlite3 --save // SQLite npm install mssql --save // Microsoft SQL..

JavaScript Dev./TypeORM

TypeORM

1. TypeORM이란? Node.js, Browser, React 등에서 실행할 수 있고 TypeScript 및 JavaSript와 함께 사용할 수 있는 ORM(Object Relational Mapping) Active Record와 Data Mapper 패턴을 모두 지원 2. TypeORM의 특징 객체 관계 매핑(ORM): DB 테이블을 JavaScript/TypeScript 클래스와 매핑하여 객체 지향 프로그래밍 스타일로 데이터를 다룰 수 있다. 다양한 DB 지원: MySQL, PostgreSQL, SQLite, MS SQL Server 등 다양한 DB 시스템과 호환 강력한 쿼리 빌더: QueryBuilder를 제공하여 SQL 쿼리를 동적으로 생성할 수 있다. 이를 통해 DB에 대한 복잡한 쿼리를..

Yoonsoo
'JavaScript Dev.' 카테고리의 글 목록