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시간 증발은 덤.....
Python으로 코딩테스트를 준비하다 Java로 환승한 이후 메소드들이 머릿속에서 정리가 되지않았다.... ㅠㅠ 이번에 백준 소트인사이드 문제를 풀다가 sort( )를 사용해야하는데 파이썬에서는 다음과 같이 sort( )를 사용하였다. # 오름차순 array.sort() # 내림차순 array.sort(reverse=True) 파이썬은 내림차순으로 정렬할 때 단순히 sort( )에 reverse 옵션을 True로 하여 문제를 해결하였었는데 Java에서는 다음과 같이 sort( )를 사용한다. //오름차순으로 정렬 Arrays.sort(arr); //내림차순으로 정렬 Arrays.sort(arr, Collections.reverseOrder());
개발/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시간 증발은 덤.....
개발/Java 2021. 9. 27. 08:20
Python으로 코딩테스트를 준비하다 Java로 환승한 이후 메소드들이 머릿속에서 정리가 되지않았다.... ㅠㅠ 이번에 백준 소트인사이드 문제를 풀다가 sort( )를 사용해야하는데 파이썬에서는 다음과 같이 sort( )를 사용하였다. # 오름차순 array.sort() # 내림차순 array.sort(reverse=True) 파이썬은 내림차순으로 정렬할 때 단순히 sort( )에 reverse 옵션을 True로 하여 문제를 해결하였었는데 Java에서는 다음과 같이 sort( )를 사용한다. //오름차순으로 정렬 Arrays.sort(arr); //내림차순으로 정렬 Arrays.sort(arr, Collections.reverseOrder());