일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 경제
- 채권
- 프로그래머스 알고리즘 공부
- 백준알고리즘
- 재테크
- 독서
- 화장품
- 투자
- 주식
- 다독
- 알고리즘공부
- Java
- 성분
- 돈
- 책을알려주는남자
- algorithmTest
- 책알남
- algorithmStudy
- 서평
- algorithmtraining
- 독후감
- 알고리즘트레이닝
- 프로그래밍언어
- 자바
- C
- 지혜를가진흑곰
- 자바스크립트
- C++
- 알고리즘 공부
- JavaScript
- Today
- Total
목록[Snow-ball]server/NestJS (9)
탁월함은 어떻게 나오는가?
프로그래밍을 하다보면 log를 기록해야지 좋은 경우가 많다. 그렇기 때문에 나는 NestJS를 사용하는 프로젝트에서는 log를 Winston을 사용하여서 log를 남겨놓는다. 기존의 로그를 남기는 방식은 error.log / combined.log / query.log 에 계속적으로 남겨놓는 방식으로 처리를 하였다. 하지만, 로그를 좀 더 간편하게 찾아볼 필요가 있다고 생각이 들어서 연/월/일로 폴더가 생성되고 일자폴더에 규격에 맞게 저장되길 원해서 수정하게 되었다. 적용 코드: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4..
nestjs 프로젝트로 websocket을 구현해서 postman으로 테스트를 해보겠다. 간단하게 테스트를 해볼것이기 때문에 코드레벨은 간단히 정의해보았다. 88번 포트로 웹소켓 통신을 시작할 것이고, 연결이 되기 시작했다면 'message'라는 값으로 통신을 시작할 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 @WebSocketGateway(88, { transports: ['websocket'], cors: { origin: '*', methods: ['GET', 'POST'], transports: ['websocket', 'polling'], cr..
Nestjs에서 Swagger를 사용하는데 base.offset.pagination.intput.dto에 어노테이션을 선언을 해도 지속적으로 에러가 발생했다. 기존의 많은 프로젝트에도 똑같이 적용하고 잘됬던 코드라 많이 의아했다. 문제의 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 export class BaseOffsetPaginationInputDto { @IsNumber() @ApiProperty({ type: Number, required: true, default: 1, }) public readonly page!: number; // 리스트 행 개수 @IsNumber() @ApiProperty({ type: Number, required: true..
nest.js에서 웹소켓을 사용하려고 했는데 아래와 같은 에러가 발생했다. this.metadataScanner.getAllMethodNames is not a function 나의 경우에는 @nestjs/core 와 @nestjs/platform-socket.io 의 버전이 안맞아서 발생한 에러였다. 업데이트 전 업데이트 후 해결 방법: 1) 버전을 맞춰주기 위해 @nestjs/core 를 삭제해준다. 1 npm uninstall @nestjs/core cs 2) 최신 버전이기 때문에 npm i를 진행해준다. 1 npm install @nestjs/core cs
nestjs에서 스웨거 사용시 아래와 같은 순환 참조 에러가 발생했다. nestjs의 공식 홈페이지에서는 밑에 에러와 동일하게 type: () => ClassType 을 하라고 한다. 하지만, 나같은 경우에는 그게 해결이 되지 않아 다른 방법을 찾았다. 에러 Error: A circular dependency has been detected (property key: "SOCCER"). Please, make sure that each side of a bidirectional relationships are using lazy resolvers ("type: () => ClassType"). 변경 전 코드 코드는 회사내의 코드를 사용하기 어려워 유사하게 만든 코드이다. 1 2 3 4 5 6 7 8 9 ..
문제점: 네스트js로 가드(Guard)를 사용하고 있었다. 필자는 컨트롤러 라우터단에서 사용했다. 하지만, @UseGuards를 사용할 때 갑자기Cannot read properties of undefined (reading '__garde__') 발생했다. 필자는 DDD를 적용했기 때문에 모든 컨트롤러단이 각 ts파일로 나눠져있다. 그래서 에러가 발생해 컨트롤러단으로 이동도해보고 여러가지를 시도했지만, 그럼에도 불구하고 에러가 지속적으로 발생하는 파일만 발생하는 현상을 겪었다. 필시 여러가지 테스트를 진행해보면서 가드쪽에서 문제가 발생하는 것이 아니라고 판단을 했다. 왜냐하면 가드가 문제라면 글로벌, 컨트롤러, 라우터 단에서 모두 에러를 발생했어야 했기 때문이다. 그렇게 여러번 삽질을 하게 되었다. 해..
유닛테스트 테스트 구조 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 describe('UsersExistsNicknameUseCase', () => { let service: UsersExistsNicknameUseCase; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ providers: [ UsersExistsNicknameUseCase, PrismaService, { provide..
최근에 프로젝트가 NestJS로 만들고 있으면서 백단을 구축하고 있다. 하지만, @Get('/')요청으로 Board들의 list 를 불러오기위해 컨트롤러 단에서 @UseGuards를 사용하지 않았는데도 불구하고, Response가 Unauthorized가 발생했다. 물론, 내가 실수를 한부분이 있는지 확인을 했지만 없었다. 혹시 몰라서 @Post로 요청을 해봤더니 정상적으로 동작을 하게 됬다. 이게 뭐지?? 고민을 하고 개선을 해보다가 혹시나 해서 @Get('/)요청을 맨위로 올렸더니 정상적으로 작동이 됬다. 그래서 몇가지 테스트를 했더니 @UseGuards가 없는 컨트롤러단은 위에 2개까지 있을때는 @Get 요청을 했을 경우 401 Unauthorized가 발생하지 않았다. 결론적으로는, @UseGua..