새롭게 엔지니어링한 Windows 부팅 경험

휴! 모두들 빌드(BUILD) 컨퍼런스를 무사히 마치고 복귀하여 업무에 전념하고 있습니다. 많은 분들께 Windows 8을 자세히 소개한 뜻깊은 시간이었으며, 발표자와 Microsoft 참석자 모두가 여러분이 보여준 높은 관심에 대단히 감사해 하고 있습니다. 그렇지만 아직 개발자 프리뷰 단계이므로 해결해야 할 문제들이 많이 남아 있습니다. 향후 게시물에서는 Windows 개발자 프리뷰(WDP)를 기반으로 이러한 문제들을 집중적으로 조명하도록 하겠습니다. 아직 프리뷰를 사용하고 있지 않은 분들은 앞으로 올라올 다양한 블로그 게시물을 이해하기 위한 전제 조건 정도로 생각하시면 좋을 것 같습니다.

부팅 성능은 노력한 만큼 인정 받기가 어려운 부분입니다. 부팅 시간이 너무 오래 걸리는 경우도 있지만, 힘들여 개선을 해도 사용자가 컴퓨터를 아예 부팅하려 하지 않기 때문에 여기에 들인 노력이 제대로 인정을 받지 못하곤 합니다. 몇 년 전에 한 회의 석상에서 빌 게이츠가 다음과 같이 말한 기억이 납니다. "부팅은 fBoot = SystemBoot()"란 하나의 상수를 계산하는 한 줄짜리 함수 호출인데, 엄청난 시간이 걸립니다." 한편, 요즘에는 휴대전화, TV, 케이블 TV 박스, 심지어 TV 원격 부팅에 이르기까지 부팅하지 않는 물건이 거의 없을 정도입니다. Windows 8 빌드 과정에서는 신기술을 활용하는 시각에서 탈피하여 오랫동안 유지된 몇 가지 가정을 되짚어보고 부팅 경험을 완전히 새롭게 생각하고자 했습니다. 또한 키보드가 없는 장치에서도 쉽게 접근하고 효율적으로 사용할 수 있도록 만들고 싶었습니다. 물론, 애초부터 재부팅할 일이 없도록 최선을 다하고 있지만 이 게시물은 부팅하는 경우를 주로 다루고 있습니다. 본 게시물을 작성한 Billie Sue Chafins는 수년간 사용자 인터페이스 디자인 작업에 매달려온 베테랑 프로그램 매니저로서, 이 글에서 부팅 경험을 중점적으로 논의하는 데 도움을 주었습니다. 또한 메트로 스타일의 앱 공유 계약에 관한 자세한 내용은 BUILD에서 알아볼 수 있습니다.
- Steven

하드웨어 생태계가 지속적인 혁신을 거듭하고, 펌웨어가 30년 만에 획기적으로 변화하며, 소프트웨어 변경으로 인해 SSD(반도체 드라이브)를 장착한 시스템에서 부팅 시간이 7초대로 단축됨에 따라, 이제 PC 부팅의 사용자 경험을 21세기에 걸맞은 수준으로 끌어올릴 때가 되었다는 데 이견의 여지가 없었습니다. Gabe Aul이 작성한 이전 게시물에서는 Windows 8에서 빠른 시작 모드가 실질적으로 부팅 시간을 어떻게 단축하는지 논의했습니다. 빠른 부팅 비디오를 보면 부팅이 달라진 것을 실감할 수 있을 것입니다. 대단히 빨라졌을 뿐만 아니라 전원 스위치를 켤 때부터 시작 화면이 나타날 때까지 아주 매끄럽게 진행됩니다. 이 글에서는 개발 팀이 Windows 부팅에 관한 전반적인 사용자 경험을 새롭게 상상하여 이러한 성과를 거둘 수 있었던 과정을 알아보겠습니다.

현재 PC를 켜는 과정을 생각해보면, 우선 컴퓨터가 부팅의 POST(Power-on Self-test) 단계로 들어갈 때 여러 개의 circa-1980 텍스트 콘솔 화면이 깜박이는 것을 볼 수 있습니다. 몇 초 후, 기본 입/출력 시스템(BIOS)에서 Windows로 렌더링이 넘어가고 로그온 UI 단계까지 그래픽 애니메이션이 나타납니다. 현재 Windows 7에서는 이러한 모든 과정에 평균 1분 정도 걸립니다. 이제 이 모든 과정이 7초 만에 화면을 스치듯이 지나간다고 상상해보십시오. 짧은 시간에 모든 전환 과정이 끝나는 것입니다!

