검수 리스트¶
서비스 오픈전 검수사항을 정리한다.
웹페이지¶
상품기술서 페이지 <HTML>
포맷 최적화 기능을 검수한다.
적용방식¶
urlRewrites 에 모든 상품기술서 URL패턴이 정의되어 있다.
Hint
pagedesk , pagemixed 등의
page-
함수와 같이 적용되어 있다면 pagedesk 함수 키워드로 통합된다.가능한 모든 값이 기본값으로 구성되어 있어 urlRewrites 에 별도 옵션을 추가하지 않는다.
상세한 urlRewrites 가 범용 URL 전처리 규칙보다 우선하여 설정된다.
(원본이
JSON
포맷인 경우)HTML
문서를 포함하는 필드만 수정된다. → in부모페이지의 UX 스타일에 간섭하지 않는다. → isolstyle
이미지, 비디오와 같은 노드로 동작하는 경우 상품기술서 를 고정하여 MISS 비율 낮추기 가 적용되어 있어야 한다.
Hint
fixedCount
은 10,000 전후로 설정한다.
<IFRAME>
삽입시¶
부모 페이지에 자동 높이조절 스크립트가 삽입되어 있다. → library.parent
Hint
<script src="https://{서비스도메인}/pagefx/fxjs/b74de465-a464-4640-a4f7-5415af4a6571.js" type="text/javascript" charset="utf-8" />
부모페이지가 삽입하는 상품기술서
<IFRAME>
태그가 iframeAutoHeight.selector
로 구성되어 있는가?Hint
크로스도메인 환경에서 이 구성이 되어 있지 않다면 자연스러운 lazy-loading이 동작하지 않는다.
자연스러운 lazy-loading은 이미지 로딩지연을 클라이언트가 느낄 수 없도록 브라우저가 1~2스크롤의 영역을 먼저 로딩하는 것을 의미한다. 이미지를 미리 전부 로딩하거나, 노출 임박하여 로딩되어서는 안된다.
풀 스크롤시
<IFRAME>
이 부모 페이지와 이질감없이 노출되는가?Hint
전체 기술서가 온전히 표기되며 미노출 영역이나 과도한 하단 공백이 발생하지 않는다.
모니터링¶
데이터독 정상적으로 구성되어 있고, 메트릭 특히 오류(4xx, 5xx) 관련 메트릭이 정상 집계/보고 되고 있는가?
Hint
고의로 5xx를 만들 수 없다면 없는 페이지를 요청하여 4xx로 처리하여 수행한다.
서비스 품질범위가 정상적인 범위내에 있는가?
Hint
timeout 된 Dirty 페이지는 5% 이하로 유지되어야 한다.
1초 이상 소요되는 페이지 비율도 10%이하로 유지되어야 한다.
사용자 상호작용¶
Important
frontend 기능이 활성화된 경우
자바스크립트
a4890ed1-b4c1-4e0f-809c-eecf7da465f1.js
가 페이지에 삽입되어 있다.상품기술서 영역만 처리대상으로 지정되어 있다. → frontend
화면 해상도를 변경하거나 Portrait, Landscape 전환시 여백없이 이미지 레이아웃이 유지된다. → responsive
viewmore 가 적용되어 있다면 상품기술서가
900px (기본)
만큼만 표기된다.Hint
더보기 버튼이 이질감없이 표기되며, 버튼 하위 페이지가 정상 표기된다.
더보기 버튼 클릭시 전체 기술서가 표기되며 미노출 영역이나 과도한 하단 공백이 발생하지 않는다.
pinchzoom 이 적용되어 있다면 기술서를 확대할 수 있다.
캐싱/라우팅¶
동일 상품기술서 리소스(페이지, 이미지, 비디오 등)는 항상 같은 M2Live 노드로 라우팅된다.
Hint
상품기술서 내 이미지, 비디오에 대한 처리와 proxy 함수 키워드 등이 분산 정책에서 예외로 동작해야 한다.
1 Tier 구성인 경우 가상호스트의 instant bypass에 기반하여 분산된다.
2 Tier 구성인 경우 Child 레이어에 의해 bypass로 분산된다.
응답되는 모든 리소스(페이지, 이미지)에
Cache-Control
이 적용되어 있다.Cache-Control
은 고객사에 문의하여 CDN-TTL (최소 12시간)로 지정한다. 또는 원본 페이지의Cache-Control
을 사용한다.(CDN 미적용시) 최소 5분 이상의 ttl 이 적용되어 있고, 해당 시간동안
TCP_HIT
로 동작한다. → 1. 캐싱 구성(CDN 적용시) 반복 호출하여
HIT/MISS
여부를 확인한다. → CDN에 캐싱하는 환경Hint
[브라우저 개발자 모드] 일반적으로
X-Cache-Result
와 같은 헤더로 제공된다.CDN 캐싱정책이 최소 5분 이상이어야 한다.
동일 콘텐츠를 다른 hyperdims 명령어로 호출시 ttl 동안 원본에 재요청하지 않는다.
Hint
2번째 요청에 대해 access.log 에는
TCP_MISS
가 기록되지만, origin.log 는 발생하지 않는다.
이미지¶
상품기술서 페이지 <HTML>
에 포함된 <IMG>
최적화 기능을 검수한다.
용량절감/최적화¶
조건에 미달되는 이미지는 가공하지 않는다. 그 외 모든 이미지는 가공되어야 한다.
Hint
<IMG m2-pagefx-hint="...">
힌트가 기록된다. → pagefx 에러리스트 참조
<IMG>
태그가<PICTURE>
태그로 클라이언트 호환성에 맞추어 제공된다.Hint
AVIF, WEBP, JPEG
등 클라이언트 호환성에 맞춘 이미지가 정상노출된다.특정 앱 지원등을 위한 호출규격이 있다면 해당 포맷이 미노출된다.
최적화된 이미지에 대해 용량 절감효과가 확인된다.
이미지 최대 폭
maxwidth (기본: 1200px)
을 초과하지 않는다.<MAP> 태그가 적용된 이미지는 분할하지 않는다.
분할/지연 로딩¶
캐싱/라우팅¶
이미지 서비스 도메인에 hyperdims 함수가 활성화되어 있다.
이미지 서비스 도메인이 CDN에 위임되어 있다.
Hint
CDN캐싱정책이 최소 12시간 이상임을 확인한다.
CDN정책이 명확하지 않은 경우 응답 고객과 협의하여
Cache-Control: max-age=...
를 12시간 이상으로 설정한다.
이미지 URL을 반복 호출하여
HIT/MISS
여부를 확인한다.Hint
[브라우저 개발자 모드] 일반적으로
X-Cache-Result
와 같은 헤더로 제공된다.
이미지 URL을 임의수정하였을 때 CDN
MISS
를 통해 동일 노드에서 hyperdims 함수가 수행되어야 한다. 반드시 access.log 로 확인한다.Hint
예를 들어
/resize/10
명령을 URL에 추가한다.노출 상품기술서 URL패턴이 같다면 반드시 동일 노드로 라우팅되어야 한다.
동일 콘텐츠를 다른 hyperdims 명령어로 호출시 ttl 동안 원본에 재요청하지 않는다.
Hint
2번째 요청에 대해 access.log 에는
TCP_MISS
가 기록되지만, origin.log 는 발생하지 않는다.
비디오¶
상품기술서 페이지 <HTML> 에 포함된 모든 비디오(애니메이션 GIF
포맷 포함) 최적화 기능을 검수한다.
용량절감/최적화¶
애니메이션
GIF
포맷이<VIDEO>
태그로 실시간 변환된다. → gif2videoHint
자동재생, 루프, 음소거, 인라인재생 등의 속성이 적용된다.
원본
GIF
재생속도와 동일한 속도로 재생된다.
<VIDEO>
태그가 멀티<SOURCE>
로 제공된다.Hint
WEBM, MP4
등 클라이언트 호환성에 맞춘 비디오가 정상노출된다.특정 앱 지원등을 위한 호출규격이 있다면 해당 포맷이 미노출된다.
빠른 재생을 위해 URL에
faststart
옵션이 명시된다.
원본에 비해 용량 절감이 확인된다.
캐싱/라우팅¶
비디오 서비스 도메인에 transcoder 함수가 활성화되어 있다.
비디오 서비스 도메인이 CDN에 위임되어 있다.
Hint
CDN캐싱정책이 최소 12시간 이상임을 확인한다.
CDN정책이 명확하지 않은 경우 응답 고객과 협의하여
Cache-Control: max-age=...
를 12시간 이상으로 설정한다.
비디오 URL을 반복 호출하여
HIT/MISS
여부를 확인한다.Hint
[브라우저 개발자 모드] 일반적으로
X-Cache-Result
와 같은 헤더로 제공된다.
비디오 URL을 임의수정하였을 때 CDN
MISS
를 통해 동일 노드에서 transcoder 함수가 수행되어야 한다. 반드시 access.log 로 확인한다.Hint
예를 들어
/capture/ts=1
명령을 URL에 추가한다.노출 상품기술서 URL패턴이 같다면 반드시 동일 노드로 라우팅되어야 한다.
동일 콘텐츠를 다른 transcoder 명령어로 호출시 ttl 동안 원본에 재요청하지 않는다.
Hint
2번째 요청에 대해 access.log 에는
TCP_MISS
가 기록되지만, origin.log 는 발생하지 않는다.