본문 바로가기

BE/Node12

DTO vs Entity Entity 클래스와 DTO 클래스를 분리하는 이유 View Layer와 DB Layer의 역할을 철저하게 분리하기 위해서 테이블과 매핑되는 Entity 클래스가 변경되면 여러 클래스에 영향을 끼치게 되는 반면 View와 통신하는 DTO 클래스(Request / Response 클래스)는 자주 변경되므로 분리해야 한다. Domain Model을 아무리 잘 설계했다고 해도 각 View 내에서 Domain Model의 getter만을 이용해서 원하는 정보를 표시하기가 어려운 경우가 종종 있다. 이런 경우 Domain Model 내에 Presentation을 위한 필드나 로직을 추가하게 되는데, 이러한 방식이 모델링의 순수성을 깨고 Domain Model 객체를 망가뜨리게 된다. 또한 Domain Model을.. 2022. 7. 28.
Nest 맵 좋은 사이트 https://tristy.tistory.com/39?category=993422 [Nest Js] Nest Js 공식 문서 파헤치기 - OverView 2 트리스티가 Nest Js를 공부하며 남긴 기록입니다. 틀린 내용은 언제든지 말씀해주세요 ~! 📣 Controller란 무엇인가? Controller란 사용자(client)의 요청(request)을 처리하고, 응답(response)을 반환하는 역할 tristy.tistory.com Interceptors Interceptors have access to response/request before and after the route handler is called. Registration Directly in the controller cl.. 2022. 7. 28.
Nest.js(5) 로깅 - 애플리케이션의 동작을 기록한다 내장 Logger클래스는 @nest/common 패키지로 제공됩니다. 로깅 옵션을 조절하면 다음과 같이 로깅 시스템의 동작을 제어할 수 있습니다. 로깅 비활성화 로그 레벨 지정 - log, error, warn, debug, verbose 로거의 타임스탬프 재정의. ex) 날짜를 ISO8601 형식으로 변경 기본 로거를 재정의(오버라이딩) 기본 로거를 확장해서 커스텀 로거를 작성 의존성 주입을 통해 손쉽게 로거를 주입하거나 테스트 모듈로 제공 외부 로거 winston 로거의 필요한 기능 - 서비스를 상용 수준으로 운용하기 위해서는 로그를 콘솔에만 출력하는 게 아니라 파일에 저장 - 중요한 로그는 데이터베이스에 저장을 해서 쉽게 검색할 수 있도록 해야 합니다. - 로.. 2022. 7. 2.
Nest.js(4) MySQL 설정 💡 ORM이란? ORM(Object-Relational Mapping)은 데이터베이스의 관계를 객체로 바꾸어 개발자가 OOP로 데이터베이스를 쉽게 다룰 수 있도록 해 주는 도구입니다. SQL문을 그대로 코드에 기술하고 그 결과를 쿼리셋으로 다루는 방식에서 세부 쿼리문을 추상화하는 것으로 발전하였습니다. 개발자는 ORM에서 제공하는 인터페이스를 통해 일반적인 라이브러리를 호출하듯 DB에 데이터를 업데이트하고 조회할 수 있습니다. 데이터베이스 설정 DBeaver와 MySql를 이용해서 개발 한다. ORM 가능한 기능중에 TypeORM 을 사용합니다. @nestjs/typeorm 패키지에서 제공하는 TypeOrmModule을 이용하여 DB에 연결할 수 있습니다. ... import { Type.. 2022. 6. 29.