왼쪽부터 오른쪽으로 표시한 세 개의 화면: 검은색 화면에 흰색 텍스트가 있는 POST 부팅 단계, 시작 중 표시되는 Windows 로고, '잠시 기다려 주십시오…'라는 문구가 있는 Windows 8 배경 이미지

Windows 8에서 부팅 속도를 얼마나 빨리 단축할 수 있을지 알게 되자, 지금이 바로 매끄럽고 세련되면서도 뛰어난 가전 제품 수준의 사용자 경험을 구현해야 할 적기라는 사실이 분명해졌습니다.

Windows 8은 슬레이트 형식과 같은 터치 중심 장치가 점차 보편화되는 시점에 출시될 것입니다. 따라서 터치에 적합하면서도 마우스와 키보드에도 어울리는 부팅 경험을 제공할 필요가 있습니다. PC가 시작되지 않는 경우 Windows 복구 환경(Windows RE)에서 복구를 수행하거나 시스템을 설정하기 위해 물리적 키보드를 구입해야 한다고 말한다면 누구에게도 설득력을 얻지 못할 것이라는 점은 애초부터 잘 알고 있었습니다.

또한 Windows 8은 새로운 모든 클라이언트 시스템에서 UEFI(Unified Extensible Firmware Interface)가 BIOS에 사용되는 시기에 출시될 것입니다. 레거시 BIOS 인터페이스를 계속 지원할 예정이지만 UEFI 인터페이스를 사용하는 시스템이 훨씬 더 풍부한 성능을 발휘합니다. 예를 들어, UEFI 시스템은 그래픽 출력 프로토콜(GOP) 드라이버를 통해 기본 해상도에서 풍부한 그래픽 경험을 실현할 수 있습니다. UEFI를 사용하면 OS도 표준 방식으로 부팅 펌웨어와 통신할 수 있는 것입니다. UEFI 및 TCG(Trusted Computing Group)의 표준화 노력이 진행됨에 따라 이러한 기반이 더욱 확고해질 것입니다. 이로써 OS와 펌웨어가 서로 협력적으로 보안 전달 메커니즘을 형성하는 보안 부팅과 같은 기능이 구현됩니다. 또한 전원 단추를 누르는 순간부터 매끄러운 시각적 경험이 제공됩니다. 별도의 두 구성 요소가 어우러져 만드는 하나의 경험이라고 할 수 있습니다.

지금까지 부팅 경험은 제대로 개선된 적이 없었습니다. BIOS 메뉴는 거의 30년 동안 변하지 않았던 반면, OS와 하드웨어는 급속도로 발전을 거듭해 왔습니다. Windows의 새 버전이 출시될 때마다 OS 실행 이전의 환경에 많은 기능이 도입되었으며 각 기능은 고유한 기능과 제한을 가지고 디자인되었습니다. 예를 들어, 부팅 관리자에 표시되는 아래의 멀티 OS 및 고급 부팅 옵션 메뉴는 그래픽이 전혀 사용되지 않아 마치 MS-DOS 시대의 메뉴로 보입니다.

컴퓨터 복구, 안전 모드에서 실행 등의 옵션이 있는 부팅 관리자의 고급 부팅 옵션 메뉴

Windows RE 디자인에는 테마가 사용되지 않고 표준 컨트롤로 구성되어 있어 Windows 9x/2000 시대의 모양과 비슷합니다.

컴퓨터 복구, 안전 모드에서 실행 등의 옵션이 있는 부팅 관리자의 고급 부팅 옵션 메뉴

사용자가 하루 평균 한두 번씩 부팅할 정도로 부팅은 시스템에서 많이 노출되는 부분입니다. 부팅 횟수가 너무 많기는 하지만 이 글은 재부팅 횟수를 줄이자는 취지로 작성된 것이 아닙니다. 점점 더 많은 슬레이트와 장치들이 항상 켜져 있게 되면서 부팅 횟수가 줄어들 것으로 생각되지만, 그래도 부팅이 필요한 경우에는 좀 더 빠르고 유동적으로 처리되어야 합니다. 고급 사용자가 OS 실행 이전의 환경에서 설정을 구성하기에 알맞은 Windows 성능을 유지하면서 일반 사용자도 쉽게 다가갈 수 있는 PC 부팅 경험이 필요합니다. 물론 이러한 모든 목표를 충족하는 일은 결코 쉽지 않았으며 많은 상황에서 균형을 맞춰 조정해야 했습니다.

처음 부팅할 때 매끄럽게 설정되는 Windows 8

