필요할 때 불러오기

손님이 아직 스크롤도 안 했는데 아래쪽 사진 마흔 장까지 다 부르면, 정작 맨 위 첫 글자가 늦게 떠요. 보일 때가 되면 부르도록 순서를 미루는 게 이 이야기예요.

쉽게 말하면

아침에 문을 열기 전, 창고 재고를 전부 매장 바닥에 깔아 놓고 그다음에 셔터를 올리는 가게는 없어요. 입구 진열대만 채우고 문을 열죠. 손님이 안쪽으로 걸어 들어오면 그때 그 칸을 채워요. 그런데 화면은 기본 성격이 그 반대예요. 아래쪽에 있어서 아무도 아직 못 본 사진까지 일단 다 실어 오고 나서 문을 열어요. 필요할 때 불러오기는 화면에게 "입구부터 채우고, 나머지는 손님이 걸어 들어올 때"라고 규칙을 정해 주는 일이에요.

미루지 않았을 때
첫 화면 요청 한 번 = 사진 40장 + 지도 + 상담창 + 후기 목록 전부 지금 당장

손님이 보고 있는 건 맨 위 사진 두 장인데, 나머지 서른여덟 장이 먼저 줄을 다 차지해요. 첫 글자가 뜨기까지 몇 초가 더 걸려요.

미뤘을 때
첫 화면 요청 한 번 = 맨 위 사진 2장 + 글 나머지는 그 자리까지 스크롤하면

손님이 볼 것만 먼저 와요. 아래쪽은 손님이 내려가는 속도보다 빨리 채워지니까, 손님 입장에서는 처음부터 다 있던 것처럼 보여요.

왜 첫 화면이 손해를 보나

손님의 휴대폰과 내 서버 사이에는 한 번에 몇 개씩만 지나갈 수 있는 좁은 통로가 있어요. 사진 마흔 장을 한꺼번에 요청하면 통로에 마흔 장이 줄을 서요. 문제는 맨 위 사진과 글도 그 줄에 같이 서 있다는 거예요.

그래서 아래쪽 사진을 미루면 아래쪽만 늦어지는 게 아니라 위쪽이 빨라져요. 줄이 짧아지니까요. 이게 이 규칙이 효과가 큰 이유예요. 무언가를 지우거나 화질을 낮추지 않고, 순서만 바꿔서 첫 화면을 앞당겨요.

특히 티가 나는 손님이 있어요. 처음 오는 손님, 지하철에서 여는 손님, 오래된 휴대폰을 쓰는 손님이에요. 내 컴퓨터에서는 사진이 이미 남아 있어서 아무 문제 없어 보이는데, 그 손님들에게만 몇 초가 되는 식이에요.

  1. 1손님이 주소를 눌러요. 화면은 "이 페이지에 필요한 것" 목록을 만들어요.
  2. 2그 목록에 아직 화면에 안 보이는 것까지 다 들어가요. 아래쪽 사진, 접혀 있는 후기, 페이지 맨 밑 지도까지요.
  3. 3목록에 있는 것이 다 도착할 때까지 통로가 붐벼요. 위쪽 글과 대표 사진도 그 사이에 끼어 있어요.
  4. 4손님은 흰 화면이나 반쯤 그려진 화면을 보고 있어요. 여기서 돌아서는 손님이 나와요.
  5. 5미루기를 켜면 3번 단계의 목록이 짧아져요. 나머지는 손님이 그 자리에 가까워질 때 조용히 채워져요.

무엇을 미루고, 무엇은 절대 안 미루나

"다 미루면 다 빨라지겠지"가 아니에요. 손님이 첫 눈에 보는 것을 미루면 오히려 더 느려 보여요. 미룬 것은 요청이 한 박자 늦게 출발하니까, 하필 그게 대표 사진이면 손님은 빈칸을 더 오래 봐요.

