전체 글260 [이미지 렌더링 최적화] Lambda@Edge Body값 1MB 제한 트러블 슈팅 이미지 렌더링 최적화 프로젝트는 이전에 끝났는데, 어느 날 갑자기 아래 이슈가 발생했다. - 특정 이미지에서 조회되지 않는 현상이 발생함 이유를 한참 동안 찾았다.원본 이미지가 손실돼서 그런가? 포맷 변환을 하면 안 되는 이미지인가?도무지 감이 안 잡혔는데.. 팀장님 덕분에 발견했다. [이슈 파악]현재 Lambda@Edge에서 sharp를 이용하여 이미지를 변환하고 있는데,이미지를 변환한 후 해당 값을 Body에 담기 전 Base64 인코딩한 값을 콘솔로 찍어보았다(현재 해당 람다는 CloudFront와 연동되어 있으며, Origin Response단에 있다) 해당 메타데이터를 보면, size가 1271920 byte이다.이 값은 MB로 환산하면 1.27MB 정도된다. 이제 아래 문서를 보자https:.. 2025. 2. 27. MySQL 복합키 세팅 관련 정보 최근에 복합키를 생성하려고 했는데, 더 잘 세팅하는 법이 궁금하여 찾은 내용을 정리해둔다, [잘 세팅하는 법]1. 복합키 생성 시, 인덱스는 좌측에 있는 것을 최우선으로 움직임 > 중복도가 낮은(카디널리티가 높은) 컬럼을 왼쪽에 두는 게 좋음> where 절 작성 시, 복합키의 왼쪽에 있는 걸 먼저 조건문에 써야함2. 복합키의 우측에 있는 인덱스들을 단일 쿼리 조건에 사용할 경우, 풀스캔이 발생함 >> 단일 조건에 쓰는 컬럼이 있다면 키(인덱스)로 생성해야함[테스트 내용]회사 개발환경 테이블인 book.base 대상으로 아래 SQL을 실행하며 테스트해보았다.CREATE INDEX idx_chkvoice_freecnt ON book.book_base (chkvoice, free_cnt);>> 복합 인덱스 .. 2025. 2. 26. [이미지 렌더링 최적화] HTTPS 페이지 내 HTTP 로드 이미지 문제 (혼합 콘텐츠(Mixed Content)) 이미지 렌더링 최적화 작업이 전에 모두 완료되었다.헌데! 테스트 과정에서 발생했던 이슈가 있었어서 아래에 정리해둔다. [문제 상황]1. 페이지에서 특정 이미지를 호출 하는 과정이 있었음2. 이미지가 페이지에 렌더링되지 않음3. 이미지 경로에 파일이 없어서 그런 것인 줄 알고, 이미지 URL을 직접 호출했으나 이미지가 정상적으로 존재하고 있었음 [이슈 해결]1. HTTPS(암호화된 사이트)에서 HTTP(암호화되지 않은 텍스트) 리소스를 호출할 경우 Mixed Content 오류가 발생함=> HTTP에서 HTTPS 리소스 호출 가능하나, HTTPS에서 HTTP 리소스 호출 불가능함. mixed content란?"혼합 콘텐츠 오류"는 웹 페이지에서 보안 연결(HTTPS)을 통해 제공되는 페이지에 비해 보안.. 2025. 2. 23. [해외 본인인증] CI / DI 개념 정리 현재 회사에서 제공하는 서비스는 본인인증을 거쳐야 이용할 수 있다.해당 본인인증 여부 식별값으로 국내 인증 서비스를 거쳐서 얻게되는 DI를 사용 중이다. 헌데 국내 인증 서비스를 이용하지 못하는 해외 이용자들에게서도 매출을 내고자한다.그러기 위해선 본인인증을 해줘야하는데, CI와 DI에 대한 정의를 조금 더 자세히 알고있어야 해당 이슈를 처리하는데 더욱 도움이 될 것 같아 아래 문서에 정리해둔다. CI / DI를 왜 사용하나?1. 서비스를 이용하기 위해 우리는 회원가입을 한다.2. 해당 회원 한명한명을 구분하기 위해 본인을 특정할 수 있는 정보를 사용해야 한다. (예시로 주민번호가 있음)3. 허나 2014년 8월 부로 주민등록 번호 수집 금지 제도가 시행됨에 따라 회원가입 시 주민번호 등록을 입력하는 곳.. 2025. 2. 17. [이미지 렌더링 최적화] node기반 Lambda@Edge 생성 https://desirelsw.tistory.com/274 Lambda@Edge / CloudFront / Singed URL / S3 트러블 슈팅최근, 이미지 get서빙 부분에 보완하면 좋겠는 점이 생겨서 아래와 같이 진행해보기로 하였다. (일부분만 발췌) CF(cloudfront)에 S3를 연동하여 인증된 사용자만 CF를 통하여 이미지를 가지고 오게함desirelsw.tistory.com 이전에 해당 글에서 python 기반으로 람다를 작성할 때, WEBP 확장자 변환을 위해 Pillow 모듈을 사용하였는데, 이제는 AVIF 확장자 변환도 해야하여 더 찾아보니 pillow 모듈만으로 해결이 안되고, AVIF 변환을 위해 추가적으로 설치해야할 모듈이 있다는 것을 찾게 되었다 (확장자 추가에 따른 추가.. 2025. 1. 14. [이미지 렌더링 최적화] CloudFront 비용절감 트러블 슈팅 (설계 및 플로우) 개편 이후 기준인 위 설계도로 수정하게 되면, 아래와 같은 목적들을 달성할 수 있다.CloudFront 의 비용 최적화 (이미지 서빙 용량 개선으로 인해)이미지 렌더링 속도 최적화 (낮아진 서빙 용량 및 캐싱으로 인해)작품 커버 이미지 화질 개선 (S3에 저장할 때 리사이징 후 저장하는 방식이 아닌, 원본 그대로를 저장함으로 인해)API 서버 리소스 부하 개선 (S3에 이미지 저장하는 주체를 클라이언트로 변경함으로 인해) 해당 결과물을 이루어내기 위해, 해야하는 작업은 간략하게만 뽑아내면 아래와 같다(기존 이미지 정책 및 하이브리드 앱의 상황을 고려했을 때 해야하는 작업이 많으나, 작업의 큰 줄기만 뽑아내면 아래와 같다)[작업 우선순위]Lambda@edge 코드 작성 (이미지 변환 및 메모리 설정)신규 .. 2025. 1. 7. 이전 1 2 3 4 ··· 44 다음