로딩 시간 5초는 용납될 수 없습니다. 그런데 그게 표준이 되어버렸죠.
프로그램을 실행하거나 앱을 열거나 웹사이트를 불러올 때, 아마 적어도 몇 초는 기다리고 있을 거예요. 흔한 일이죠.
그런데 그래선 안 됩니다.
한번 빠른 로딩과 반응 속도를 맛본 고객은 절대 경쟁사로 떠나지 않아요. 당신의 빠른 앱과 경쟁사의 느린 앱의 차이를 체감한 순간, 느린 쪽에 크게 짜증을 내게 되니까요.
이 강점을 어떻게 손에 넣을지, 현실의 사실들은 어떤지, 개발자에게 무엇을 물어봐야 할지 — 이 글에 다 담았어요.
실제로 얼마나 빨라질 수 있을까요?
이 글은 기술 문서가 아니니, 이해하기 쉬운 기본 수치 몇 개만 가볍게 훑고 현실과 비교해 볼게요.
저가형 휴대폰에 들어가는 값싼 CPU도 초당 수십억 개의 명령을 처리할 수 있고, 코어는 최소 2개입니다(사실상 처리 장치가 2개인 셈이죠).
요즘 디스크에서 데이터를 읽는 속도는 초당 수천 메가바이트에 달해요. 이것도 저가형 휴대폰 기준입니다.
인터넷 전송 속도는 낮게 잡아도 초당 수백 메가바이트 수준이고요.
비교해 봅시다
가장 느린 제품부터 살펴보죠. 완성도 높은 웹페이지는 로딩 직후 기준으로, 크게 잡아도 15~25메가바이트 정도예요.
다 따져보면, 열려 있는 브라우저에 링크를 입력했을 때 약 1~2초 안에 웹사이트가 완전히 로딩되어 보여야 한다는 뜻이죠.
휴대폰 앱이라면 파일이 기기 안에 저장되어 있으니 인터넷 연결(가장 느린 속도)은 해당되지 않아요. 초당 기가바이트 속도라면, 일반적인 앱은 0.15~0.25초 안에 열리고 작동해야 합니다.
이미 열려 있는 앱이나 프로그램, 웹사이트 안에서의 상호작용은 가장 빠른 CPU와 때로는 GPU 속도만 거쳐요. 버튼을 클릭하면 화면에 그야말로 즉각적인 결과가 보여야 정상입니다.
지금의 현실
현실에서는 이런 속도를 항상 달성할 수 있는 건 아니에요. 하지만 짐작하시겠지만, 로딩 시간이 1~2초에서 5초로 늘어날 필요도 없고, 웹사이트는 여전히 2~3초 안에 열릴 수 있습니다. 그것도 최적화가 제대로 안 된 아주 무거운 웹페이지 기준이에요.
개발자에게 무엇을 물어봐야 할까요?
기술이나 코딩을 세세하게 이해할 필요는 없어요. 기술 면접을 보자는 게 아니니까요.
스택
먼저 "스택이 뭔가요?"라고 물어보세요. 무엇을 가지고, 무엇 위에 만드는지를 묻는 질문이에요. 개발자가 자기가 쓰는 멋진 기술들을 줄줄이 늘어놓기 시작한다면, 그건 위험 신호예요. "웹뷰" 같은 말을 한다면 마찬가지고요.
왜냐고요? 오늘날 느린 소프트웨어의 상당 부분은 예전에 만들어진 무언가 위에 만들어지고, 그건 또 그 이전에 만들어진 다른 무언가 위에 만들어졌기 때문이에요. 사슬처럼 엮여 있는 거죠. 즉, 앞서 말한 속도들이 여전히 유효하긴 해도, 당신의 프로젝트가 아니라 수많은 계층을 거쳐 처리해야 한다는 뜻입니다.
WordPress가 느린 건, 당신에게 필요 없는 것까지 전부 다 하기 때문이에요.
측정
두 번째로 물어볼 건, 속도를 어떻게 측정하는지, 그리고 속도 목표가 무엇인지예요.
놀랍게도 많은 개발자가 5초를 목표로 잡는다고 말해요. 이것도 또 다른 위험 신호죠. 측정 방법에 대해 제대로 된 답을 못 하거나, "열어보고 확인합니다"라고 답하는 경우도 마찬가지입니다.
직접 눈으로 보고 느끼는 건 테스트에서 꼭 필요한 부분이에요. 하지만 그건 동시에 수많은 "제 환경에선 잘 되는데요" 문제의 근원이기도 하죠.
이제 속도 지표를 요구하기 시작해야 합니다
프로젝트를 제대로 만드는 데는 더 많은 노력이 들어요. 하지만 생각하시는 만큼 많지는 않습니다.
작은 프로젝트(예: 단일 페이지 웹사이트)는 처음부터 새로 만드나 기존 도구를 쓰나 측정 가능한 작업량 차이가 없어요. 큰 프로젝트는 신중한 계획, 장단점 저울질, 그리고 이른바 프레임워크를 왜 써야 하는지에 대한 이해가 필요하죠.
제품 명세에는 제품이 어떻게 작동해야 하는지뿐 아니라, 얼마나 빨라야 하는지도 포함되어야 합니다. 반드시 나눠야 할 아주 중요한 논의예요.
저희 경험상, 기술을 잘 모르는 분에게는 이런 대화가 불편하다는 걸 잘 알아요. 그래서 LINK-V에서는 고객이 이해할 수 있는 언어로 이 과정을 함께 풀어갑니다. 결국 소프트웨어란 사람과 컴퓨터 사이의 계층이고, 저희가 소프트웨어를 만든다면 그 방식도 똑같이 가져가야 하니까요.