
최신 컴퓨터를 사용하는 경험은 종종 답답할 정도로 역설적일 수 있습니다.고성능 부품(첨단 멀티코어 프로세서, 최첨단 그래픽 카드, 대용량 RAM)에 상당한 투자를 했는데도 불구하고 폴더 열기나 검색 같은 간단한 작업조차 기다리게 되는 경우가 있습니다.
근본적인 문제는 하드웨어 자체가 아닌 경우가 많습니다.중급 시스템조차도 일상적인 작업을 비교적 쉽게 처리할 수 있습니다.진짜 원인은 소프트웨어에 있습니다.지난 몇 년 동안 소프트웨어는 복잡하고 비효율적이었으며, 컴퓨팅 성능과 메모리가 크게 발전했음에도 불구하고 리소스 사용을 최적화하지 못했습니다.이러한 성능을 효율적으로 활용하는 대신, 최신 소프트웨어는 마치 무한한 리소스를 마음대로 사용할 수 있는 것처럼 행동하여 실망스러운 성능을 초래하는 경우가 많습니다.
하드웨어와 소프트웨어 성능의 차이
오늘날의 컴퓨터 하드웨어는 불과 수십 년 전의 하드웨어와 비교할 때 눈부신 발전을 이루었습니다.최신 CPU는 여러 개의 코어와 방대한 캐시를 통해 실시간으로 성능을 최적화하도록 정교하게 설계되었습니다.놀랍게도 오늘날의 스마트폰은 1980년대에 방 하나를 가득 채웠던 슈퍼컴퓨터보다 더 뛰어난 컴퓨팅 성능을 갖추고 있습니다.
그래픽 처리 장치(GPU)는 더욱 극적으로 발전했습니다.예를 들어 NVIDIA의 RTX 시리즈를 살펴보겠습니다.이 GPU는 그래픽에만 집중하는 것이 아니라, 특수 코어를 사용하여 AI 및 머신 러닝 관련 작업을 처리하는 병렬 처리 엔진으로 진화했습니다.텐서 코어는 연산 효율성을 높이고 RT 코어는 실시간 레이 트레이싱을 구현하여 초당 수조 건의 계산을 처리합니다.
이처럼 강력한 성능을 활용하면 컴퓨터 작동 시 원활한 사용자 경험을 기대할 수 있습니다.애플리케이션은 빠르게 실행되어야 하고, 멀티태스킹 중에도 인터페이스는 유연해야 하며, 작업 간 전환도 원활해야 합니다.하지만 안타깝게도 현실은 그렇지 않은 경우가 많습니다.
이 시나리오는 이전 시대의 소프트웨어 개발과 극명한 대조를 이룹니다. Windows NT 3.51과 같은 운영 체제를 개발할 당시 개발자들은 메모리와 처리 능력을 세심하게 관리했습니다.그들은 오늘날 단일 브라우저 탭이 사용하는 것보다 훨씬 적은 RAM을 사용하는 환경에 적합한 시스템을 개발했고, 오늘날의 개발 패러다임에서는 거의 구식으로 느껴지는 수준의 효율성을 구현했습니다.
NT 3.51에서 작업했습니다.128MB 메모리를 꿈꿨었죠.8MB로 실행하려고 했는데, 16MB로 만족했던 것 같습니다.이제는 프로세서 캐시에 전부 넣을 수 있게 됐죠.
— 존 버트(@jvert) 2024년 9월 3일
Windows 사용자 경험 탐색
성능 지연의 가장 두드러진 사례는 최신 운영 체제, 특히 Windows에서 찾아볼 수 있습니다. Microsoft의 잦은 기능 업데이트는 Windows 10과 11의 핵심 인터페이스 반응성을 향상시키는 데 거의 도움이 되지 않아 사용자들의 광범위한 불만을 야기합니다.일반적인 불만으로는 마우스 오른쪽 버튼 클릭 후 컨텍스트 메뉴가 지연되거나 파일 탐색기 창이 시차를 두고 렌더링되는 현상이 있습니다.
특히, 몇 년 전 개발자 훌리오 메리노가 수행한 실험은 이러한 문제점을 부각시켰습니다.그는 최소한의 하드웨어에서 실행되는 구형 운영 체제와 고성능 컴퓨터에서 실행되는 최신 Windows를 비교했는데, 그 결과 반응 속도의 차이가 얼마나 극명한지 드러났습니다.
한 테스트에서 128MB RAM과 600MHz 프로세서를 탑재한 2000년형 컴퓨터는 Windows NT 3.51을 실행하는 애플리케이션을 즉시 실행했습니다.반면, 훨씬 새롭고 강력한 32GB RAM을 탑재한 6코어 Mac Pro는 UI 요소가 덩어리로 렌더링되면서 지연 현상을 보였으며, 이는 성능 저하를 드러냈습니다.
개발자 테오 브라운이 공유한 또 다른 놀라운 사례는 이 문제를 잘 보여줍니다.그는 간단한 작업인 스트리밍 녹화 파일이 담긴 폴더를 여는 데 무려 8분이 걸렸고, 마우스 오른쪽 버튼을 클릭하는 동안 Windows 탐색기가 다운되는 상황을 설명했습니다.원인은 Windows가 각 파일의 메타데이터를 자동으로 분석하는 과정에서 발생하는 지연으로, 이로 인해 성능이 심각하게 저하되었기 때문입니다.해결책은 자동 폴더 유형 검색 기능을 비활성화하는 것이었는데, 이는 사용자가 시스템 고유의 문제에 대한 해결책을 얼마나 쉽게 찾을 수 있는지를 보여주는 사례입니다.
클린 설치에도 불구하고 Windows는 사전 설치된 앱, 원격 측정 시스템, 그리고 리소스를 많이 소모하는 백그라운드 프로세스에 얽매이는 경우가 많습니다.이러한 어수선함은 일상적인 작업 수행에 심각한 지연을 초래하며, 많은 사용자가 타사 “디블로트 스크립트”에 의존한다는 사실까지 더해져 더욱 심각해집니다.이러한 스크립트는 사용자들이 원치 않는 추가 기능을 제거하기 전까지 Windows를 “거의 사용할 수 없다”고 자주 언급하는 것을 보면, 이러한 불만의 심각성을 더욱 여실히 드러냅니다.
검색 기능 또한 이러한 불편함을 그대로 반영합니다.최근 파일을 검색할 때 Windows에서 검색 결과가 표시되는 데 비정상적으로 오랜 시간이 걸리고, 종종 관련 없는 웹 검색 결과가 섞여 표시되는 것을 볼 수 있습니다.많은 사람들이 “Everything” 과 같은 무료 도구 처럼 입력하는 동시에 파일을 빠르게 찾아주는 즉각적인 검색 기능을 원합니다.이는 대형 IT 기업 중 한 곳의 느린 내장 검색 기능과 극명한 대조를 이룹니다.
품질 기준으로의 회귀?
고품질 소프트웨어 제공이라는 기본 원칙이 편의성에 밀려 뒷전으로 밀려났다는 의견이 점점 커지고 있습니다.과거를 기억하는 사람들은 소프트웨어, 특히 운영 체제와 주요 애플리케이션이 출시 전에 엄격한 내부 테스트를 거쳐 “골드” 수준의 품질을 달성했던 시절을 떠올립니다.이러한 과정을 통해 출시 당시 안정성, 완전성, 그리고 준비성이 보장되었습니다.
Windows NT 4.0이나 Windows 2000과 같은 시스템을 고려할 때, 이러한 버전은 철저한 품질 보증 주기 덕분에 기업 수준의 안정성을 제공할 것으로 예상되었습니다.여기에는 Microsoft 직원조차도 직접 소프트웨어를 사용해야 하는 “도그푸딩(dogfooding)”이라는 관행도 포함되었습니다.업데이트는 오늘날처럼 끊임없이 제공되는 빠른 패치와는 달리, 전통적으로 체계적으로 구성된 서비스 팩 형태로 제공되었습니다.
오늘날의 ” Windows as a Service ” 모델은 종종 혼란스럽게 느껴집니다. Windows Insider Program은 품질 관리의 연장선상에 있는 것이 아니라 수백만 명의 무급 참여자에게 테스트를 아웃소싱하는 것처럼 보입니다.사용자들은 주요 출시와 함께 버그, 기능 오류, 전반적인 성능 저하에 대한 잦은 불만을 견뎌내야 합니다.출시되지 않고 완성되지 않은 제품에 대한 패치가 대중의 항의가 있은 후에야 적용되는 반복적인 악순환입니다.이러한 관행은 운영 체제에만 국한되지 않습니다.많은 게임에서 이러한 우려스러운 추세가 나타나고 있으며, Cyberpunk 2077의 참담한 출시가 이를 잘 보여줍니다.
“지금 출시하고 나중에 수정”하는 이러한 지속적인 접근 방식은 많은 사용자에게 주요 스튜디오의 개발 철학에 대한 의문을 제기하게 했습니다. GTA 6 출시 연기 결정은 록스타가 성급한 출시의 잠재적 위험을 인지하고 있음을 보여주는 것일 수 있습니다.
“결코 완성되지 않는다”는 동일한 사고방식은 제어판과 같은 기존 시스템을 새로운 설정 앱으로 천천히 개편하는 과정에서도 드러납니다.이 과정은 2012년 Windows 8과 함께 시작되었지만 13년이 지난 지금도 계속되고 있습니다.
웹 성능의 과제
최신 소프트웨어의 성능 문제는 데스크톱 운영 체제를 넘어 웹 플랫폼에서도 나타납니다.연결성과 기기 성능이 향상되었음에도 불구하고, 사용자는 지나치게 느리고 리소스를 많이 사용하는 웹 경험을 자주 경험합니다.웹사이트는 이전 버전에 비해 로딩 속도가 느리고 반응 속도가 떨어지는 것처럼 느껴질 수 있습니다.
이러한 지연은 웹 애플리케이션의 복잡성 증가와 무거운 JavaScript 프레임워크의 광범위한 사용에서 비롯됩니다. React나 Next.js와 같은 도구는 기능을 크게 향상시키지만, 단순한 웹사이트에 적용하면 코드 크기가 커지고 로드 시간이 지연될 수 있습니다.아이러니하게도 이는 진정한 프로젝트 요구 사항보다는 편의성 중심의 개발 환경 설정에서 비롯되는 경우가 많습니다.
Slack과 같은 Electron 기반 도구처럼 데스크톱용 웹 기술로 개발된 애플리케이션도 종종 “부풀려짐” 문제를 겪습니다.각 애플리케이션은 웹 브라우저 버전을 번들로 제공하므로, 오버헤드가 누적되어 시작 시간이 느려지고 리소스 소비가 증가합니다.
그럼에도 불구하고, 다양한 개발 우선순위에 따라 성능이 향상될 수 있음을 보여주는 뛰어난 사례들이 여전히 존재합니다.특히 McMaster-Carr 웹사이트는 빠른 로딩 시간으로 주목을 받았는데, 이는 최신 기술로 구축된 현대적이고 시각적으로 매력적인 사이트들과 극명한 대조를 이룹니다.
100년도 더 전에 설립된 회사가 어떻게 인터넷에서 가장 빠른 사이트를 운영할 수 있을까요? pic.twitter.com/y97Eiq5Bmv
— Kenneth Cassel (@KennethCassel) 2024년 10월 17일
McMaster-Carr는 견고한 서버 사이드 렌더링, 적극적인 프리페칭 전략, 다층 캐싱 접근 방식, 그리고 체계적인 자산 최적화와 같은 기본 기술을 활용하여 이를 달성했습니다.속도와 사용성에 대한 그들의 헌신은 최신 프레임워크의 매력을 능가하며, 필요성이 여전히 디자인을 좌우할 수 있음을 보여줍니다.
리눅스 옵션: 엇갈린 선택
더 원활한 컴퓨팅 환경을 위해 많은 사용자가 Linux와 같은 다른 운영 체제로의 전환을 고려합니다.특히 XFCE나 LXQt와 같은 가벼운 데스크톱 환경을 사용하는 다양한 배포판은 구형 하드웨어에서 성능을 크게 향상시켜 Windows와 같은 포괄적인 솔루션보다 오버헤드가 낮아 시스템이 빠르게 작동하는 것처럼 느껴지게 합니다.
하지만 Linux로 전환하는 것은 많은 사용자에게 호환성 문제를 야기하는데, 특히 인기 있는 전문가용 도구의 경우 더욱 그렇습니다. Adobe Creative Cloud나 Microsoft Office와 같은 필수 애플리케이션에는 Linux 버전이 기본적으로 제공되지 않아, Windows로 돌아가기 전에 Linux를 잠시 사용하게 되는 경우가 많습니다.
소프트웨어 팽창과 느림의 이유
이처럼 첨단 하드웨어와 소프트웨어 및 웹 성능 최적화를 위한 입증 가능한 전략들이 등장했음에도 불구하고, 현대 애플리케이션들이 왜 종종 이렇게 느리고 부풀려지는지 의문이 들 수밖에 없습니다.답은 복잡할 수 있지만, 몇 가지 핵심 요인이 눈에 띕니다.
- “소비자를 베타 테스터로” 모델: 주요 소프트웨어 회사들은 품질 보증 활동을 철저한 내부 검토에서 공개 베타 테스트로 전환하는 경우가 많으며, 사용자 피드백을 바탕으로 실제 환경에서 기능을 완성합니다.이는 철저한 검증을 거친 “골드” 릴리스가 표준이었던 시절과는 확연히 다릅니다.
- 품질보다 속도에 집중: 신속한 기능 출시와 관련된 현재의 압박은 종종 신중한 기술보다 편의성을 우선시하여 세부적인 성능 최적화에 착수하기보다는 부풀려진 프레임워크가 지배하게 만듭니다.
- 과도한 추상화: 여러 계층의 추상화를 사용하면 개발이 간소화되지만 신중하게 최적화하지 않으면 불필요한 성능 오버헤드가 발생할 수 있습니다.
- 개발자 기술 및 집중력: 메모리 관리 및 효율적 알고리즘과 같은 최적화 기술은 개발자들 사이에서 덜 흔해졌고, 이는 더 쉽게 배울 수 있는 최신 프레임워크 및 통합 기술에 비하면 덜 흔해졌습니다.
- 비즈니스 모델: 오늘날 많은 소프트웨어 솔루션에는 광고, 원격 측정, 사용자 참여를 위해 설계된 기능이 내장되어 있어 핵심 기능을 저하시키는 불필요한 복잡성을 더합니다.
- 증가하는 복잡성: 보안, 인터넷 연결, 고급 그래픽 처리에 대한 요구가 증가함에 따라 본질적인 과제와 확장성 문제가 발생합니다.
마무리 생각: 하드웨어가 항상 원인은 아닙니다.
다음에 컴퓨터가 일상적인 작업조차 느리게 느껴진다면, 새 하드웨어로 업그레이드하기 전에 잠시 멈춰 보세요.현재 시스템의 기능은 과거와 비교하면 훌륭하지만, 비효율적이고 불필요한 소프트웨어 때문에 제대로 작동하지 않을 가능성이 높습니다.
소프트웨어 개발에서 성능, 안정성, 그리고 품질을 다시 최우선으로 고려해야 할 절실한 요구가 있습니다.개발 문화가 성능과 사용자 경험을 개선하고, 사용자의 시간과 리소스 제약을 모두 존중하는 방향으로 전환되는 것이 매우 중요합니다.사용자의 요구를 진정으로 충족하는 소프트웨어를 제공하기 위해서는 견고하고 효율적인 솔루션 제공에 다시 집중해야 합니다.
이러한 변화가 나타나기 전까지는 사용자들은 아무리 강력한 컴퓨터에서도 느린 성능으로 계속 어려움을 겪을 것이며, 종종 업그레이드만이 유일한 해결책이라고 생각하게 될 것입니다.
답글 남기기