본문 바로가기

분류 전체보기160

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.
인증 ( 세션, 쿠키, 로컬 ) 세션 기반 인증 세션은 로그인에 성공한 유저가 서비스를 사용하는 동안 저장하고 있는 유저 정보입니다. 서버는 세션을 생성하고 나서 세션을 데이터베이스에 저장하고, 이후 사용자의 요청에 포함된 세션 정보가 세션 DB에 저장되어 있는 지 확인합니다. 브라우저에는 데이터를 저장할 수 있는 공간이 있습니다. - 현재 열려있는 브라우저을 닫거나 새로운 탭 또는 창을 열면 데이터가 삭제되는 세션 저장소 - 창이 닫히더라도 데이터가 남아 있는 로컬 저장소, - 간단한 데이터를 저장할 수 있는 쿠키가 있습니다. 세션방식의 단점은 악의적인 공격자가 브라우저에 저장된 데이터를 탈취할 수 있다는 것입니다. 비록 세션을 알 수 없는 문자열로 만들었다고해도, http는 보안에 취약하기 때문에 중간에 전달되는 데이터 역시 가로챌.. 2022. 7. 1.