화면 속 요소미룰까이유
맨 위 대표 사진(간판 사진)미루지 않아요손님이 0초에 보는 그림이에요. 미루면 출발이 늦어져서 빈칸이 더 오래 보여요
스크롤해야 나오는 사진들미뤄요가장 이득이 큰 자리예요. 메뉴판·갤러리·후기 사진이 여기 해당해요
페이지 맨 아래 지도미뤄요지도는 무게가 큰 손님이에요. 대개 아무도 안 내려가는 자리에 혼자 앉아 있어요
채팅 상담 위젯미뤄요손님이 말을 걸 때 오면 돼요. 첫 화면 줄에 세울 이유가 없어요
동영상미뤄요사진 여러 장 무게예요. 표지 그림만 먼저 보여 주고 누르면 불러오게 해요
글자와 가격미루지 않아요가벼운 데다 손님이 찾아온 이유예요. 미룰 이유가 없어요
목록 100줄(예약·주문·상품)나눠요20줄만 먼저 주고 아래로 내려가면 다음 20줄을 붙여요. 이게 무한 스크롤이에요

빈칸 크기를 미리 잡아 두세요

미룬 사진이 나중에 도착하면서 아래 내용을 쑥 밀어 내리는 일이 생겨요. 손님이 누르려던 버튼이 손가락 아래에서 도망가는 그 현상이에요. 사진이 들어갈 자리를 미리 비워 두면 안 밀려요. 시킬 때 "사진 자리를 미리 잡아 두고 미뤄 주세요"까지 한 문장으로 말해 주세요.

AI에게 그대로 말할 문장

사장님이 직접 손볼 일은 없어요. 증상을 증상 그대로 말하면 돼요. 아래 표의 오른쪽 칸을 스튜디오 채팅에 그대로 붙여 넣으세요. 용어를 외울 필요는 전혀 없어요.

내가 겪은 증상그대로 말할 문장
첫 화면이 느려요. 사진이 많아서 같아요"화면 아래쪽에 있어서 처음에 안 보이는 사진들은 손님이 스크롤해서 그 자리에 올 때 불러오게 해 주세요. 맨 위 대표 사진은 지금처럼 바로 보이게 두세요."
사진이 뜨면서 아래 내용이 툭 밀려요"미뤄서 불러오는 사진 자리를 미리 비워 두어서, 사진이 도착할 때 아래 내용이 밀리지 않게 해 주세요."
상품 목록이 200개인데 목록 화면이 무거워요"목록을 한 번에 20개만 보여 주고, 아래로 내려가면 다음 20개가 이어 붙게 해 주세요. 마지막에 도달하면 '다 봤어요'라고 알려 주세요."
지도랑 상담창 때문에 처음이 느린 것 같아요"지도와 상담 위젯은 첫 화면이 다 뜬 다음에 불러오게 해 주세요. 상담 위젯은 손님이 버튼을 누를 때 불러와도 괜찮아요."
동영상을 넣었는데 페이지가 무거워졌어요"영상은 표지 그림만 먼저 보여 주고, 손님이 재생을 누를 때 영상을 불러오게 해 주세요."
미뤘더니 아래쪽 사진이 빈칸으로 보일 때가 있어요"미룬 사진을 조금 더 일찍 부르게 해 주세요. 손님이 그 자리에 닿기 전에 미리 준비되면 좋겠어요."
무엇부터 손댈지 모르겠어요"이 화면에서 처음에 함께 불러오는 것들을 무거운 순서로 알려 주세요. 지금은 고치지 말고 목록만 보고 싶어요."

한 번에 하나만 시키세요

일곱 문장을 한 번에 붙이면 무엇이 효과가 있었는지 알 수 없어요. 한 문장 시키고, 휴대폰으로 열어 보고, 다음 문장. 이 순서가 결국 더 빨라요. 시키기 전 첫 글자가 뜨는 시간을 속으로 세 두면 비교가 돼요.

지금은 신경 쓰지 않아도 되는 때

정직하게 말하면, 이 문서를 읽고 아무것도 안 하는 게 맞는 사장님이 많아요. 미루기는 짐이 많을 때 효과가 나는 규칙이에요. 짐이 적으면 효과도 없고, 대신 빈칸이 잠깐 보이는 부작용만 남아요.

