문제 상황FE에서는 그동안 CloudFront URL로 만들어진 이미지 URL을 BE로부터 전달 받아서 img 태그에 넣어주기만 했었다. 그런데 이번 개선으로 이미지를 다운로드를 받아서 사용할 일이 생겼다. 그런데 웬걸 CORS 에러가 발생하기 시작했다. FE에서는 fetch를 이용해 이미지를 blob형태로 받으려 했고, 이 과정에서 CORS가 발생했다고 한다. 이 문제의 원인을 찾아가는 과정이다. 문제 분석1. CloudFront에서 특정 HTTP Method를 막아놨나?- 이전에 CloudFront로 POST 요청이 필요한 경우가 있었는데, 이 Method가 막혀 있을 때 비슷한 에러가 났었다.그러나 fetch는 GET 방식이고, CloudFront에서 GET 방식은 무조건 열려있다. 2. S3의 ..
갑작스럽게 떨어진 오더(C레벨에서부터 내려온)로 인해 월드 ID를 이용한 인증 시스템 개발 업무가 추가됐다. 왜 이런 오더가 떨어졌냐를 생각하기전에 월드 ID가 뭐인지부터 알아보자. 월드 ID란? World ID는 영지식 증명과 고급 개인 정보 보호 암호화를 통해 사용자가 익명으로 자신의 고유성과 인간성을 증명할 수 있는 디지털 신원 솔루션입니다. World ID는 클라우드 및 온체인 앱 모두에 쉽게 통합할 수 있습니다. 유효한 월드 ID를 가진 사용자는 월드 앱과 같은 월드 ID 호환 지갑을 통해 익명으로 자신이 고유한 인간임을 몇 초 만에 확인할 수 있습니다. https://docs.worldcoin.org/world-id 굳이 인증 과정을 기존 방식이 아닌 다른 컨셉으로 해야하나?란 생각이 들지만 ..
Python으로 개발된 서비스를 배포할 일이 생겼다. 그런데 개발자가 Python 프로젝트를 아무 지식도 없이 만들어서 가상환경에서 작업하지 않고, 로컬 & 글로벌에서 모든 작업을 처리했다. 그러다보니 어떤 의존성 패키지를 썼는지 명확히 알 수가 없었다. 당연히 이 명령어도 쓸 수 없었다. pip freeze > requirements.txt 다행히 파이썬에서는 프로젝트에서 사용한 의존성을 자동 추출할 수 있는 스크립트를 제공한다. pipreqs라는 이름의 패키지다. pip install로 설치할 수 있다. 그런데 설치부터 아래와 같은 에러를 발생시킨다. > pip install pipreqs ERROR: Could not install packages due to an OSError: [Errno 2]..
혼자 쿠버네티스를 공부하려고보니 KIND(Kubernetes in Docker)를 쓰라는 말을 들엇다. KIND는 이름부터 도커가 들어가기 때문에, 당연히 도커가 필요하다. 하지만 Docker for Windows는 WSL2에서만 사용가능하다고하는데... 내 WSL은 버전이 1이었다. WSL1을 WSL2로 업데이트해보자. 들어가기전에 Windows 업데이트를 확인해야한다. WSL 2는 Windows 11 또는 Windows 10, 버전 1903, 빌드 18362 이상에서만 사용할 수 있습니다. Windows 로고 키 + R 을 선택하고 winver를 입력한 다음, 확인을 선택하여 Windows 버전을 확인합니다. (또는 Windows 명령 프롬프트에서 ver 명령을 입력합니다.) 최신 Windows 버전..
나는 구글 API에 대해 좋은 기억이 별로 없다. 예~전에 스프레드시트와 워드에 자동 저장하기 위해 사용했을 때도, 정말 힘들었던 기억이 있다. 왜냐하면 최신화를 안해놓기도 했고, 빠른 버전업의 영향인지 정리해 놓은 곳 마다 사용법이 다 다르기 때문이다. 인간적으로 공식 가이드 문서는 엔드투엔드로 잘 써줘야하지 않나 싶다. GPT도 영 시원찮아서, 블로그랑 스택오버플로우 이곳 저곳 뒤적이면서 어떻게 사용할 수 있게 만들어 두긴 했다. 일단 Google Indexing API를 사용하게 된 취지는 명확하다. 현재 개발하고 있는 서비스가 대부분 SEO로 active user를 충당하고 있다. 생성된 게시물을 sitemap으로 관리하고 있는데, 구글 서치 콘솔에서 확인해보면 아직 색인되지 않은 페이지가 너무 ..
매번 SSM으로 접속하다가 SSH 키를 발급받아서 EC2에 접속할 일이 생겼다. 별 생각 없이 키를 발급 받고 접속을 시도 했는데 아래와 같은 에러가 발생했다. $ ssh -i key.pem ec2-user@ec2-[your-ip].[your-region].compute.amazonaws.com @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0555 for 'key.pem' are too open. It is required that your..
키나 환경변수를 관리하는 툴은 정말 많다. AWS에서 자체적으로 제공하는 경우도 있고, GitHub에서 심어줄 수도 있고 다양한 방법이 있다. 가장 최악의 경우는 Application.yaml 파일에 실수로 그냥 실어버리고 GitHub에 배포하는 경우다. (OpenAI의 경우, 이 부분을 어떻게 캐치해서 강제로 키를 새로 발급해버린다.) 개인적으로 이것저것 써봤을 때, 가장 맘에 들었던게 DotEnv다. 간단하게 사용법을 안내하자면, src아래에 .env 파일에 키를 저장해놓고, 쓰면 되고 .gitignore에 등록해놓고 쓰면 된다. 파일을 만들어놓고 gitignore에 설정해놓으면, 다시 볼일이 없어서 관리하기 편했기 때문에 사용하기 편했다. 이제 설정하는 법을 알아보자. build.gradle.kts..
해당 에러는 리눅스 우분투 18.04 LTS 버전에서 나타나는 문제입니다. 이 문제는 serverless 프레임워크를 WSL에 설치하면서 있었던 일이다. serverless 프레임워크를 사용하기 위해서는 npm이 필요해서 node도 함께 설치했다. 그래서 npm 명령어를 쓰려고 하니까 $ node -v node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node) 위와 같이 에러가 발생했다. 에러 내용을 확인하면, GLIBC 2.28 버전을 찾을 수 없다. 인데, 이 에러가 나는 이유는 최신 GLIBC 버전은 2.28버전인데 우분투 18버전은 2.27을 쓰기 때문이다. 이 문제를 해결하기 위해서는 세 가지 해..
- Total
- Today
- Yesterday
- MySQL
- docker
- cache
- awskrug
- elasticsearch
- AOP
- JWT
- chat GPT
- lambda
- CloudFront
- GIT
- Kotlin
- AWS
- openAI API
- Log
- 인프런
- Elastic cloud
- OpenAI
- ChatGPT
- terraform
- serverless
- EKS
- 스프링부트
- 람다
- OpenFeign
- S3
- AWS EC2
- Spring
- springboot
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |