본문 바로가기

Back-end61

TypeORM : Postgresql 42703 에러 ( + as 사용시 소문자만 나오는 경우 해결법) TypeOrm으로 Postgresql 이용 도중 Select 문을 사용하다가 발견한 에러이다. driverError: error: column "a.createdAt" does not exist code: '42703' error let query = this.articleRepository .createQueryBuilder('a') .select([ 'a.id as id', 'a.title as title', 'a.createdAt as createdAt', ]); ... query = query.orderBy('createdAt', 'DESC'); 게시글 목록을 불러오기 위하여 대충 위처럼 코드를 짰다. (완전 똑같지는 않다) 그런데, as를 썼는데 return 값이 createdAt이 아닌 cre.. 2023. 3. 11.
Nest.js : Session을 이용한 Google OAuth 구현 이 글은 Nest.js 에서 Google OAuth를 이용해서 세션 로그인을 구현하는 법을 다루고 있습니다. 또한, 이 글은 전에 작성한 세션 글에서 이어서 쓰는 글입니다. 작성자의 뇌피셜이 적당히 들어가니 주의해서 읽어주시기 바랍니다. https://suloth.tistory.com/22 Nest.js : Nest.js로 Redis와 연동하여 세션 로그인 구현하기 (1) 왜 구글에 nest.js 레디스 세션 로그인을 치면 레디스를 캐시모듈로만 활용하는 글들만 나올까... 나의 구글링 실력의 부족일지도 모르겠다. (뭐 결국 삽질하다보면 나오긴 하는데...) (물론, 캐시 suloth.tistory.com https://suloth.tistory.com/23 Nest.js : Nest.js로 Redis와 .. 2023. 3. 5.
Nest.js : Ports and Adapters Architecture 구현하기 (3) - Test Ports and Adapters Architecture를 구현하면서 테스트 코드를 작성중에 생긴일이다. 또한, Jest를 이용하여 void 함수를 어떻게 처리하냐에 대한 내용도 있다! 테스트를 작성하는데, 나는 기능 별로 port를 만들어 port마다 함수를 하나씩 작성한게 아니라 Service 별로(리소스 별로) port를 만들어서 거기다가 함수를 몽땅 때려박는 형식으로 작성을 했다. 그러다 보니 유닛 테스트 코드를 작성할 때, 자그마한 문제가 발생했다. 먼저, 내가 처음에 짜둔 코드를 봐보자. // auth.service.spec.ts class MockUserRepositoryOutboundPort implements UserRepositoryOutboundPort { private readonl.. 2023. 2. 26.
Nest.js : Nest.js로 Redis와 연동하여 세션 로그인 구현하기 (2) 이번 글은 Nest.js에서 Swagger를 사용하여 로그인 인증을 하는 방법을 찾으면서 쓴 글이다! JWT를 사용할 때에는 ApiBearerAuth를 추가해서 Login해서 나오는 토큰값을 추가해주면 되었는데, 세션은 어떤식으로 해야할지 감이 잡히지 않았다. 그래서 세션은 정확히 어떤식으로 동작하는지 공부할 필요가 있었다. 우선, 세션은 Cookie를 이용해서 정보를 주고 받는다. 클라이언트에서 로그인 요청을 보내면, 서버 측에서 session Id를 클라이언트에 전달하고 클라이언트에서는 session Id를 쿠키에 저장해서 보관한다. 그 후, 클라이언트는 서버에게 요청을 보낼 때 마다 HTTP 헤더의 Cookie에 해당 session Id를 넣어 함께 전달한다. 이것을 서버가 받으면 해당 sessio.. 2023. 2. 23.