내 상황지금 할 일
사진이 다섯 장쯤인 한 장짜리 소개 페이지안 해도 돼요. 다섯 장은 통로가 붐빌 양이 아니에요
하루 손님이 열 명 남짓, 아직 문의 전화가 목표안 해도 돼요. 지금 급한 건 속도가 아니라 첫 손님이에요
휴대폰에서 열어 보니 이미 두어 초 안에 뜬다안 해도 돼요. 숫자가 괜찮으면 손대지 않는 게 이득이에요
아직 만드는 중이고 내용도 계속 바뀐다미뤄 두세요. 내용이 굳은 다음에 해도 늦지 않아요
사진이 서른 장 넘거나 목록이 백 줄 넘는다지금 할 만해요. 여기서부터 체감이 시작돼요
지도·영상·상담창 같은 무거운 손님이 세 개 이상 붙어 있다지금 할 만해요. 개수가 아니라 무게가 문제예요

손님이 하루 열 명인 가게에서 화면 속도를 다듬는 건 시간 낭비예요. 그 시간에 손님을 한 명 더 데려오는 일이 훨씬 커요. 겁을 줘서 뭔가 하게 만들 마음은 없어요. 언제 필요해지는지만 알아 두고, 그때 이 문서로 돌아오면 돼요.

판단 기준은 하나면 충분해요. 와이파이를 끈 휴대폰으로 내 주소를 열어 보고, 첫 글자가 보일 때까지 속으로 세 보세요. 셋을 넘으면 손볼 값이 있고, 안 넘으면 없어요. 더 넓은 이야기는 빠른 화면 만들기에 있어요.

미룰 순서가 있어요

속도를 손볼 때가 됐다면 순서는 이래요. 첫째, 사진 무게 줄이기. 이건 부작용이 거의 없어요. 둘째, 안 보이는 사진 미루기. 셋째, 지도와 상담창처럼 무거운 기능을 누를 때 부르게 하기. 위에서부터 하나씩 하고 그때마다 시간을 재세요. 세 개를 한꺼번에 하면 무엇이 효과였는지, 무엇이 화면을 밀리게 만들었는지 구분이 안 돼요.

실제로 겪는 장면

장면 1 · 외주 개발자가 말했다

이미지에 레이지 로딩 걸어 뒀어요. 히어로만 이거(eager)로 뺐습니다.

이제 해석돼요. 아래쪽 사진은 보일 때 부르게 미뤘고, 맨 위 대표 사진 한 장만 예외로 지금 부르게 뒀다는 뜻이에요. 맞게 한 거예요. 확인할 건 하나예요. "사진 들어갈 자리는 미리 잡아 뒀나요?"라고 물어 보세요. 이 한 가지를 빼먹으면 화면이 툭툭 밀려요.

장면 2 · 손님이 후기에 적었다

메뉴 사진이 반쯤 빈칸으로 보여요. 몇 번 위아래로 흔들면 나오긴 하는데 좀 이상해요.

미루기를 너무 늦게 걸어 둔 상태예요. 손님이 그 자리에 도착한 다음에야 사진을 부르기 시작하니 빈칸이 보여요. 고치는 방향은 끄는 게 아니라 당기는 것이에요. "손님이 그 자리에 닿기 전에 미리 준비되게 조금 더 일찍 불러 주세요"라고 말하면 돼요.

미루다가 생기는 부작용 세 가지

  1. 1빈칸이 보여요. 부르는 시점이 너무 늦으면 손님 눈에 회색 칸이 잡혀요. 조금 더 일찍 부르게 당겨서 고쳐요.
  2. 2내용이 밀려요. 사진 자리를 안 잡아 두면 도착하는 순간 아래가 내려가요. 누르려던 버튼이 도망가는 그 느낌이에요. 자리를 미리 비워 두면 끝나요.
  3. 3검색과 공유에서 빠질 수 있어요. 스크롤해야 나타나는 내용은 검색 로봇이 못 볼 여지가 있어요. 사진을 미루는 건 대체로 안전한데, 글과 목록 자체를 스크롤할 때만 만들어 내는 방식은 조심해야 해요.

글은 사진과 다르게 다뤄요

미루기가 안전한 쪽과 위험한 쪽을 가르는 선은 "그게 사진이냐 내용이냐"예요. 사진은 미뤄도 돼요. 검색 결과에 걸려야 하는 본문 글·상품 이름·가격은 첫 화면에 실제로 있어야 해요. 상품이 200개라 나눠 보여 준다면, 검색 로봇이 따라갈 수 있는 페이지 주소도 함께 있어야 해요. 이 부분은 검색에 걸리게 만들기와 함께 보세요.

