일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 타입챌린지
- 월간cs
- configservice
- microsoft azure openai
- npm
- Type Challenge
- 회고
- TypeScript 타입챌린지
- mysql boolean
- 타입 챌린지
- 해커톤
- 백엔드
- nestjs
- mysql
- HTTP
- configmodule
- TypeScript
- node.js
- type-safe configservice
- 스터디
- network
- typeorm
- 회고록
- 타입스크립트
- 이펙티브 타입스크립트
- 와글와글
- typescript type challenge
- 굿바이 2024년
- 코딩테스트
- 2024년 회고록
- Today
- Total
목록Framework (14)
iamkanguk.dev

필자는 Nest를 개발할 때 Service와 Repository를 거쳐온 결괏값을 Client로 반환할 때 Response DTO 객체로 만들어서 Controller 계층으로 넘기고 Controller에서 클라이언트로 결괏값을 반환할 때 ResponseEntity 객체에 넣어서 반환한다. ResponseEntity를 사용한 이유는 무엇인가요? ResponseEntity는 뭐 특별한 라이브러리나 그런것이 아니다. 원래 초기에는 개발할 때 그냥 return { age: 10, name: '' } 이런 식으로 했었는데 가시성 측면으로도 좋지 않아 보였고, 추후 유지보수적으로도 좋지 않다고 생각했다. Response DTO를 도입한 것도 그 이유다. 그래서 뭔가 객체를 하나 만들어서 반환해준다면 코드적으로 더욱..

지금 NestJS 커뮤니티에 들어와 있는데 samchon 님이 개발하신(?) Nestia 라이브러리를 다들 많이 사용하시는 것 같아서 나도 프로젝트 하면서 부담가지지 않으면서 생각날때마다 조금씩 해보려고 한다. 개인적으로 문서를 보는 능력이 많이 부족하다고 생각되어서 문서를 보면서 직접 공부겸 프로젝트를 해보는 경험도 해보려고 한다. Nestia란? Nestia는 NestJS를 위한 helper library 라고 할 수 있다. Nestia를 사용하게 되면 다음과 같은 도움을 받을 수 있다고 한다. - class-validator에서 런타임 유효성 검사기는 기존보다 20,000배 빠르다. - class-transformer에서 JSON Serialization은 기존보다 200배 빠르다. - Swagge..

지금 하는 맵필로그 프로젝트 이전에는 모두의 여행, 트리퍼라는 프로젝트를 했는데, 그 프로젝트는 express와 javascript로 개발을 했었다. 단순히 express로 개발을 할 때는 DTO와 Entity 그리고 OOP에 대해서는 진짜 아예 사용하지도 않았고 무지했던 것 같다. 하지만, Nest를 시작해 보면서 자연스럽게 DTO와 Entity를 알아야 했고, 프레임워크 특성상 OOP의 개념도 가지고 있어야 개발에 차질이 없을 것 같아서 이렇게 공부를 시작하게 되었다. 그래서 이번 포스팅에서는 DTO와 Entity 개념이 간단하게 무엇인지, 그리고 Nest에서 그 둘의 상관관계에 대해서 알아보도록 하자. Entity Entity는 실제 DB 테이블과 매핑되는 핵심 클래스이고, 데이터베이스 테이블에 있..

async findMarkOnSpecificId( mark: MarkDto, ): Promise { const queryRunner = this.dataSource.createQueryRunner(); await queryRunner.connect(); await queryRunner.startTransaction(); try { const markCategoryName = await this.markCategoryRepository.findOne({ select: { title: true, }, where: { id: mark.getMarkCategoryId, status: StatusColumnEnum.ACTIVE, }, }); // metadata 부분 조회하기 const markMetadatas ..