혁신을 이뤄내는 기업, 애플. 혁신, 이전에 가지고 있던 풍속이나, 관습, 조직, 방법을 완전히 바꾸어 새롭게 만든다는 의미가 있다.[1] 단순함에서 나오는 혁신은 소비자들의 호응을 이끌어냈다. 사실 따지고 보면, 새로울 것은 없다. 기존의 기술 중에서 쓸만한 것을 찾아 새롭게 조합했을 뿐이다. 그리고 그것을 교묘하게 감추곤 예술성 같은 감성으로 감쌌다. 물론, 이 예술성에는 편리함과 효율성, 높은 효용성을 살린 디자인과 기술이 한몫했을 것이다. 하지만 결국엔 새로울 것이 없는 기술의 통합이다. 잡스는 혁신 속에서 창의성을 발휘한 것이다.[2] 하지만 최근 들어, 혁신이 사라졌다는 얘기가 오간다. 애플의 스타일러스 펜을 보자. 잡스라면, 펜도 펜이지만 손가락으로 더 정밀한 작업도 해낼 수 있는 기기를 개발하려 하지 않았을까 생각한다. 기존의 제품은 어떤가. 최근들어 한 제품에서 단기간에 잇따른 버그가 나오고 있다. 그들의 깐깐함과 높은 완성도는 어디 갔을까. 오늘은 아이폰에서 잇따른 버그 발생에 대해 이야기 해보려 한다.
애플은 1976년 4월 1일에 설립된 미국의 소프트웨어 및 컴퓨터 하드웨어 기업으로 최초의 개인용 컴퓨터를 만든 회사다. 그들이 만든 개인용 컴퓨터는 마우스와 키보드가 달린 컴퓨터로 최초의 노트북인 애플I를 출시하였고, 애플II가 매우 대량으로 팔리면서 개인용 컴퓨터 시대의 막을 열었다. 현재는 컴퓨터를 비롯하여 스마트폰인 아이폰, 애플워치, 아이패드 등 다양한 기기 제품을 판매하고 있으며, 아이튠즈, OS X, iOS 등 소프트웨어도 함께 제공하고 있다. 이전에 얘기했다시피 애플은 스티브 잡스와 스티브 워즈니악이 함께 꾸려오며, 잡스의 철학이 녹아든 제품을 생산했다. 지나치게 꼼꼼하다 싶을 정도로 완벽을 추구하였고, 단 한 곳도 허투루 넘어간 곳이 없다.[3] 하지만 잡스는 세상을 떠났고, 팀쿡이 그 자리를 이어나가면서 애플은 바뀌었다. 팀쿡은 잡스와 또 다른 철학을 가지고 있었고, 그것은 바로 ‘쉰 우유를 팔지 않는다’라는 그만의 유통철학이었다.[4] 하지만 따라가려는 마음이 급했던 탓일까, 최근 몇 가지 흠이 연이어 나오기 시작했다.
12월 3일 쯤, 트위터, 레딧, 페이스북 등 다양한 커뮤니티 사이트에서 아이폰 사용자들의 불만 글이 올라오기 시작했다.[5] 내용인즉슨, 아이폰을 사용하던 중에 갑작스레 초기화면으로 돌아가는 현상이 계속해서 발생하고 있다는 것이다. 이를 ‘리스프링(Respring)’라고 하는데, 앱을 사용하는 도중에 앱은 중단되고 화면 가운데 바람개비 모양의 아이콘이 나와 회전을 하다가, 초기 화면으로 되돌아가는 현상이라고 한다.[6] 버그가 발생하면 휴대폰이 종료되거나 종료되었다 다시 실행되는 것도 아니고, 단순히 바람개비와 멈춘 화면이 이어지다가 조금 이후에 다시 작동한다. 여기에서 리스프링이는 단어는 앱들이 있는 아이폰 홈 화면 프로그램인 ‘스프링보드(SpringBoard)’가 재시작된다고 하여 붙여진 이름이다. 버그는 iOS 11.1.1버전과 11.1.2버전에서 발생하였으며, 국내, 외국은 물론 전세계 동시다발적으로 일어났다.
리스프링 버그가 생기는 원인은 날짜와 알람 시스템과 관련이 있다. 아이폰에서 기본적으로 제공하는 앱 외에 사용자가 받은 앱에서 알람, 혹은 날짜, 시간과 관련하여 알람 기능을 사용하는 경우, 이 버그가 실행된다. 먼저, 우리가 일반적으로 휴대폰에서 알람 기능과 다른 앱에서 일정 시간마다 알람을 보내기 위한 알람은 조금 다른 구조로 실행된다. 앱에서 알람을 보내는 것은 앱이 활성화되어 있지 않은 상태에서 알람 받을 앱의 알람을 ‘푸시 알람 전용 서버’를 통해 기기에 전송한다. 이는 백그라운드 즉, 우리가 앱을 활성화를 하지 않더라도 알람을 받을 수 있도록 설계하기 위함이다. 반면, 우리가 사용하는 진짜 ‘알람’은 백그라운드에서 실시간으로 알람을 받는 구조다. 다시, 다른 앱에서 알람을 보낼 경우 UILocalNotification의 repeatInterval method를 사용하여 앱이 알림을 받으려 할때 버그는 발생한다. 해당 method는 특정 시간에 알람을 보내도록 설정되어 있는데, 현재 iOS 10부터 이 method가 ‘사용 중지 권고’를 받았기 때문에 이 같은 버그가 발생하는 것이다. 특정 시간에 보내는 알람 method를 사용할 수 없으니, 이를 가져오려고 하는 순간 스프링보드가 오작동 나고, 결국 리스프링 버그가 발생하는 것이다.[7]
현재 이 버그의 해결 방법은 간단하다. iOS 11.1.2를 재설치하는 것이다. 현재 완벽하게 고쳐진 것은 아니지만, 최신 업데이트 버전인 iOS 11.1.2버전에는 날짜 버그에 대한 수정 사항도 포함되어 있다고 한다. 두 번째로, 날짜를 변경하는 것이다. 물론, 이는 완벽한 해결안이 될 수 없다. 정식으로 애플의 업데이트가 있지 않은 이상, 이 방법은 차선책이라는 이야기다. 문제는 이런 식으로 해결할 경우, 설정된 시간으로 실행되는 앱에서 문제가 발생할 수도 있다는 점이다. 예를 들어, 찍었던 사진이 꼬이거나, iMessage에서 문제를 일으킬 수도 있을 것이다. 반대로 알람 기능을 사용하는 앱을 삭제하여 앱의 알람을 받지 않거나, 혹은 설정에서 일반으로 이동하여 백그라운드 응용 프로그램 새로 고침을 비활성화하여 스프링보드 재시작을 막는 것도 하나의 방법이다.[8][9]
리스프링 버그가 있기 얼마 전에도 버그는 또 있었다. 11월 11일 쯤에는 일명 콜드게이트(Coldgate)라고 하여, 추운 날씨에 화면이 잘 동작하지 않고 먹통이 되는 버그가 발생하였다.[10] 당시에도 여러 소셜 커뮤니티에서 버그에 대해 불편함을 호소하는 글이 올라왔는데, 추운 곳을 가면 몇 초 동안 터치 입력이 제대로 반응하지 않고, 휴대폰이 멈춘다는 얘기가 대다수였다. 본래 이 같은 문제는 예전에도 있었다. ExtremeTech에 Joel Hruska는 해당 iPhone X의 콜드게이트 버그가 새로운 버그가 아닌 이전에도 있었던, 예를 들어, 아이폰4나 아이폰 3G에서도 일상적으로 있었던 현상이라고 말했다. 하지만 문제는 이번 버그가 발생한 해당 iPhone X는 다른 아이폰 모델과 조금 다르다는 것이다. iPhone X에는 이전 버전과 달리 홈 버튼이 없기 때문에 만약, 터치스크린이 제대로 작동하지 않으면 큰 불편을 초래할 수 있다는 것이다.
이 버그의 원인으로 처음에는 iPhone X에서 채택한 유기발광다이오드(OLED) 화면의 하드웨어 문제라고 많은 이가 추측했다. 하지만 아니었다. 콜드게이트 버그는 하드웨어 디스플레이를 제어하는 애플의 소프트웨어에서 비롯된 것이라 한다.[11] 이 얘기가 처음 나온 것은 Reddit의 한 사용자의 얘기에서 시작된다. 그의 말에 따르면, 기기 전면에 있는 주변 광 센서와 적외선 카메라는 낮은 기온에 영향을 받아, 조명에 변화를 주고, 이 과정에서 일어나는 버그라고 얘기했다.[12] 즉, 추운 날씨에 아이폰의 배터리 수명이 짧아지게 되고, iOS 기기가 너무 뜨거워지면 디스플레이의 밝이를 어둡게 표시될 수 있는데 이와 관련된 소프트웨어 버그라는 것이다.
버그가 발생하고, 이에 대해 빠르게 상황을 정리해나간 곳은 더루프라는 곳이었다. 그들은 애플에 공식적으로 현 상황에 대해 설명을 요청하였고, 애플은 이에 대해 사용환경에 대한 가이드라인과 함께 추후 소프트웨어 업데이트를 통해 문제를 해결할 것이라고 응답했다. 애플의 가이드라인에서는 iPhone X가 0도에서 35도 사이에서 정상작동을 하는데, 문제의 버그는 영하도 아닌 정상 범위의 온도였음에도 제대로 작동을 하지 못했다.[13] 특히나, 화면 옆으로 쓸어내리는 ‘스와이프’ 기능을 동작할 경우 아주 극단적인 지체현상까지 보였다. 그것도 아주 눈에 띄게 말이다. 해당 취약점은 현재 iOS 11.2버전으로 임시 수정되었으며, 국내에는 아직 iPhone X가 출시되지 않았으니, 이후 국내에 정발하게 되면 아마 수정된 것을 받으리라 생각한다.
아무튼 이처럼 12월 3일에는 리스프링 버그, 그리고 11월 17일에는 콜드게이트 버그 등 계속해서 버그가 발견되었다. 2개가 끝이냐고? 당연히 아니다. 단 한달 동안 세 개의 버그, 그리고 고칠 수 없는 치명적인 버그까지, 짧은 시간동안 많은 버그가 발생했다. 다음 편에 계속해서 발생하는 애플 버그에 대해 이어나가 보겠다.