티스토리 뷰

Backend/NestJS

1장. NestJS

맹정 2023. 9. 25. 22:42
수업 들으며 메모 하듯이 작성한 글이라 정리가 안되어 있을수도 있습니다.

DI 의 목적?

  • 느슨하게 디커플링하기 위해서, 작은놈이 큰놈에게 주입시키면 된다 라고 생각
  • 데코레이터 - DI(Denpendency Injection)
  • 데코레이터는 호출 됐을때, 바로 실행됨

  1. DTO : 데이터를 객체화로 변환해서 보내는것
  2. VO : value 를 가지고있는 객체
  3. 리액트 : MVVM
  4. 리액트 라우터 : controller
  5. 모듈 : 하나의 컨텍스트를 나눈것
  • corepack : nodev16 이상이면 같이 깔림
    • corepack enable ⇒ 그래야 pnpm 사용가능
    • prepare pnpm

NestJS

  • jest—coverage : 높을수록 좋음/ 80% 이상 이런식으로
  • NestFactory : Factory pattern
    • 싱글톤 : readonly, 오직 혼자만 볼수 있음
  • RouterExplorer : Map(key,value)
  • watch 안걸어서 계속 돌지 않고 있음
    import { Controller, Get } from '@nestjs/common';
    import { AppService } from './app.service';
    
    @Controller() //첫번째 네임스페이스
    export class AppController {
      constructor(private readonly appService: AppService) {}
    
      @Get() //뒤에 오는 링크
      getHello(): string {
        return this.appService.getHello();
      }
    }
    
     

객체지향 설계

  • 비즈니스로직 : 서비스 영역에서 calcTax(price) 부가세 계산이라는 비즈니스 로직을 구현
  • 도메인 영역 : 나혼자 다른 레이어의 의존을 하지않음, 독립적 => 유저 목록 달라
  • 인터페이스 영역 : 컨트롤러
  • 코딩은 탑다운(topdown) 방식으로 ⇒ end to end(e2e 테스트) ⇒ 보통 인터페이스까지만 짜는데 인프라까지는 짜면 좋다
  • 개방폐쇄 법칙  : 비순수함수로 짜지말자
  • 리스코프 치환 법칙 : covarient
  • ISP : 데이터베이스 정규화
  • ⇒ 처음부터 확장성을 고려해서 짜자
  • 보통 인터페이스까지만 짜는데 인프라까지 짜면 좋다
  • nest 는 이벤트 루프로 타이머단계 ⇒ 대기 콜백 단계 ⇒ 유휴,준비단계 .. 이런식으로 들어가게됨


  • 객체지향 설계 원칙 #SOLID
    • SRP (단일 책임 원칙, Single Responsibility) : 객체는 단 하나의 책임만 가져야 한다.
    • OCP (개방-폐쇄 원칙, Open-Closed) : 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.
    • LSP (리스코프 치환 원칙, Liskov Substitution) : 상속받은 하위 클래스는 언제나 상위클래스로 교체 가능하다.
    • ISP (인터페이스 분리원칙, Interface Segregation) : 클라이언트는 미사용 메서드와 의존관계를 맺으면 안된다.
    • DIP (의존역전 원칙, Dependency Inversion Principle) : 의존 관계를 맺을 때, 변화하기 어려운 것에 의존한다

'Backend > NestJS' 카테고리의 다른 글

2장 NestJS  (0) 2023.09.25
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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