분류 전체보기
-
git branch main으로 설정하기설치&설정 관련/git 2022. 12. 15. 17:45
2020년 6월 236857: all: replace usages of whitelist/blacklist and master/slave 에서 인종 차별적 요소나 주종 관계의 의미를 담는 whitelist/blacklist와 master/slave를 사용하지 말자는 발제가 있었습니다. github도 기본 branch명을 master에서 main으로 변경하였습니다. master => main 변경 branch 생성시 -M 옵션을 주게되면 해당 branch가 기본이 됩니다. $ echo "# hello world" >> README.md $ git init $ git add README.md $ git commit -m "first commit" $ git branch -M main $ git remote ..
-
Nginx를 통한 PROXY 통신시 간혈적인 502 오류 발생설치&설정 관련 2022. 12. 14. 17:44
구조 API 서버를 ECS로 배포시 간혈적으로 502 오류가 발생하였습니다. 원인으로 NGINX의 로그를 확인해본 결과 아래와 같은 로그를 확인하였습니다. 2022/09/22 17:24:42 [error] 2650#2650: *1202397 connect() failed (110: Connection timed out) while connecting to upstream, client: 172.10.6.7, server: , request: "GET /mobilecheck/ HTTP/1.1", upstream: "https://172.10.6.175:443/", host: lahuman.github.io" 2022/09/22 17:24:52 [error] 2650#2650: *1202419 connect..
-
AWS NLB 는 X-Forwarded-For 헤더와 같은 7 계층 관련 기능을 사용할 수 없습니다.카테고리 없음 2022. 12. 13. 17:43
ALB를 사용했을때, X-Forwarded-For를 이용해서 사용자의 IP를 확인 할 수 있었지만 NLB로 변경 이후 잘못된 IP를 가져오고 있었습니다. 원인으로 NLB는 4계층 장비로 X-Forwarded-For 헤더와 같은 7 계층 관련 기능을 사용할 수 없습니다. 하지만, target group의 속성에서 Preserve client IP addresses 값을 ON으로 하면 확인이 가능합니다. 현재 구조 변경 구조 NLB를 통한 요청은 X-Forwarded-For에 실제 IP가 아닌, 172.10.X.X 를 넣어서 보내줍니다. 성능 이슈로 ALB에서 NLB로 변경하였지만, 사용자의 IP 확인이 불가능하다면 ALB로 원복해야합니다. 참고자료 HTTP 헤더 및 Application Load Balan..
-
nestjs에서 특정 시간동안 게시글 / 댓글 / 대댓글 등록 제한 처리NodeJS 2022. 12. 12. 17:40
nestjs에서 특정 시간동안 게시글 / 댓글 / 대댓글 등록 제한 처리 24시간을 기준으로 게시글, 댓글, 대댓글에 대한 등록 제한처리 요청을 어떻게 처리해야 할지 고민을 했습니다. nestjs의 모듈 중에 Rate Limiting를 보게 되었습니다. 해당 모듈의 기능은 brunte-force 공격에서 보호하기 위한 기능이지만, 이를 수정하여 제가 원하는 동작을 하게 처리 하였습니다. 원하는 동작 필요한 라이브러리 설치 # throttler 설치 $ npm i --save @nestjs/throttler ioredis scalout으로 서버가 여러대일 경우에도 제한이 동일하게 하기 위해서 redis에 throttler정보를 적재하도록 하였습니다. throttler-storage-redis.service..
-
nestjs에서 config모듈을 이용한 설정 관리NodeJS 2022. 12. 9. 16:39
nestjs에서 config모듈을 이용한 설정 관리 nodejs에서는 dotenv 라는 모듈을 이용해서 설정 파일을 관리 하였습니다. nestjs는 config라는 모듈을 제공하고 있는데요. 간단하게 사용법을 알아봅니다. 설치 @nestjs/config 모듈은 내부적으로 dotenv 모듈을 사용하고 있습니다. $ npm i --save @nestjs/config 사용 사용법은 imports에 ConfigModule.forRoot()을 추가 하면 됩니다. // app.module.ts import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; @Module({ imports: [ConfigModule.forR..
-
vscode에서 nestjs의 Debug mode 설정카테고리 없음 2022. 11. 18. 15:13
vscode에서 nestjs의 디버그 설정은 다음과 같습니다. nestjs run nestjs를 debug 모드로 실행합니다. $ npm run start:debug pacakge.json에 아래와 같이 --debug --watch설정이 되어 있습니다. { "name": "nest-app", "scripts": { "start:debug": "nest start --debug --watch" } } vscode debug setting 실행이 완료 되면, vscode의 Run and Degbug 메뉴로 이동을 합니다. create a launch.json file을 클릭해서 새로운 launch.json을 생성합니다. 생성시 타입은 node로 설정합니다. .vscode/launch.json 파일이 생성되면..
-
nestjs swagger에서 enum validate 처리 하기NodeJS 2022. 11. 17. 15:11
문서나 인터넷을 찾아보면 ApiProperty에 enum이용하면 validate가 되는것 처럼 설명되어 있으나 동작하지 않습니다. IsEnum 이라는 Annotation을 이용하면 해결이 되네요. import { ApiProperty } from '@nestjs/swagger'; import { IsEnum, IsNotEmpty, IsNumber, IsString } from 'class-validator'; enum TCD { DQST = 'DQST', DLDR = 'DLDR', DNIF = 'DNIF', DROP = 'DROP', CQST = 'CQST', CLDR = 'CLDR', CNIF = 'CNIF', CROP = 'CROP', } export class CreateCmtPostDDto { @..
-
typeorm에서 페이징 처리시 distinct 실행 문제NodeJS 2022. 11. 16. 15:10
typeorm에서 페이징 처리시, distinct 가 실행되는 문제 처리 방법 다음과 같이 typeorm을 사용하여 페이징 처리를 하였습니다. export class CmtCommentDService { async getCommentList(searchCommentDto: SearchCommentDto) { const dataList = await this.cmtReplyDRoRepository.find({ order: { id: 'DESC' }, skip: searchCommentDto.page * searchCommentDto.limit, take: searchCommentDto.limit, }); return dataList; } } 실형 결과를 보면, 아래와 같이 2회 SQL을 질의합니다. -- ..