전체 글
-
mysql에서 emoji를 저장하기 위한 케릭터셋 설정설치&설정 관련/MariaDB & Mysql 2022. 12. 23. 17:49
mysql에서 emoji를 저장하기 위한 케릭터셋 설정 utf8 to utf8mb4 utf8 인코딩은 한 문자를 나타내기 위해서 1바이트에서 4바이트까지를 사용합니다. 그런데 말입니다. mysql의 utf8은 3바이트로 이루어져 있습니다. emoji를 제대로 표현하기 위해서는 4바이트의 문자열이 필요합니다. 아래는 utf8 에서 utf8mb4로 변환 하는 내용을 정리 하였습니다. MYSQL에서 설정 변경 mysql 5.5.3 이상에서만 utf8mb4를 사용할 수 있습니다. 참고 설정 변경 # linux - my.cnf # windows - my.ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-charact..
-
npm 모듈 tgz 형식으로 다운로드 받기NodeJS 2022. 12. 20. 17:48
npm 모듈 tgz 형식으로 다운로드 받기 특정 npm 모듈을 로컬에 받으려고 npmjs를 아무리 찾아보아도 못찾고, stackoverflow를 검색하니 명령어를 찾았습니다. 명령어 # 다운로드 url 확인 $ npm view [모듈명@버젼] dist.tarball # 직접 다운로드 $ npm pack [모듈명@버전] 예제 # 다운로드 url 확인 $ npm view react-mui-validation dist.tarball https://registry.npmjs.org/react-mui-validation/-/react-mui-validation-0.2.0.tgz # 직접 다운로드 $ npm pack react-mui-validation npm 명령어를 이용하면 url을 얻거나, 직접 다운 받을 수..
-
AWS PRESIGNED-URL 생성시 태그 추가설치&설정 관련 2022. 12. 19. 17:48
AWS PRESIGNED-URL 생성시 태그 추가 AWS S3에 파일 업로드 url 생성시 Tag를 설정하는 방법 입니다. 필요 모듈 정보 @aws-sdk/client-s3 코드 예제 function getAwsConfig() { const awsInfo = { region: 'ap-northeast-2' }; awsInfo['credentials'] = { accessKeyId: 'AWS_ACCESSKEY', secretAccessKey: 'AWS_SECRETKEY', }; return awsInfo; } const s3Client = new S3Client({ ...this.getAwsConfig() }); async function createSignedUrlWithTagExample() { con..
-
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..