GET 메소드를 활용하는 Restful 방식의 API를 구성할 때, 해당 테이블 내의 모든 정보를 가져오는 findAll( ) 방식의 API는 테이블에 데이터가 많아질 경우, 성능 이슈와 서버 메모리 사용량 증가로 인한 비용 이슈가 발생할 수 있다. Page 단위로 데이터를 분할하여 전달하는 방식으로 TypeORM의 createQueryBuilder( )를 활용하여 구성하였다. // user.service.ts async findCollectors(page, limit) { return await this.repository .createQueryBuilder('user') // user 테이블로 전달할 쿼리문임을 정의합니다. .where('user.role = COLLECTOR') // user 테이블..
필요한 npm 패키지들을 설치하고, npm run start:dev를 하니 아래와 같이 error가 발생하였다. Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /node_modules/~ 이유는 현재 사용하고 있던 node 버전과 호환되지 않는 npm 패키지를 설치해서였다. 해결 방법은 두 가지가 있다. node 버전을 올린다. 에러를 발생시킨 npm 패키지의 버전을 호환가능한 버전으로 재설치한다. 대부분 node 버전을 올리기도 하지만, 다른 사람들과 node 버전을 맞춰야하는 경우에는 1번의 방법을 사용하기 힘들다. 내 경우에는 crypto-random-string이 버전 호환 문제로 이슈가 발생하였다. 현재 최신 버전은 4.0인데 pack..
스프링 부트를 공부하던 중에 위와 같이 테스트 코드 작성하고 실행하였는데 아래와 같이 java.lang.IllegalStateException: Failed to load ApplicationContext가 발생하였다. 구글링해서 찾은 방법은 @WebAppConfiguration( )을 해당 테스트 클래스 위에 넣는 것 이었다. 하지만 여전히 동일한 에러가 발생하였는데 생각해보니 h2를 끄고 있었다. 결국 원인은 인메모리 DB인 h2를 안키고 테스트를 실행해서 발생한 것이다. 2시간 증발은 덤.....
개발/NestJS 2021. 10. 1. 08:20
알림톡을 추가할 때, 카카오 비즈니스를 통해 직접하는 것보다 Bizm이라는 알림톡 대행 서비스를 사용하는 것이 편리하다. 비즈엠 - 카카오톡 비즈메시지 공식딜러사 알림톡 친구톡 싸고 편하게 전송 www.bizmsg.kr Bizm 가이드를 따라면, 프로필과 userid 값을 받을 수 있다. // bizm.service.ts @Injectable() export class BizmService { async sendMessage(phone: string, templateId: string, message: string) { return axios.post( 'https://alimtalk-api.bizmsg.kr/v2/sender/send', [ { message_type: 'at', phn: '82' + ..
개발/NestJS 2021. 9. 30. 08:20
GET 메소드를 활용하는 Restful 방식의 API를 구성할 때, 해당 테이블 내의 모든 정보를 가져오는 findAll( ) 방식의 API는 테이블에 데이터가 많아질 경우, 성능 이슈와 서버 메모리 사용량 증가로 인한 비용 이슈가 발생할 수 있다. Page 단위로 데이터를 분할하여 전달하는 방식으로 TypeORM의 createQueryBuilder( )를 활용하여 구성하였다. // user.service.ts async findCollectors(page, limit) { return await this.repository .createQueryBuilder('user') // user 테이블로 전달할 쿼리문임을 정의합니다. .where('user.role = COLLECTOR') // user 테이블..
개발/NestJS 2021. 9. 29. 08:20
필요한 npm 패키지들을 설치하고, npm run start:dev를 하니 아래와 같이 error가 발생하였다. Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /node_modules/~ 이유는 현재 사용하고 있던 node 버전과 호환되지 않는 npm 패키지를 설치해서였다. 해결 방법은 두 가지가 있다. node 버전을 올린다. 에러를 발생시킨 npm 패키지의 버전을 호환가능한 버전으로 재설치한다. 대부분 node 버전을 올리기도 하지만, 다른 사람들과 node 버전을 맞춰야하는 경우에는 1번의 방법을 사용하기 힘들다. 내 경우에는 crypto-random-string이 버전 호환 문제로 이슈가 발생하였다. 현재 최신 버전은 4.0인데 pack..
개발/Spring 2021. 9. 28. 08:20
스프링 부트를 공부하던 중에 위와 같이 테스트 코드 작성하고 실행하였는데 아래와 같이 java.lang.IllegalStateException: Failed to load ApplicationContext가 발생하였다. 구글링해서 찾은 방법은 @WebAppConfiguration( )을 해당 테스트 클래스 위에 넣는 것 이었다. 하지만 여전히 동일한 에러가 발생하였는데 생각해보니 h2를 끄고 있었다. 결국 원인은 인메모리 DB인 h2를 안키고 테스트를 실행해서 발생한 것이다. 2시간 증발은 덤.....