전체 글 73

[Swagger] 파비콘, 타이틀 커스터마이징

API 문서는 Swagger 를 애용중이다. 하지만 개발하는 서비스가 많아지다보니 Swagger UI 창을 여러 개 열어두고 작업하는데탭이 점점 늘어날수록 어떤 탭이 어떤 서비스의 문서인지 헷갈리기 시작했다. 이미지에서는 Swagger UI 탭을 두개만 띄워놓고 있지만, 많을땐 세네개씩 띄워 작업하다보니어떤 서비스인지 매번 클릭해서 확인해야 하는 상황이었다. 헷갈리지 않게 파비콘과 탭 타이틀을 변경해보자!초반에는 파비콘을 변경하는 것보다 직접 눌러보며 구분하는 편이 덜 번거로웠지만이제는 슬슬 효율성의 정도가 역전되어 가고있어서 파비콘을 변경하기로 결정했다. 우선 Swagger Module 을 뜯어보자보통 swagger는 main.ts 같은 entry point 에서 설정한다.현재는 .setu..

개발/Swagger 2025.07.01

[AWS] IAM 계정 권한 설정 했는데도 리소스 접근 불가일 때

이직후에 AWS IAM 계정을 생성받았는데로그인을 해보니 아무 권한도 없는 것 처럼 어떠한 엑세스에도 접근하지 못 했다. 권한을 요청드렸으나 이미 부여되어있다는 답변 뿐..관리 계정을 넘겨받아 직접 권환 확인을 해보았는데 정말로 모든 권한이 부여되어있는 상태였다. 대체 왜 접근을 못하는 것일까!!!aws에서 웬만한 삽질은 다 해보았다고 생각했는데 아직도 끝이 아니었나보다. 에러메시지는 아래와 같이 권한부족이나 접근 허용이 안된 상태여서 접속이 불가하다고 나타났다.You are not authorized to perform this operation. User: arn:aws:iam::0000000000:user/jerry is not authorized to perform: ec2:Descr..

오류 해결/AWS 2025.06.12

[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

[JS] 날짜 데이터 필터링해서 조회하기

코드짜면서 은근 생각 안나서 메모,,  1. 한 날짜에 대해 사잇값 찾기예)const companyList = [ { companyName: "Tech Innovators", foundingDate: "2010-09-15", employeeCount: 250 }, { companyName: "Creative Solutions", foundingDate: "2015-06-22", employeeCount: 150 }, { companyName: "NextGen Labs", foundingDate: "2018-11-30", employeeCount: 100 }]; 위와 같은 회사들에 대한 데이터가 있을때창립기념일이 2010-01-01 ~ 2016-0..

개발/JavaScript 2024.09.10

[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 { "Version": "2012-10-17", "Statement": [ { ..

오류 해결/AWS 2024.06.17

SELECT 값 Boolean 으로 구하고 반환하기

SELECT 에서 Boolean 으로 값으로 구하고 반환하려면CASE 문을 사용하면 된다.    CASE 사용법 -조건 여러개일때 CASE WHEN 조건1 THEN 조건1이 참일때 반환값 WHEN 조건2 THEN 조건2가 참일때 반환값 ELSE 모든 조건이 거짓일때 반환값 END AS is_user_deleted (AS ~ 는 생략가능) - 조건 한개일때 CASE WHEN 조건1 THEN 조건1이 참일때 반환값 ELSE 조건1이 거짓일때 반환값 END AS is_user_deleted (AS ~ 는 생략가능)         User 테이블의 status 컬럼의 값이 ACTIVE 일 경우에 true 를,ACTIVE 가 아닌 나머지 값일 경우에 false..

개발/SQL 2024.06.17

[프로그래머스/Oracle] 없어진 기록 찾기

문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타..