자주 묻는 것

Q. 사진을 가볍게 만드는 것과 미루는 것은 같은 얘기예요?
다른 얘기예요. 가볍게 만들기는 짐 하나의 무게를 줄이는 일이고, 미루기는 지금 들 짐의 개수를 줄이는 일이에요. 둘은 겹치지 않으니 같이 해요. 순서를 따지면 무게 줄이기가 먼저예요. 5메가바이트짜리 사진은 미뤄도 결국 5메가바이트라서요. 자세한 건 사진 가볍게 만들기에 있어요.
Q. 무한 스크롤이 좋아요, 아니면 페이지를 번호로 나누는 게 좋아요?
성격이 달라요. 무한 스크롤은 구경하듯 훑는 화면(갤러리·피드)에 맞고, 번호로 나누는 방식은 다시 찾아와야 하는 화면(주문 내역·재고 목록)에 맞아요. "어제 그 3페이지"를 다시 열 수 있는 게 번호 방식의 장점이에요. 관리자 화면이라면 번호 방식을 권해요.
Q. 미루면 손님이 쓰는 데이터 요금도 줄어요?
네, 그게 겉으로 안 보이는 이득이에요. 손님이 위쪽만 보고 나가면 아래쪽 사진은 애초에 오지 않아요. 손님 데이터도 아끼고 내 서버 사용량도 아껴요. 사진이 많은 가게일수록 차이가 커요.
Q. 내 컴퓨터에서는 빠른데 손님만 느리다고 해요. 왜요?
내 컴퓨터에는 이미 사진 사본이 남아 있어서 다시 안 받아 와요. 손님은 처음이라 전부 받아요. 그래서 판단은 와이파이를 끈 휴대폰이나 로그인하지 않은 새 창에서 해야 해요. 사본이 남는 원리는 같은 답을 두 번 안 만들기(캐시)에 있어요.
Q. 미루기를 켜면 눈이 불편한 손님에게 문제가 되나요?
사진에 설명글이 붙어 있으면 화면 읽어 주는 프로그램은 대체로 문제없이 읽어요. 다만 무한 스크롤은 키보드만 쓰는 손님이 페이지 맨 아래(연락처·약관)에 도달하기 어렵게 만들 수 있어요. 웹 접근성은 공공·의무 대상에 따라 기준이 다르고 판정도 갈리니, 내 서비스가 대상인지는 한국지능정보사회진흥원의 웹 접근성 안내나 담당 기관에 확인하세요. 안전한 습관은 하나예요. 무한 스크롤을 쓰더라도 연락처와 약관 링크는 항상 닿을 수 있는 자리에 따로 두는 거예요. 사진 설명글은 사진에 설명 붙이기를 보세요.
Q. 이미 만들어 놓은 화면에도 나중에 적용할 수 있어요?
돼요. 화면을 다시 만들 필요는 없어요. 스튜디오 채팅에 위 표의 문장을 붙이면 지금 있는 화면에 규칙만 얹어요. 손대기 전 첫 글자 뜨는 시간을 재 두면, 얹은 뒤 효과를 숫자로 볼 수 있어요. 바꾼 뒤에는 휴대폰에서 위아래로 한 번 훑어 보세요. 빈칸이 잡히거나 내용이 밀리지 않으면 잘 얹힌 거예요.

헷갈리기 쉬운 것

미루기 = 화질 낮추기? 아니에요. 화질은 그대로예요. 도착하는 시점만 바뀌어요. 화질을 건드리는 건 다른 작업이에요.

"기다리는 중" 표시와 같은 건가요? 아니에요. 표시는 손님을 안심시키는 일이고(기다리는 중 표시), 미루기는 실제로 기다리는 시간을 줄이는 일이에요. 둘은 짝으로 씁니다. 미룬 자리에 회색 칸을 보여 주면 손님은 고장이 아니라 준비 중으로 읽어요.

