오류 해결 14

[S3] Presigned URL 사용해보기 2 / 고용량 파일 업로드 시 CPU 사용량 100% 혹은 서버 터질 때

생성된 Presigned Url을 분석해보면 아래와 같은 구조로 이루어져있다.//Domain - S3 버킷 도메인, 리전https://test.s3.ap-northeast-2.amazonaws.com// Path - 파일 경로, 인코딩된 파일 명/file_name.mp4?// Query Parameters// S3 인증 알고리즘X-Amz-Algorithm=// 업로드 및 다운로드 시 콘텐츠 검사 설정X-Amz-Content-Sha256=// AccessKey, RequestDate, Region, Service, RequestType 순X-Amz-Credential=// 요청 생성 시각X-Amz-Date=// Url 유효 기간X-Amz-Expires=// 검증용 서명X-Amz-Signature=// 서명..

오류 해결/AWS 2024.12.10

[S3] Presigned URL 사용해보기 1 / 고용량 파일 업로드 시 CPU 사용량 100% 혹은 서버 터질 때

내가 여태까지 참여했던 프로젝트들은S3에 업로드할 파일이라고 한다면 700KB 정도 되는 이미지 혹은 문서가 대부분이었다크다고 해봤자 1MB 정도였으니 서버 입장에서 큰 부담은 없었다 하지만 지금 참여하고 있는 프로젝트는 교육 자료를 업로드해야 하다 보니 용량이 큰 강의 파일을 처리해야 했다500MB 정도의 파일이었다500MB는 일반적인 클라이언트 - 서버 간 파일 업로드에서 큰 용량이다특히 서버 입장에서는 이를 한 번에 처리하면 네트워크 대역폭, CPU, I/O 등에 과부하가 발생할 수 있다이를 해결하기 위해 AWS S3의 Presigned URL 방식을 도입했다.     기존 업로드 API 로직은  1. 클라이언트에서 서버로 파일을 전송2. 서버에서 파일을 S3에 업로드한 뒤 Image URL 반환 ..

오류 해결/AWS 2024.12.06

[SQL/PrismaORM] 쿼리문 실행시 테이블을 찾을 수 없다는 오류

prisma 쿼리문을 작성했는데자꾸 테이블을 찾을 수 없다는 오류가 발생했다. 혹시나해서 해당 테이블말고 다른 테이블들로 바꿔봐도 여전히 테이블을 찾을 수 없다는 오류가 나왔고다른 쿼리문을 모두 주석처리하고 SELECT 하는 부분만 남겨놓았을때도테이블을 찾을 수 없다는 오류가 발생했다.    await this.prisma.$queryRawUnsafe(` SELECT * FROM News LIMIT 1 `)이렇게 select만 남겨놓았을때도테이블을 찾을 수 없다는 오류가 나왔다. 근데 해당 테이블은 있음...   await this.prisma.$queryRaw`SELECT * FROM "News" LIMIT 1`  이렇게 $queryRawUnsafe에서 $queryRaw로 바꿔주니 정상작동했다....

[RDS/MySQL] RDS DB 연결 안될때, 연결 시간초과 오류 뜰 때

RDS 를 통해 데이터베이스를 생성하고엔드포인트와 마스터 이름, 마스터 암호를 야무지게 복사해서연결 시도했는데 안됨,, 다른 글을 찾아보면서 똑같이 시도했는데도연결 시간초과 오류가 계속 떴다 기초적인 세팅의 오류였지만 어떤 오류인지 메시지가 나오지 않아서 해결하는데 시간을 꽤 잡아먹었다    AWS > RDS > 데이터베이스 > 문제의 데이터베이스 > 연결 및 보안  연결이 실패했을 당시에퍼블릭 엑세스 가능이 아니오로 되어있었다.   위의 수정버튼을 눌러 퍼블릭 엑세스 가능을 예 로 변경하고다시 연결 시도를 해보니 잘 해결됐다.

오류 해결/AWS 2024.06.17

[S3] 업로드한 이미지가 안열릴때, 객체 url 누르면 권한없음 흰 창 뜰 때

새 서버를 파면서 S3도 새로 만들었다! 근데s3에 이미지를 올리고, 반환된 객체 url을 누르면s3를 새로 만들다가 뭘 잘못했는지 빈 창에 Access Denied 라고 뜨면서 이미지가 로드되지 않았다 이럴때!!S3에 버킷정책을 생성해서 액세스 권한을 주면 해결이 된다.    AWS > S3 > 버킷 > 문제의 버킷 클릭    속성 > ARN 복사    권한 > 버킷 정책 > 편집 > 정책 생성기   Select Type of Policy: S3 Bucket PolicyPrincipal: *Actions: Get ObjectAmazon Resource Name (ARN): 위에서 복사한 ARN 모든 사용자에게 읽기권한을 주는 정책이다. Add > Generate 생성된 Json 형태의 정책을 복사해버킷..

