전체 글
Nest.js 에서 역직렬화 하기
최근까지 repository 계층에서 리턴되는 타입에 entity를 그대로 사용했었다. 하지만 단위 테스트를 작성하다 보니 entity를 타입으로 지정하면 테이블 조인되어 있는 부분까지 명시해줘야 하는 불편함이 있었다. 이에 아웃풋 타입 DTO를 작성해 하려다보니 계속해서 실제 리턴타입과 명시된 아웃풋 DTO가 다르다는 에러가 발생했다. 내가 모르는 리턴 타입에 대한 DTO 작성 방법에 대해 찾다 보니 역직렬화에 대해 알 수 있었다. 역직렬화를 말하기전에 직렬화에 대해서 말하자면 객체(class) 형태의 데이터를 json 형태로 변환하는 과정이다. http 통신을 통해 데이터를 주고받을 때 json으로 주고받기 때문에 서버로 넘어온 데이터를 직렬화를 통해 객체(class) 형태로 바꿔주기 위해 필요한 ..
Nest.js custom decorator 사용하기
nestjs에선 decorator에 대한 여러 가지 기능을 제공한다. 먼저 request에 해당하는 부분에 데이터를 데코레이터를 사용해 핸들링할 수 있고, 여러 데코레이터들을 하나로 묶는 기능도 제공한다. 1. request 관련 데이터 커스텀 데코레이터 사용하기 import { createParamDecorator, ExecutionContext } from '@nestjs/common'; export const User = createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); return request.user; }, ); 해당 코드는 nestjs 공..
테스트 구축하기 관련 발표 자료
리팩터링 2판 챕터 4 테스트 구축하기에 대한 세미나 발표 자료이다. 리팩터링 책에선 테스트 코드에 대해 중요하다 하지만 자세히 다루고 있지 않기 때문에 간단한 TDD에 대한 설명과 내가 테스트 코드 공부하면서 느꼈던 것들을(+ 시행착오) 정리했다. 1. chapter 04_ 요약 리팩터링 2판의 챕터 4는 테스트 구축하기에 대한 내용이다. 하지만 테스트에 대해 자세히 다루지 않고 아래와 같이 구현코드에 대한 간단한 테스트 + 약간의 팁으로 끝난다. 해당 챕터를 요약해서 세미나를 준비하다 보니 테스트코드를 해본 적 없는 사람들이 대상이었기 때문에 내 마음대로 발표 자료로 만들기 좋은 문장 두 개를 가져와 발표를 준비했다. 2. 발표 자료로 만들기 좋은 문장 두 개 먼저 TDD에 대한 문장 (테스트를 작성..