허브 살리기 프로젝트24 Image Resizing E-commerse 사이트들을 보면 여러 상품의 이미지들이 동일한 사이즈의 크기로 보여진다. 해당 페이지는 쿠팡 메인 페이지에 들어갔을 때 랜더링 되는 이미지들이다. 여기서 궁금한 점이 몇 가지 생기는데 첫 번째는 이 이미지들이 원래부터 동일한 사이즈였는지이다. 즉 해당 사진을 찍거나 생성 할 때 부터 동일한 사이즈였는지다. 물론 간단하게 정답은 아니다. 왜냐면 이미지들을 제공하는 소스들이 다를 것이기 때문이다. (다른 사진기 등등) 두 번째는 많은 사진을 렌더링 할 때 왜 지연이 없을지 여부다. 요즘 핸드폰으로 사진을 찍어도 기본적으로 용량이 0.5MB 정도이다. 어떤 사진은 2MB가 넘어가는 사진도 있다. 이커머스 페이지는 매인 페이지에 대략 20개 정도의 이미지가 보여지게 되는데 10MB의 파일을 .. 2024. 2. 26. MySQL UTF8MB4 MySQL을 사용하다보면 드는 의문이 있었는데 왜 UTF8이랑 UTF8MB4의 인코딩 타입이 나눠져 있는지다. 특수 문자를 지원하기 위해 인코딩 타입을 UTF8MB4로 변경하고 Collation 까지 변경해주어야 하는 작업을 하다보니 왜 디폴트 값이 UTF8MB4가 아니고 UTF8이 왜 특수문자를 지원을 안 하는지 기존 UTF-8 인코딩 방식이 이모지를 포함하는 걸로 알고 있는데 혼란이 온다. 그래서 하나씩 개념을 정리해가면서 원일을 찾아가보려고 한다. 유니코드 유니코드는 전 세계의 문자 체계를 컴퓨터에서 일관되게 표현하려는 표준이다. 예를 들어서 'A'를 어떤 분야에서 65로 표현하는 것과 다른 분야에서는 700이라고 표현하는 것 즉 일관성이 없는 부분은 분명 혼란스러울 것이다. 그래서 'A'는 65.. 2024. 2. 19. DB가 내부 망에 존재하는 이유 회사에서 보는 데이터베이스와 AWS같은 클라우드 제공 업체에서 DB 관련 Manged Service에 익숙하게 살다 보면 참 기본적인건데 앗차 싶을 때가 있다. 데이터베이스들은 모두 내부망에 있다는 것이다. (Public Ip를 할당 받고 접근 제어를 다 열지 않았다는 가정 하에 - AWS에서 이 옵션은 따로 선택해야 한다.) 즉 퍼블릭하게 공인 아이피를 타고 직접적으로 DB를 접근하는 것은 권장되지 않는 사항이라는 것이다. 근데 이 당연한 내용을 안 지키면 어떻게 되는지 가끔은 궁금하기도 하다. 경험 개인적으로 운영하려는 서버가 있다. 서버는 집에서 구동하는 On-Prem 방식이며 이 안에서는 MySQL이 돌고있다. 집 밖에서도 DB에 접근해서 개발할 필요가 있으면 하려고 3306 포트 접근을 직접 D.. 2024. 2. 17. CPU Pinning 하나의 어플리케이션이 작업을 병렬적으로 처리하기 위해 물리 코어 수로 작업 단위를 나누고 이 작업을 처리하는 Worker Thread가 물리 코어 수만큼 존재하는 경우 Worker Thread들은 매번 코어들이 바뀌면서 스케줄링 된다. 이렇게 되면 다른 코어에 스케줄링 될 때마다 CPU cache의 hit rate가 낮아지게 된다. 다르게 말하면 Worker Thread 혹은 Process들을 각각의 코어에 고정 할당하게 된다면 CPU cache의 hit rate가 높아져서 기존보다 성능 향상에 도움이 될 것이다. CPU intensive한 작업의 경우 이는 유의미한 차이를 보인다. 이렇게 특정 코어에 프로세스나 쓰레드를 고정시키는 것을 CPU Pinning이라고 한다. CPU Pinning은 Proce.. 2024. 2. 14. 이전 1 2 3 4 5 6 다음