TIL(80)
-
TIL( NestJS - Passport )
💡Passport 1.의의- Passport는 가장 인기 있는 node.js 인증 라이브러리로, 커뮤니티에서 가장 잘 알려져 있으며 많은 프로덕션 어플리케이션에서 성공적으로 사용되고 있다.- @nestjs/passport 모듈을 사용하여 NestJS에서 인증로직을 깔끔하게 구현할 수 있다. 2.특징- 다양한 인증 방식 사용가능 : Passport는 로컬 로그인, OAuth, JWT 등 다양한 인증 방식을 지원한다.- 미들웨어를 기반 : Express 미들웨어로 동작하며, NestJS의 미들웨어와 쉽게 통합가능하다.- 유연성 : 사용자 정의 전략을 쉽게 구현할 수 있다. 3. NestJS에서 Passport 사용하기 - 로그인하고 JWT토큰 발급받기 1) 새 프로젝트 생성nest new newproje..
2024.07.05 -
TIL( Nest.js - IoC, DI )
💡 IoC, DI 란? - NestJS는 모듈러 아키텍처와 객체지향 프로그래밍 패러다임을 채택하여 IoC(Inversion of Control)와 DI(Dependency Injection)를 쉽게 구현할 수 있게 해주는 프레임워크이다. IoC와 DI는 NestJS의 핵심 원리 중 하나이다. • IoC (Inversion of Control) IoC는 Inversion of Control의 준말로서 제어 역전이라고도 한다.제어의 역전은 객체의 생성과 관리 및 그들의 종속성을 프레임워크나 컨테이너가 대신 처리하도록 하는 디자인 패턴이다. NestJS에서는 IoC 컨테이너가 객체의 생명 주기를 관리하고, 종속성을 주입한다.( 객체의 관리를 컨테이너가 하기때문에 제어권이 넘어가서 제어 역전이라 한다.) • ..
2024.07.04 -
TIL (DTO)
💡DTO란? 1. DTO (Data Transfer Object) - DTO(Data Transfer Object)는 DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 계층간 데이터 교환을 위한 객체를 의미한다.- DTO는 데이터의 구조와 내용을 정의하는 객체로, 이를 통해 데이터 전송 시 불필요한 정보가 포함되지 않도록 하고, 데이터 유효성을 검증하고, 데이터 전송의 효율성을 높인다. - interface나 class를 이용해서 정의 될 수 있다.( Nest Js에서는 클래스를 이용하는 것을 추천!)2. DTO를 사용하는 이유 - DTO와 Entity를 분리 - 데이터 유효성을 체크하는데 효율적이다. - 더 안정적인 코드로 만들어 준다. 타입스크립트의 타입으로..
2024.07.03 -
TIL( TypeScript - Utility type )
💡TypeScript - 자주 사용하는 Utility type 정리 - 유틸리티 타입이란 타입스크립트에서 주로 사용되는 타입으로, 기존 타입을 변형하거나 새로운 타입을 만드는 데 사용되며, 여러 가지 유틸리티 타입을 사용하여 개발자가 타입을 쉽게 다룰 수 있도록 도와준다. • Partial : 객체의 모든 속성을 선택적으로 만든다interface Profile { name: string; age: number; married: boolean;}const newPerson: Partial = { name: 'john', age: 29,}; • Required: 모든 선택적 속성을 필수로 만든다.interface Profile { name?: string; ..
2024.07.02 -
TIL ( 데코레이터 - ts )
💡 데코레이터 ( feat. 타입스크립트 ) - 데코레이터는 클래스의 기능을 증강하는 함수로 여러 함수에서 공통으로 수행되는 부분을 데코레이터로 만들어 사용한다.- 추가적인 기능을 주입하거나, 기존 기능을 수정하거나, 메타데이터를 추가하는 데 사용되며, 데코레이터는 주로 코드의 가독성을 높이고, 반복적인 작업을 줄여주며, 코드의 유지보수성을 향상시키는 데 유용하다 1. 데코레이터 기본 구조function 데코레이터명(target: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor) { } - target 은 데코레이터가 적용된 요소를 나타낸다. ex) 클래스, 메서드, 프로퍼티 등- propertyKey는 데코레티어가 적용된 프로퍼..
2024.07.01 -
TIL ( prisma 없이 데이터베이스(MySQL) 연결하기 )
💡JavaScript에서 prisma 없이 데이터베이스 연결하기 1. mysql2 설치- MySQL 데이터베이스에 연결하고 쿼리를 실행하기 위해 mysql2 패키지를 설치합니다.yarn add mysql2 2.테이터베이스 연결 & 쿼리 실행- mysql2/promise 모듈 사용import mysql from 'mysql2/promise'//데이터베이스 연결async function main() { const connection = await mwsql.createConnection({ host: 'localhost', user: '사용자명', password: '비밀번호', database: '데이터베이스명' });console.log('연결 성공');//쿼리실행try { ..
2024.06.28