Case Study · cafe24 skin
2026년 8월 25일부터 9월 10일까지 자사몰 장바구니를 새로 만들면서 막혔던 문제와, 다음에 같은 화면을 만들 때 바로 꺼내 쓸 처방을 모았습니다. 화면 디자인이 아니라 「왜 이렇게 만들었는지」가 이 문서의 내용입니다.
고치는 데 오래 걸린 순서입니다. 증상만 보고는 원인이 안 보이던 것들입니다.
_0으로 겹쳤다. 서버는 번호로 줄을 찾는다. 우리가 화면을 먼저 고쳐 두는 방식이라 잘못된 결과가 가려졌다.전부 같은 조건에서 잰 값입니다. 느린 기기를 흉내 내려고 처리 속도를 4배 낮춰 쟀습니다.
| 항목 | 전 | 후 | 무엇을 바꿨나 |
|---|---|---|---|
| 페이지 무게 (PC) | 11.2MB | 4.5MB | 사진을 화면 크기로 줄이고, 글꼴을 조각 판으로 |
| 첫 화면 내려앉음 | 0.94 | 0.00 | 가림막 + 조립 끝난 틱에 드러내기 |
| 금액이 따라오는 시간 | 536ms | 52ms | 자리표시자 베끼기 중단 |
| 멈추는 프레임 (2.5초 동안) | 8건 | 4건 | 같은 값 다시 쓰기 제거 |
| PC 자바스크립트 실행 | 383ms | 242ms | 남의 관찰자와의 되먹임 차단 |
| 글꼴 내려받기 | 2,536KB | 875KB | 통짜 한 벌 대신 조각 판 |
「고쳤다」고 잘못 믿은 경우가 다섯 번 있었습니다. 다음에 같은 함정을 피하려고 적어 둡니다.
같은 종류의 화면을 새로 만들 때 바로 따라갈 순서입니다.
이 작업에서 새로 만든 것들입니다. 파일 이름 그대로 다음 작업에 씁니다. 검사 파일은 세션 임시 폴더(scratchpad), 발행 도구는 C:/tmp에 있습니다.
?probe=1주소 뒤에 붙이면 폰에서 튐·끊김·스크롤 호출이 쌓이고 「결과 복사」로 보낼 수 있다. 블록 안에 내장_regress.js담기 → 수량 올려 무료배송 넘기기 → 내리기 → 체크 토글. 매 단계 상품금액 − 할인 + 배송 = 총액 검사. chromium · webkit · pc 세 번_perf.js · _imgaudit.js총 무게와 긴 작업. 사진이 화면보다 몇 배 큰지, 같은 파일을 두 번 받는지_gauge1.js버튼 누른 뒤 무엇이 몇 밀리초에 바뀌는지 + 통신 시간표. 원인을 시간으로 좁힐 때_cls1.js첫 로딩 내려앉음(layout-shift)을 원인 요소까지 찍어 준다_hscroll.js · _tacontrol.js화면 밖으로 나간 요소 찾기 / 내 터치 도구가 규칙을 반영하는지 대조_skytry.js발행하지 않고 라이브 화면에 색만 갈아끼워 후보 네 개를 한 장으로_wishprobe.js · _wishverify.js버튼이 어느 플랫폼으로 가는지 실제로 눌러 확인파일과 도구를 짝지어 둡니다. 다음에 여기부터 열면 됩니다.
| 고칠 것 | 파일 (skin8 기준) | 올리는 도구 |
|---|---|---|
| 장바구니 기능·디자인 | order/basket.html 안의 ij-cart26 덩어리 | _put17_cart.js → _put8_basket.js |
| 첫 로딩 가림막 | 같은 파일 본문 위쪽 <style id="ij26-veil"> | _patch_base_0910.js (두 스킨 공용) |
| 글꼴·측정 스크립트 | layout/basic/layout.html | _prep8_layout.js → _put8_layout.js |
| 상세 PC 결제 버튼·찜 | product/detail.html 안의 ij-pckakao 덩어리 | _put8_detail_kakaowish.js |
| 메인 추천 카드 | layout/basic/inc/cate.html | _put8_cate_passalacqua.js |
| 메인 숫자 슬라이드 | layout/basic/inc/intro2.html | _put8_intro2_passalacqua.js |
| 헤더 메뉴 | layout/basic/navigation.html (PC·모바일 두 벌) | _put8_nav_passalacqua.js |