전체 글

전체 글

    그냥 일기 (20230406)

    1. 심바(김채원) 탄생 예정일 보다 4일 빠른 3월 21일에 심바가 태어났다. 갑자기 출산휴가를 사용하고 앞에 놓인 일들을 하나씩 처리하면서 지냈다. 이제 부양가족이 생겼으니 더 열심히 해야겠다. (최근까지 조리원에서 아내랑 시간을 보내다보니 뭐가 됐든 엄마역할이 제일 힘들다는 걸 느꼈다) 2. copilot, chatgpt 지금까지 copilot과 chatgpt가 내 성장에 방해가 된다는 생각이 들어 사용하지 않았다. 하지만 어느 날 문득 해당 AI 툴들을 활용해서 좀 더 좋은 생산성을 갖는 게 앞으로 내 커리어에 있어서 더 좋은 방향이라는 생각이 들어 홀린 듯이 결제 후 사용 중이다. 둘 다 너무 편리하게 사용하고 있지만 AI가 추천해 준 코드에 문제가 없는지 확인하는 단계가 꼭 필요하다는 생각..

    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 공..