TIL,WIL(일간,주간 회고)
[node][nvm][turbo][pnpm] 트러블 슈팅
여러가지 문제가 얽혀서 그냥 문제들 쭉 나열함1. 현제 백엔드는 codeDeploy를 사용해서 배포중이다. 깃액션 -> 레포지토리를 zip파일로 만들기 -> zip파일 codeDeploy 통해서 ec2로 배포대략이런 방식이다 깃헙 레포에는 pnpm-lock.yaml 파일이 9.0으로 최신 코드가 반영되어있음배포가 된 ec2에는 계속 이전 버전인 6.x 버전대의 pnpm-lock.yaml 파일이 존재하고 덮어쓰기가 안되는데이건 아직 왜 이런지 모르겠음현재는 그냥 지우고 ec2에서 다시 pnpm install을 통해서 pnpm-lock.yaml파일 생성함2. Cannot find module '/app/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript..
[TIL][트러블 슈팅][rxjs]에러 처리
회사에서 rxjs를 사용하는 부분이 있는데pipe안에 여러개의 concatMap을 사용중이고저 rxjs를 사용하는 함수가 아래 코드처럼 try catch로 감싸져있어서 try{ funcA() //rxjs사용 함수}catch(e){ throw new InternalServer에러(e)}함수에서 에러가나면 throw로 잘 던지고 있는줄 알았는데서버 crash나고 있었음 (pm2로 금방 다시 시작은 됨)확인해보니 rxjs의 pipe내부에서 발생한 에러는try catch에서 잡히지 않음try { const source$ = rxjs.of(1, 2, 3); const mapped$ = source$.pipe( rxjs.operators.map(value => { if (value ===..
[TIL] http/1.1와 http/2 차이
https://www.cloudflare.com/learning/performance/http2-vs-http1.1/위 아티클을 보고 정리한 내용입니다 요약 http1.1 보다 http2가 더 빠르다이유 : 책으로 예를 들었을때, http1.1은 책을 나눠서 한장씩(혹은 좀 더 많이) 순서대로 하나 보내고 잘 받았으면 또 하나보내고 이런식이고http2는 챕터를 나눠서 챕터별로 번호를 매기고 한번에 다 보내면 받는쪽에서 조합해서 봄보내는 쪽에서 어느 부분이 중요한지 미리 정해놓으면 받는 쪽에서 그 부분을 먼저 페이지에 로드함번역what is HTTP? why is HTTP/2 faster than HTTP/1.1 http란 무엇이고 왜 2가 1보다 빠른가?http는 하이퍼텍스트 전송 프로토콜을 위한 표준..
[TIL]<s3, nestjs, aws-sdk> listObjectsV2 access denied 에러
nestjs서버에서 aws-sdk를 사용하여 s3에 있는 객체리스트를 받아오는 코드 구현중 "access denied"에러 발생 확인해보니 iam 계정에 붙은 정책에 action과 resource가 아래와 같이 있을 때, { "Statement": [ { "Sid": "123", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", ], "Resource": [ "arn:aws:s3:::my-files/*" ] } ] } ListBucket 액션의 대상 리소스는 버킷이어야 동작한다 위와 같이 와일드카드(*)로 되어있으면 동작하지 않음 계속 GetObject는 되는데 왜 쟤만 access denied 되는지 상관없는 버킷정책과, 객체에 붙은 권한..
[TIL]github actions aws-credential 에러 (간단한 트러블 슈팅)
아무리 작은 트러블이라도 기록해보려고 한다 에러에서 5분 이상 시간을 빼앗긴 것들은 다 기록 해보도록 하자 configure-aws-credentials 를 사용할 때 - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v3 with: role-to-assume: ${{ secrets.AWS_DEPLOY_ROLE }} aws-region: ap-northeast-2Credentials could not be loaded, please check your action inputs: Could not load credentials from any provider..
[TIL] mongoose(몽고디비) dot notation, filtered positional operator
dot notation 몽고 디비의 dot notation이란 중첩된 객체의 필드를 참조할 때 사용한다 viewCount 배열이 아래와 같음 viewCout: [ {site:’hihi’, count:21}, {site:’aaaa, count:21}, {site:’bbbb, count:21}, ] findOneAndUpdate( {_id': id, 'viewCount.site': ‘hihi’ },{//여기 update query }) 여기서 viewCount.site가 dot notation을 사용한 부분인데 (그냥 점 말하는 듯) 따라서 위 쿼리는 _id:가 id이고 site가 ‘hihi’인 문서를 찾아서 update하는 쿼리이다 filtered positional operator $[elem]이렇게 사..
[TIL][리눅스] .env 파일 변경확인 법(aws 코드디플로이)
아래의 shell 스크립트의 의미는 sha256 암호화 알고리즘을 사용하여 저 /var/app/.env파일을 암호화하면 c3e2a7d1f4b9e6f8c0b2a9e5d7f6c8a3 /var/app/.env 이런식으로 나오는데 이중에서 앞에있는 부분만 빼서 hash변수에 담으라는 뜻이다 그리고 그걸 tmp/old_hash.txt에 넣으라는 뜻 hash=$(sha256sum /var/app/.env | awk '{ print $1 }') echo $hash > /tmp/old_hash.txt나는 환경변수 파일이 변경되면 특정 동작을 하고 변경되지 않으면 동작하지 않도록 구현할 때 사용하였다 aws의 코드디플로이를 사용하면 before_install -> afterInstall -> applica..
[TIL] 엄청단순한 postman 오류?
회사 프로잭트랑, 개인 프로잭트 중에 처음 요청은 이상한 값이 나오거나 에러가 나고 두번째부터 정상적으로 동작해서 서버 쪽 디버깅하고 확인해봄 알고보니 포니스트맨에서 params가 빠져서 보내진것이었다 params를 수정하고 그냥 send를 누르면 변경이 적용 안된 리퀘스트가 보내짐 params에 값을 넣고 엔터 치고 save까지 하고 보내는 습관 들여야겠다