nestjs

Node.js/TypeORM

[TypeORM] 복합키 (다중컬럼 PK) 지정하기

🐳 문제계층형 데이터 구조를 저장하기 위해 Custom Closure Table을 구현하는데PK값이 없다는 아래와 같은 에러가 발생했다.MissingPrimaryColumnError: Entity "CategoryClosure" does not have a primary column. Primary column is required to have in all your entities. Use @PrimaryColumn decorator to add a primary column to your entity.  📋 Entity 코드작성한 Entity 코드는 아래와 같다.@Entity()@Unique(['ancestorId', 'descendantId'])export class CategoryClosure..

테스트 코드

[NestJS] 실제 DB와 연결해 Service Layer 테스트하기 + runInBand

이 글은 인프런 강의 박우빈 님의Practical Testing: 실용적인 테스트 가이드를 수강하고 참고하여 작성한 게시글입니다. DB 접속 없이 Service Layer를 테스트하고 싶다면 이 글을 참고해 주세요. ※ 잘못된 점이 있거나 다른 의견을 가지신 분들 댓글로 내용 남겨 주세요 ! 언제나 환영입니다. 🐳 서론 지금 재직하는 회사에서는 테스트코드를 작성하지 않기 때문에 다른 NestJS를 사용하는 곳에서는 Service Layer 를 어떻게 테스트하는지 궁금했다. 그래서 NestJS 테스트코드 강의를 수강해 봤지만 시원하게 Service Layer를 테스트하는 방법을 알려주는 강의를 발견하지 못했다. 그래서 이미 테스트코드 시장이 많이 발전한 Java로 시선을 돌렸고 박우빈 님의 강의를 발견하게..

테스트 코드

[NestJS] Service Layer 를 직접 구현한 Class로 Mocking하기 [TestingModule]

실제 DB를 연결해 Service Layer 를 테스트하는 방법이 궁금하신 분들은 이 글을 참고해 주세요. 🐳문제상황 Service Layer를 테스트하기 위해서는 Repository를 Mocking 하거나 실제 Repository를 사용하거나 하는 방법을 사용해야 한다. 이 글에서는 NestJS에서 제공하는 TestingModule 기능을 활용해 Repository 레이어를 Mocking해 테스트코드를 작성하는 방법을 설명하려고 한다. 🐳 TestingModule을 사용하여 mocking하기 jest 에서 제공하는 기능들 jest.fn , jest.spyOn 등을 이용하여 mocking 한 후에 테스트코드를 작성하는 것도 가능하지만 테스트코드가 길어져 가독성이 떨어지는 것 같아. 다른 방법을 찾아보..

Node.js/Nest.js

Docker로 Mysql 사용해 NestJS 프로젝트와 연결하기

🐳 Mysql Docker Container 생성하기 먼저 mysql Official Image에서 사용법을 살펴보자 docker run --name {Container name} -e MYSQL_ROOT_PASSWORD={your password} -p 3306:3306 -d mysql:tag 1. --name : 컨테이너 이름을 명명한다. 2. MYSQL_ROOT_PASSWORD : 필수적으로 입력해야 하며 root 슈퍼유저의 비밀번호를 설정한다. 이를 이용해서 초기에 데이터베이스에 접근할 수 있다 ! MYSQL_ROOT_PASSWORD This variable is mandatory and specifies the password that will be set for the MySQL root su..

Node.js/Nest.js

[Nest.js] TypeORM을 활용해 공식문서처럼 Repository 만들기

🐳 Repository 란 ? 먼저 Repository의 구현에 앞서 Repository란 무엇인지 알아보자. Repository is just like EntityManager but its operations are limited to a concrete entity. You can access the repository via EntityManager. 위의 글은 TypeORM 공식 문서의 Repository 설명이다. 즉 Repository는 구체적인 Entity에 대한 EntityManager이다. 그렇다면 EntityManager는 무엇일까 ? Using EntityManager you can manage (insert, update, delete, load, etc.) any entity. ..

Node.js/Nest.js

[Nest.js] 게시판 만들기 토이프로젝트 2일차 회고

[Nest.js] 게시판 만들기 토이프로젝트 1일차 ( ERD 그리기 ) [Nest.js] 게시판 만들기 토이프로젝트 1일차 ( ERD 그리기 ) 🐳 시작 계기 및 목표 유튜부 채널 '널널한 개발자' 채널을 보던 도중 "신입 백엔드 개발자 업무역량에 관한 기준은 이정도입니다!" 영상을 보고 간단한 게시판 만들기에 도전해 보기로 했다 ! programmer-hoo.tistory.com 🐳 2일차 회고 📌 Done 공식 문서를 참고해 Repository 구현하기 bycrypt를 사용해 password를 Hash화 하여 저장 jwt 토큰 구현 ( payload 에는 username을 넣어 사용 ) 📌 후기 이번에는 게시글 / 댓글 / 좋아요 기능을 가지고 있는 간단한 게시판을 만들어 보았다. 처음 운동기록..

후뿡이
'nestjs' 태그의 글 목록