전체 글 60

webp 이미지 메타데이터 정보로 자동회전이 안될 때

우리 회사에서는 게시글에 이미지를 첨부할 때 AWS S3 업로드 후 보여줄 때는 람다엣지 이미지 리사이저 함수를 거쳐서 cloudfront에 캐싱되어 이미지가 보여진다. 최근에 이미지 용량 문제로 webp 이미지로 변환하였는데, 게시글에 첨부된 이미지가 한번씩 회전(?)이 되는 문제가 발생했다. 원인을 확인해보니 요즘 휴대폰으로 촬영하는 이미지는 자동으로 회전정보가 메타데이터에 기록된다. 예를들어 휴대폰을 가로로회전해서 찍으면 90도 방향이라는 정보가 기록되는것이다. jpg나 png 같은 일반적인 이미지 파일들은 브라우져에서 자동으로 메타데이터에 회전정보를 읽어 회전해서 보여주는데, webp 이미지는 메타데이터의 회전정보를 무시하고 바로 보여주는 문제가 있었다. 스택오버플로를 찾아보니 역시 비슷한 문제가..

IAM(Identity and Access Management)

IAM : Identity and Access Management 1. IAM은 리전 선택이 필요없는 글로벌 서비스 이다. 2. Root 계정은 계정에 대한 모든권한을 가지고 있기 때문에, 무엇이든 할 수 있다 = 따라서 위험한 계정이다! 초기세팅 이후에는 보안을 위해 사용하지 말고 별도의 관리자 계정을 만들어서 사용해야 한다. 3. 한 명의 사용자에게 여러 그룹을 할당할 수 있다. 4. IAM 사용자 그룹은 다른 사용자 그룹에 속할 수 없다. 5. 사용자그룹(Users Group)과 역할(Role)에는 정책을 연결할 수 있다. 6. IAM Policy(정책)이란 AWS 서비스에 요청을 보내는 권한의 집합을 정의하고 IAM 사용자, 사용자 그룹 및 IAM 역할이 사용할 수 있는 JSON 문서이다. 7. ..

Redis Key Delete Pattern with Node.js

Redis는 single thread로 동작하기 때문에 long-time 명령 수행시 다른 명령어들을 처리 할 수 없는 상태가 되기 때문에 매우 비효율적으로 동작하게 됩니다. 따라서 사용자들은 이 점을 명시하고 될 수 있는 한 long-time 명령의 수행들을 피해야 합니다. Redis에서 주요 명령어들이 O(1)의 성능을 보인다면서 왜 long-time 명령을 수행하지 말라고 하는건지 의문을 가지실수 도 있는데, 일반적으로 오랜 시간이 걸리는 명령은 데이터가 매우 많은 상황에서, 여러개의 키를 다루는 명령어에서 O(N)의 수행시간을 가지면서 성능에 악영향을 끼치게됩니다. 일반적으로 Redis에서 Pattern으로 Key를 찾고 찾은결과를 Delete하기 위해, keys *과 del(key)를 생각할 수..

AWS Lambda + API + DynamoDB 활용하여 Node.js API 만들기

AWS Lambda 함수를 활용한 microservice architecture 맛보기 입니다. Node.js로 Lambda 함수를 만들고, REST API(POST Method)호출 시, AWS DynamoDB에 데이터를 저장하는것까지 진행합니다. 여기저기 강의나 자료를 많이 찾아봤지만 전체 적인 흐름을 이해하지못하니 따라하기 쉽지 않아서 제가 다시 정리하고자 블로그에 등록합니다. 작성하려는 API는 제품을 등록하는 API이며 아래와 같이 정의했습니다. - 호출 url : http://domain/products - Method : Post - data : name, price, brand, description Lambda 함수를 만들기 위한 전체적인 흐름은 아래와 같이 이루어 집니다. 1. IAM..

Etc/AWS 2022.03.07

AWS CloudWatch

AWS 리소스 사용의 실시간 모니터링 기능 지원 다양한 이벤트들을 수집하여 로그파일로 저장 → 이벤트들이란? S3버켓 파일 업로드 & 삭제 S3 버켓 접근 시 접근 거부 발생하는 경우 RDS 데이터베이스에 접속 시도하는경우 등등의 이벤트들을 일종의 로그파일로 저장하여 → !!CloudWatch를 통해 실시간으로 확인가능!! 이벤트&알람 설정을 통해 SNS, AWS Lambda로 전송 가능 → 특정 이벤트가 발생 시, SNS와 같은 기능으로 실시간 알람(Notification)이 가능함! [CloudWatch 사용 가능 서비스들] : EC2, RDS, S3, ELB, 등등! 1) CloudWatch 사용 용례 -Use Case : 매일 얼마나 많은 사용자들이 모바일 앱을 사용하는지 알고 싶음 -Potent..

Etc/AWS 2022.03.07

javascript fetch로 form 데이터 보내기

인터넷 검색했을때는 아래처럼 json 방식으로 보내는것만 나왔다. 하지만 node.js에서는... 아무리해봐도 데이터가 안오는거다. app.post('/add', (req, res) => { let {todoItem, todoDate} = req.body; console.log('req:', req.body); let id = 0; db.collection('counter').findOne({name:'totalPost'}, (err, data) =>{ id = (data.totalPost + 1); db.collection('post').insertOne( { _id:id, subject: todoItem, date: todoDate, }, () => { db.collection('counter').u..

카테고리 없음 2022.02.23