첫 화면을 막는 것과 같은 문제인가요? 뿌리가 같은 가족이에요. 미루기는 그중 "아직 안 보이는 것"을 다루고, 문을 여는 순서 자체를 다루는 이야기는 첫 화면을 막는 것들에 있어요. 짐 자체를 덜어 내는 이야기는 용량 줄이기예요.

확인해 보세요

메뉴 사진 40장이 있는 가게 페이지예요. 어떻게 시키는 게 맞을까요?

하나 더

미룬 사진이 뜰 때마다 아래 내용이 툭 밀려서 손님이 버튼을 잘못 눌러요. 뭐라고 말할까요?

직접 해보기

지금 만든 화면에 목록만 물어보세요

고치는 건 나중 일이에요. 스튜디오에서 만든 화면을 열고 채팅에 이 문장을 그대로 붙여 넣으세요. "이 화면을 처음 열 때 함께 불러오는 것들을 무거운 순서대로 알려 주세요. 그중 손님이 스크롤해야 보이는 것만 따로 표시해 주세요. 지금은 고치지 말고 목록만 보고 싶어요." 표시된 것이 두어 개뿐이면 사장님은 손볼 게 없는 상태예요. 그것도 좋은 결과예요.

스튜디오에서 확인하기

더 깊이 (안 읽어도 괜찮아요)

"보일 때"를 화면은 어떻게 아나 · 화면은 사진 하나하나에 감시원을 붙여 두는 방식으로 알아요. 감시원은 "이 칸이 손님 화면 안으로 들어왔는지"만 지켜보다가, 들어오는 순간 사진을 불러오라고 알려요. 요령은 여기 있어요. 감시원의 기준선을 화면 경계가 아니라 화면 아래 한 뼘 바깥에 그어 둬요. 그러면 손님이 그 칸에 닿기 직전에 이미 사진이 오고 있어서, 손님 눈에는 빈칸이 아예 안 보여요. 빈칸이 보인다는 건 이 기준선이 너무 짧게 잡혀 있다는 뜻이고, 늘려 달라고 말하면 되는 문제예요.

미루기는 사진만의 이야기가 아니에요 · 같은 원리가 기능 덩어리에도 적용돼요. 지도, 채팅 상담창, 통계 그래프, 결제 창 같은 것들은 저마다 짐을 들고 와요. 손님 백 명 중 세 명만 쓰는 기능이 나머지 아흔일곱 명의 첫 화면을 느리게 만들고 있는 경우가 흔해요. 이건 "화면에 보일 때"가 아니라 "손님이 그 버튼을 누를 때" 부르게 미뤄요. 채팅 상담창이 대표적이에요. 말을 걸기 전에는 아이콘 하나만 있으면 되니까요. 첫 화면 짐을 통째로 줄이는 이야기는 용량 줄이기에서 이어져요.

비유가 어디부터 안 맞나 · 창고와 매장 비유는 첫 겹을 이해하는 데는 정확한데, 한 군데서 어긋나요. 매장에 물건을 깔면 깔아 둔 만큼 남아 있지만, 화면은 손님이 창을 닫으면 대체로 처음 상태로 돌아가요. 그래서 미루기의 이득은 손님이 다시 올 때마다 새로 발생해요. 반대로 사본이 남는 구간에서는 두 번째 방문이 원래 빠르기도 해서, 미루기의 효과는 "처음 오는 손님에게 가장 크다"로 기억하는 게 맞아요. 사본이 얼마나 남는지는 같은 답을 두 번 안 만들기(캐시) 쪽 이야기예요.

이것만 기억하세요

  • ·미루기는 지우는 게 아니라 순서를 바꾸는 일이에요. 아래쪽을 미루면 위쪽이 빨라져요
  • ·맨 위 대표 사진은 미루지 않아요. 미룰 대상은 아직 안 보이는 것이에요
  • ·미룰 때는 사진이 들어갈 자리를 미리 비워 둬요. 안 그러면 내용이 툭 밀려요
  • ·사진은 미뤄도 되지만 검색에 걸려야 하는 글과 가격은 첫 화면에 있어야 해요
  • ·사진이 몇 장뿐이거나 손님이 하루 열 명이면, 지금은 안 하는 게 맞아요
VibeCampus새 빌드