오류 해결/AWS 2024.06.17

[Git] 기존 브랜치 내역이 남아있을 때, 브랜치 제거 안될 때

브랜치를 만들 때 이전에 한번이라도 사용한 적 있던 브랜치명을 재사용하면 그 때 작업했던 내용이 고대로 남아있는 채 생성되는 현상이 있었다. ??? 기깔나게 pr하고 브랜치 지운 뒤 다시 그 브랜치 이름으로 생성하면 브랜치가 새로 생성되는게 아니라 지웠던 브랜치가 복구됨... 얼렁뚱땅 작업하다가 에이 그냥 갈아엎고 새로 시작하자~! 하고 브랜치를 제거하고 다시 그 브랜치 이름으로 만들면?~~? 짜란~ 얼렁뚱땅 작업하던 내용이 고대로 복구~~ 난 새 출발을 하고싶었는데 ..!!!1 하지만 원인을 찾기에 귀찮기도 하고 전에 사용했던 브랜치명을 피해서 생성하면 새로운 브랜치를 만들 수 있어서 그냥 ... 그렇게 대충 ... 살아왔다..... 근데 이제 사용했던 브랜치명을 피해서 이름 짓는것도 한계고 사용했던 ..

오류 해결/Git 2024.01.23

[PostgreSQL] 512 에러, postgresql 갑자기 실행 안될때

➜ nestjs-project git:(dev) ✗ yarn prisma:push yarn run v1.22.19 warning ../../../../../package.json: No license field $ dotenv -e .env prisma db push Environment variables loaded from .env Prisma schema loaded from prisma/schema.prisma Datasource "db": PostgreSQL database "local_project", schema "public" at "localhost:5432" Error: P1001: Can't reach database server at `localhost`:`5432` Please m..

엔드포인트 500 오류 해결 / param으로 받아오는 엔드포인트와 중복 주의

멋지게 코드를 짜고 test를 돌리니 더 멋지게 500에러가 떴다. 500에러는 서버오류인걸 알고 있었기에 내가 잘못 짠 코드가 있나 확인을 했다. 근데 아무리 확인해도 코드 넘 잘 짰음.. 에러 메시지를 다시 확인해보니 이상하게도 어느 부분에서 오류가 났는지는 나타나지 않고 [Nest] 3589 - 2023. 05. 31. 오후 12:47:41 ERROR Object: { “statusCode”: 500, “timestamp”: “2023-05-31T03:47:41.648Z”, “path”: “/my”, “message”: “”, “name”: “” } 계속 이렇게만 뜨는거임 client에서 요청을 보내는 엔드포인트가 잘못 설정됐을 수도 있어서 swagger랑 post man을 확인해봤는데 넘 멀쩡함..

오류 해결/API 2023.06.01

ssh 키 만들기, 삭제하기, 보기, 찾기, github 등록하기

github가 갑자기 권한이 없다면서 pull과 push를 거부했다.. ^^ 이유를 찾아보니 ssh키를 github에 등록해야한단다;; 그게 대체 뭐임 자세히 알지는 못했는데 대충 이해한대로 적어본다면 내 컴퓨터에서 발급한 키를 github 계정에도 등록을 해줘야 하는것 같다. - ssh 생성 명령어: ssh-keygen - ssh 조회 명령어: cat ~/.ssh/id_rsa.pub - ssh 삭제 명렁어: rm -rf .ssh 이 세가지만 복붙하면 된다. 1. 터미널을 연다 2. ssh-keygen 를 입력해서 ssh키를 생성한다. 2-1. 이미 ssh키가 있다면 어쩌구 저쩌구 경고문이 나올거임. 근데 나는 헷갈려서 그냥 삭제하고 다시 만들었음 2-2. rm -rf .ssh 를 입력해서 기존 ssh키..

오류 해결/Linux 2023.05.25

[Mac] 사용중인 포트 확인 및 프로세스 강제종료

순조롭게 3000번 포트로 개발중이던 어느날... npm start를 하자 이미 다른 프로세스가 3000번 포트를 쓰고있다는 오류가 떴다. 오류: [NestApplication] Error: listen EADDRINUSE: address already in use :::3000 엥? 누구야 ~! 하지만 어떤 프로세스가 사용중인지 찾기 위해 그 방법을 찾아야 하는... 과정이 넘나 귀찮았기 때문에 조금 있으면 알아서 종료가 되겠지 하고 내 포트 번호를 3001번으로 변경했다. 하지만 예상과 다르게 이틀째 3000번 포트를 사용 못해서 이 글을 쓰게 되었다 ㅎ 1. 터미널에 lsof -i :[조회할 포트번호] 를 입력한다. 나는 3000번 포트를 조회할것이기 때문에 lsof -i :3000 이라고 해줬다...

오류 해결/Linux 2023.04.12