부팅 경험에 관해 논의하기에 가장 적합한 부분은 Windows 8 설정 UI인데, 최고의 터치 중심 경험을 제공하려고 했던 핵심 부분 중 하나이기 때문입니다. 제품 키를 입력하고 무선 네트워크를 연결하며 기본 계정을 설정하는 등의 전체 설정 프로세스는 소프트 키보드를 사용하여 접근할 수 있습니다.

Windows 8이 사전 설치된 새 PC를 구입하고 처음으로 부팅하면 보통의 경우 '개별화(Specialize)' 설정 단계가 진행됩니다. 이 단계에서 컴퓨터 관련 정보와 드라이버가 시스템에 설치됩니다. 과거에는 다른 설정 단계와 시각적으로 구분되는 일련의 화면들이 순차적으로 표시되었지만, 이제는 POST부터 부팅, 설정에 이르기까지 시각적으로 매끄럽게 흘러갑니다.

언제나 매끄럽게 진행되는 부팅

Windows 8 부팅 경험은 Windows의 정체성을 그대로 담고 있습니다. 언제나 빠르고 유동적이며 매끄럽고 세련됩니다. Windows 8 부팅에서 추구하는 목표는 UEFI의 기능을 활용하고 생태계와 상호 협력하여 PC 부팅 시 나타나는 제조업체 로고 화면을 POST부터 Windows 로그온 UI까지 계속 유지하는 것입니다. 로고는 세련되어야 하고 PC를 구입한 사용자 신뢰도에 걸맞은 브랜드 이미지를 전달해야 합니다. 펌웨어는 POST 과정에서 로고를 렌더링하고, 이 로고는 Windows 부팅이 제어권을 넘겨 받는 동안 화면에 계속 표시되어 OS가 부팅될 때까지 그대로 유지됩니다. 쉽게 말해 펌웨어와 OS라는 두 가지 경험을 결합하여 아래와 같이 하나의 경험을 제공하는 것입니다.

PC를 켤 때 나타나는 삼성 로고

고급 기능

일부 사용자는 OS 설정을 변경하거나, 물리적 장치에서 부팅하거나, Windows RE에서 부팅 문제를 해결하여 시스템을 사용자 지정하려고 합니다. 세부적 부분에 관심이 많은 사용자라도 부팅할 때마다 매끄러운 흐름을 느낄 수 있을 뿐 아니라 세련된 터치 중심의 경험을 하게 됩니다.

사용 가능한 모든 고급 기능을 철저하게 조사하여 OS로 들어가기 전에 필요한 모든 기능의 통합 보기를 제공하도록 디자인했습니다. 이전 Windows 버전과 달리 Windows 8의 고급 부팅 옵션은 쉽게 다가갈 수 있고, 탐색이 간편하며 조화로운 모양으로 구성되어 있습니다.

<:video poster="https://msdntnarchive.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/43/0456.Reengineering%20Title.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43/0456.Reengineering-Title.jpg" controls="controls" width="480" height="270">이 HTML5 비디오는 현재 브라우저에서 지원되지 않습니다.
다른 미디어 플레이어로 보려면 이 비디오를 다운로드하십시오.
고화질 MP4 | 저화질 MP4

위 비디오에서 전체 데모를 시청할 수 있지만 여기서는 몇 가지 시나리오만 중점적으로 설명하겠습니다.

PC의 듀얼 부팅

PC에 여러 버전의 Windows를 설치하여 사용할 경우, Windows 8에서는 한 번의 터치나 마우스 클릭 또는 Tab 키 이동으로 부팅할 OS를 선택할 수 있는 UI가 제공됩니다. 이 UI는 몰입도가 뛰어나면서 터치 가능한 고화질의 UI입니다.

Windows 8의 듀얼 부팅 옵션 화면: [Choose an operating system](운영 체제 선택), 아이콘 1: Windows 8, 아이콘 2: Windows 7, [Change defaults or choose other options](기본 설정 변경 또는 다른 옵션 선택) 링크

기본 OS를 변경해야 하는 경우가 종종 있고, 기본 OS가 시작되기 전에 카운트다운 창을 변경해야 할 수도 있습니다. 현재 이러한 설정을 변경하려면 부팅 구성 데이터(BCD) 저장소를 편집해야 하기 때문에 좀 번거롭습니다. 이중 OS 설정으로 부팅할 때 이러한 기능은 핵심적 사용자 경험의 일부로 포함시키기에 충분한 가치가 있다고 판단했습니다. bcdedit 명령을 기억하거나 msconfig에서 설정을 변경할 필요 없이 부팅 UI 내에서 기본 OS와 타이머 설정을 쉽게 구성할 수 있습니다. (이러한 옵션은 계속 지원됩니다.)

