개념과 동작방식

이미지는 정보를 가장 간단하고 직관적으로 전달하는 매체이지만 작은 변화에도 대응할 수 없다. 웹 사이트에서는 일반적으로 JavaScript 를 이용해 정보 채널을 추가하는 방식으로 이를 극복하지만 Browser sandbox 안에서만 유효하다.

../../../_images/sandbox.png

환경마다 허가되는 동작이 다를 수 있다.

하지만 조금만 생각해보면 이메일, 메신저, SNS, 동영상 플랫폼 등 다른 환경에서 웹 사이트의 통용되던 정보 채널이 유효하지 않음을 쉽게 알 수 있다.

서비스 컨셉

Important

이미지는 거의 모든 환경에서 통용된다. 따라서 정보가 반영된 이미지도 어디서나 유통될 수 있다. 심지어 USB에 담긴 채로 TV에 노출될 수도 있다.

render 함수를 이용하면 사전에 정의할 수 없는 정보를 손쉽게 이미지와 결합시킬 수 있다.

../../../_images/concept1.png

이미지는 실시간으로 생성된다.

모든 정보는 요청시 참조되기 때문에 항상 최신(Fresh) 정보가 반영된 이미지를 서비스할 수 있다. 정보의 유입형태는 크게 2가지로 나눌 수 있다.

  • 백엔드 기업 데이터베이스에 저장된 상품의 현황 정보. 일반적으로 API로 제공된다.

  • 프론트엔드 상품 소개문구나 뱃지등 기획의도가 반영된 정보. URL을 통해 제공된다.

그 정보가 소개문구, 가격, 재고, 판매량, 할인율 등 어떠한 것이라도 반영이 가능하다.

Note

CDN 서비스와 Cache-Control 전략이 함께 한다면 이미지 유통기한을 효과적으로 통제할 수 있다.

사전에 이미지를 한장도 만들지 않았고 스토리지를 소비하지 않았음에도 모든 이미지 엄청난 생산성을 제공한다.

../../../_images/templates.png

전체 상품에 대한 배너도 즉시 만들 수 있다.

URL을 노출하는 것만으로 모든 상품에 대한 모든 형태의 이미지를 즉시 서비스할 수 있다.

레거시 플랫폼과 비교

이미지는 미리 생성하여 스토리지에 고이 저장해 두어야 한다는 고정관념이 있다.

Note

낡고 고루한 배치 프로세스적 사고를 탈피하지 못한다면 빠르게 비지니스 요건에 대응하기 어려울 뿐만 아니라 이미지 생산, 저장, 관리 비용을 영원히 지출해야 한다.

이미지 플랫폼 은 이런 요건을 충실히 구현한 솔루션을 지칭하는데 대부분 배치(Batch) 방식으로 동작한다.

항목

M2

이미지 플랫폼

방식

On the fly

Batch

서비스 투입

즉시

Batch 프로세스 종료 후

저장공간

자체 캐싱 또는 CDN

외부 Storage

유연성

API 기반의 높은 유연성

낮음

데이터 변경 반영

즉시

전체 이미지 일괄 재생산

2차 이미지 가공

dims

추가 프로세스 필요

Important

확장성도 반드시 고려해야한다. 레거시 이미지 플랫폼이 가용량 한계에 도달할 경우 유입량을 줄이거나 서비스 플로우를 변경하지만, M22-Tier 구조 등 가용량을 증설하는 다양한 방법론을 제공한다.