일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- typeorm
- guard
- 오브젝트
- nestjs library
- mailerservice
- 셀렉트어드민
- 어드민 페이지
- SW마에스트로
- YouTube Data API
- 책임부과
- 티스토리챌린지
- nestjs libraries
- Mock
- java
- API 설계
- 파일조회
- API 개발
- jest
- NestJS
- 오블완
- SROOM
- Connection pool
- nestjs decorator
- 권한검증
- 자바
- 멀티테넌시
- coarse-grained
- 추상 클래스
- monorepo
- fine-grained
- Today
- Total
목록NestJS (4)
독산구너
글의 목적현재 개발중인 NestJS 프로젝트에서는 이메일로 전송된 코드를 입력해 로그인하도록 합니다. 이 기능의 테스트코드를 작성하면서 발생한 문제점과 해결방안을 써보고자 합니다. 이 글을 통해 Jest 테스트에서 꼭 필요하지 않은 특정 외부 서비스 의존성을 제거하는 방식을 알게됩니다. 문제점이메일 전송 기능은 @nestjs-modules/mailer의 MailerService를 통해 구현됩니다.export declare class MailerService { ... constructor(mailerOptions: MailerOptions, transportFactory: IMailerTransportFactory); ... verifyAllTransporters(): Promise..
글의 목적인턴 과정에서, NestJS를 사용하여 사용자 레벨을 나누고 레벨별로 API 호출 권한을 설정했습니다. 이때 사용한 Guard, jwt, 데코레이터 생성 방식에 대해 써보고자 합니다. 요구사항워크스페이스 내 멤버는 4개의 레벨로 나눠집니다. 레벨 1이 가장 높으며, 가장 높은 권한을 가지고 있습니다. 레벨 숫자가 커질수록 적은 권한을 가집니다.Guard를 통해 API를 호출한 멤버가 해당 권한을 가지고 있는지 확인해야 합니다. 이때 DB를 조회하지 않습니다 (사용자가 api 호출 권한이 있는지 guard에서 db를 조회해 확인할 수는 있으나, controller의 메서드가 호출되기도 전에 db에 접근하는 것이 리소스 낭비이고 알맞지 않다고 생각했습니다) 구현 방법JWT 페이로드에 해당 멤버의 l..
목차 글의 목적인턴과정에서 SaaS 형태, 멀티테넌시 구조의 서비스 개발 수행을 맡았습니다. 그때 고민하고 구현했던 것들에 대해 기록을 남기고자 합니다. 멀티테넌시란?단일 인스턴스에서 여러 테넌트(사용자 또는 사용자 조직)가 수용되고, 각 테넌트의 데이터는 다른 테넌트와 격리되어 보이지 않아 모든 테넌트에 대한 데이터 보안 및 개인정보 보호가 보장되는 소프트웨어입니다.출처: https://www.ibm.com/kr-ko/topics/multi-tenant 멀티 테넌트란? | IBM여러 사용자가 소프트웨어 애플리케이션 및 해당 리소스의 단일 인스턴스를 공유할 수 있도록 하는 멀티 테넌트 소프트웨어 아키텍처에 대해 자세히 알아보세요.www.ibm.com 멀티테넌시 격리수준1. 공유 데이터베이스, 공유 스..

목차 글의 목적NestJS의 Library를 사용해서 얻을 수 있는 이점을 알아보고, 이를 멀티테넌씨 DB 구조 설계에 이용해보고자 합니다. NestJS LibrariesNestJS에서는 공통으로 사용되고, 자주 재사용되는 코드를 구성하는 여러가지 방식이 존재합니다. 1. 모듈화 -> NestJS의 핵심 개념으로, 특정 로직을 모듈화시켜 다른 모듈에서 import 받아 사용할 수 있도록 지원합니다. 하지만 Single Application 내에서만 사용 가능하므로, 회사 내 또는 조직 내 공유해 사용하기에는 부족합니다. 2. Npm pachaging -> 모듈은 재사용을 위해 npm 패키지가 가능합니다. 패키지는 npm install을 통해서 쉽게 사용이 가능합니다. 하지만 이는 조직 내 특화된 기능을..