기본 제목이 있는 화면: 옵션 변경, 옵션 1: 타이머 변경, 옵션 2: 기본 OS 변경, 옵션 3: 기타 옵션 선택, 복구 도구, 다른 장치로 부팅, 기타 옵션

다음 메시지 화면: [Choose the default operating system](기본 OS 선택) [The current default is Windows 8.](현재 기본 설정은 Windows 8입니다.) 옵션 1: 'Windows 8' 옵션 2: 'Windows 7'

Windows RE에서 문제 해결

시작 문제를 해결하거나 Windows를 이전 복원 시점으로 되돌리기 위해 Windows RE로 부팅해야 하는 시나리오를 고려해 보겠습니다. 이러한 고급 기능은 사용할 일이 거의 없긴 하지만 이 기능에서도 일관되고 터치 가능한 경험을 제공하고 싶었습니다.

고급 옵션 화면, 옵션 1: 시스템 복원, 옵션 2: 시스템 이미지 복구, 옵션 3: 자동 복구, 옵션 4: 명령 프롬프트

예를 들어, 일부 파일에서 접근제어목록(ACL)을 확인하기 위해 Windows RE 내에서 명령 프롬프트 창을 실행해야 한다고 가정해 보면 이 경험에 대해 저희가 얼마나 깊이 고민했는지 잘 알 수 있을 것입니다. 예를 들어 키보드가 없는 장치를 현장에서 복구할 때와 같이, 필요에 따라 Windows RE의 명령 프롬프트에서 소프트 키보드를 사용할 수 있도록 했습니다.

화상 키보드와 함께 사용되는 명령 프롬프트 창

장치로 부팅

많은 분들이 부팅 가능한 USB 메모리 등의 장치로 부팅한다는 사실을 잘 알고 있습니다. 현재, 장치로 부팅하기 위해서는 하드웨어/펌웨어 공급업체에 따라 여러 기능 키 중 하나에 할당된 BIOS 부팅 옵션 메뉴로 들어가야 합니다. 그러나 UEFI 펌웨어의 경우에는 BIOS 부팅 옵션을 나열하도록 OS가 펌웨어에 콜백할 수 있습니다. 즉, 이전에 BIOS 메뉴에서만 이용할 수 있었던 고급 부팅 옵션을 Windows에서 제공하는 기능으로도 이용할 수 있게 된다는 의미입니다.

기본 제목이 있는 화면: 장치 사용, 옵션: UEFI: SanDisk

위에서 언급한 것처럼 시스템의 '모든' 기능을 상세히 조사했고 어떻게 하면 모든 과정이 전체 Windows PC 경험의 일부처럼 느껴지도록 할 수 있을지 고민했습니다. 모든 부분을 빠짐없이 완벽하게 조사했고, 두려움의 대상인 'BSOD'도 예외는 아닙니다! 안타깝게도, 때때로 하드웨어에서 문제가 발생할 수 있기 때문에 'BSOD' 부분을 완전히 없애기는 힘들었습니다. 정보를 어느 정도 표시할지 결정하기 위해 여러 차례 디자인을 수정하면서 적정 수준으로 조정하는 과정은 매우 흥미로웠습니다. 자신의 컴퓨터 혹은 가족 컴퓨터의 문제를 해결하는 모든 경우에 고급 사용자의 필요성을 충족시키는 동시에, 일반 소비자에게도 거부감이 없도록 만들고 싶었습니다. 단, 획기적 변화에도 불구하고 파란색은 그대로 유지하기로 했습니다! :-)

다음 메시지를 표시한 블루 스크린: [Your PC ran into a problem that it couldn’t handle, and now it needs to restart. You can search for the error online: SYSTEM THREAD EXCEPTION NOT HANDLED (pci.sys) - It’ll restart in: 1 second](PC에 처리할 수 없는 문제가 발생하여 다시 시작해야 합니다. 오류를 온라인으로 검색할 수 있습니다. 시스템 스레드 예외가 처리되지 않음(pci.sys) - 1초 내에 다시 시작합니다.)

부팅 사용자 경험의 가치가 제대로 평가되기를 바라며 많은 관심을 가져 주시기 바랍니다. 또한 지금까지 진행된 개발 작업에 대해 많은 질문이 있을 것으로 예상됩니다. 앞으로도 블로그를 통해 꾸준히 대화를 이어가겠습니다.

감사합니다.

Billie Sue