2008년 개발 연대기: 앱스토어와 브라우저가 새로운 플랫폼이 되다
iPhone SDK와 App Store, Android 1.0, Chrome과 V8, GitHub, HTML5 첫 공개 초안, App Engine과 국내 WIPI 의무화 해제 결정으로 2008년의 개발 흐름을 살펴봅니다.
2008년에는 소프트웨어를 만들고 전달하는 장소가 한꺼번에 넓어졌다. Apple은 외부 개발자가 iPhone용 네이티브 앱을 만들 수 있는 SDK와 유통 창구를 열었고, Android는 첫 상용 단말기와 함께 1.0에 도달했다. Google Chrome은 브라우저를 웹 문서를 읽는 도구보다 웹 애플리케이션의 실행 환경에 가깝게 설계했다.
개발 과정도 달라졌다. GitHub가 공개 서비스를 시작하며 분산 버전 관리와 개발자 관계망을 결합했고, W3C는 HTML5의 첫 공개 작업 초안을 내놓았다. Google App Engine과 Amazon EBS는 서버와 저장소를 필요할 때 서비스로 이용하는 방법을 구체화했다.
다만 이 변화가 모든 지역과 개발 현장에 동시에 도착한 것은 아니다. 국내에서는 WIPI 탑재 의무가 유지되고 있었고 iPhone도 정식 출시되지 않았다. 방송통신위원회가 12월에 WIPI 의무화 해제를 결정하면서 이듬해의 변화가 준비되기 시작했다.
2008년을 보여주는 장면
| 분야 | 주요 변화 | 개발자에게 생긴 의미 |
|---|---|---|
| 모바일 앱 | iPhone SDK와 App Store 출시 | 개발·결제·배포·업데이트가 하나의 유통 체계로 묶임 |
| 개방형 모바일 | Android 1.0과 T-Mobile G1 | 여러 제조사와 이동통신사가 참여하는 앱 플랫폼이 상용화됨 |
| 웹 브라우저 | Google Chrome 베타와 V8 공개 | JavaScript 성능과 탭 격리, 브라우저 안정성이 핵심 경쟁 요소가 됨 |
| 협업 | GitHub 정식 공개 | Git 저장소와 개발자의 활동·관계가 웹에서 함께 드러나기 시작함 |
| 웹 표준 | HTML5 첫 공개 작업 초안 | 문서뿐 아니라 그래픽·오디오·비디오·웹 앱을 위한 표준 논의가 구체화됨 |
| 클라우드 | Google App Engine과 Amazon EBS | 애플리케이션 실행 환경과 영속 저장소를 서비스로 조달할 수 있게 됨 |
| 국내 모바일 | WIPI 탑재 의무화 해제 결정 | 2009년부터 범용 모바일 운영체제 단말기가 들어올 제도적 길이 넓어짐 |
iPhone SDK와 App Store, 개발과 유통을 하나로 묶다
Apple은 3월 6일 iPhone 2.0 소프트웨어 베타와 iPhone SDK를 발표했다. 2007년의 iPhone은 외부 개발자에게 웹 애플리케이션만 허용했지만, SDK가 공개되면서 Xcode와 Interface Builder, Instruments, iPhone Simulator를 이용해 네이티브 앱을 만들 수 있게 됐다. Cocoa Touch API는 멀티터치, 가속도계, 위치 정보와 같은 기기 기능을 앱에서 사용할 수 있도록 했다.
개발 도구만 제공된 것은 아니었다. 개발자는 유료 앱 판매액의 70%를 받고, Apple은 결제와 호스팅, 배포, 업데이트를 담당했다. 대신 앱은 Apple의 심사를 거쳐 App Store를 통해서만 일반 사용자에게 배포됐다. 넓은 유통 경로와 중앙화된 통제가 처음부터 같은 구조 안에 들어 있었다.
App Store는 7월 10일 500개의 앱과 함께 문을 열었다. Apple은 첫 주말에 다운로드가 1,000만 건을 넘었으며 7월 14일에는 앱이 800개 이상으로 늘었다고 발표했다. 게임, 의료, 위치 기반 서비스, 업무 도구가 같은 장터에서 판매되면서 휴대전화용 소프트웨어는 이동통신사 메뉴에 납품하는 콘텐츠를 넘어 독립적인 제품 시장으로 확장됐다.
이것은 단순히 작은 화면용 프로그램이 늘어난 사건이 아니었다. 개인 개발자와 소규모 팀도 전 세계 사용자를 상대로 앱을 판매할 수 있게 됐고, 설치 파일 배포와 결제 시스템을 따로 구축할 필요가 줄었다. 반면 플랫폼 운영자의 심사와 정책 변경이 사업의 성패에 직접 영향을 주는 새로운 의존 관계도 생겼다.
Android 1.0, 개방형 모바일 플랫폼이 실제 단말기에 올라가다
Android는 2007년에 초기 SDK를 공개했지만, API와 사용자 인터페이스가 계속 바뀌는 개발 단계였다. 2008년 8월 18일 0.9 베타 SDK가 나왔고, 9월 23일 Android 1.0 SDK가 공개되면서 개발자가 호환성을 기대할 수 있는 첫 정식 API 기준이 마련됐다.
같은 날 T-Mobile은 HTC가 제조한 G1을 발표했다. G1은 10월 22일 미국에서 판매되기 시작한 최초의 상용 Android 단말기였다. 터치스크린과 물리 키보드를 함께 갖췄고 Google 검색, Gmail, 지도, YouTube 같은 서비스를 통합했다.
Android Market 베타도 G1과 함께 제공됐다. 초기에는 무료 앱만 배포할 수 있었고 유료 판매 기능은 2009년에 추가됐지만, 개발자가 만든 앱을 단말기에서 찾아 설치하는 기본 경로가 마련됐다. Android 소스 코드도 10월 공개되며 단말기 제조사와 개발자가 플랫폼 내부를 살피고 수정할 수 있게 됐다.
Apple이 기기, 운영체제, 개발 도구, 유통을 한 회사 안에서 통합했다면 Android는 여러 제조사와 이동통신사가 공통 운영체제와 앱 생태계에 참여하는 길을 택했다. 어느 방식이 우세할지는 아직 알 수 없었지만, 2008년에는 두 모델이 모두 실제 시장에서 작동하기 시작했다.
Google Chrome과 V8, 웹 앱을 위해 브라우저를 다시 설계하다
Google은 9월 2일 Windows용 Google Chrome 베타와 오픈소스 Chromium 프로젝트를 공개했다. 첫 공개판은 베타였고, 안정판 Chrome 1.0은 12월 11일에 나왔다. Mac OS X와 Linux용 Chrome은 이 시점에 아직 개발 중이었다.
Chrome은 탭과 플러그인을 여러 운영체제 프로세스로 나누는 구조를 채택했다. 하나의 탭이나 플러그인이 멈춰도 브라우저 전체가 함께 종료될 가능성을 줄이고, 렌더러를 제한된 샌드박스 안에서 실행하려는 설계였다. 웹 페이지에 실행 코드가 많아지면서 브라우저가 운영체제처럼 자원과 장애를 격리해야 한다는 판단이 반영됐다.
새 JavaScript 엔진 V8도 중요한 변화였다. V8은 JavaScript를 네이티브 기계어로 컴파일하고, 숨은 클래스와 인라인 캐시를 이용해 객체 접근 속도를 높였다. Gmail과 지도처럼 JavaScript 비중이 큰 서비스가 늘던 시기에 브라우저의 스크립트 실행 성능은 부가적인 수치가 아니라 웹 애플리케이션의 사용성을 결정하는 요소가 됐다.
Chrome과 V8의 등장은 다른 브라우저에도 성능 경쟁을 촉진했다. 동시에 Chromium과 V8의 코드를 공개함으로써 Google의 브라우저 기술은 자사 제품 안에만 머물지 않고 다른 프로젝트가 활용할 수 있는 기반이 됐다.
GitHub, 저장소에 개발자의 관계와 활동을 더하다
GitHub는 베타 운영을 거쳐 4월 10일 정식으로 공개됐다. Git 자체는 2005년에 등장한 분산 버전 관리 도구였지만, GitHub는 원격 저장소를 호스팅하는 웹 서비스에 사용자 프로필, 저장소 복제, 커밋 댓글, 네트워크 그래프를 결합했다.
중앙 서버의 권한을 받아야만 작업할 수 있는 방식과 달리 Git에서는 누구나 저장소 전체를 복제해 자신의 변경 이력을 만들 수 있다. GitHub는 이 분산 구조를 웹에서 보이게 했다. 어떤 사람이 어떤 프로젝트를 복제했고 어떤 변경을 만들었는지 따라가며 공개 소프트웨어를 중심으로 관계를 맺을 수 있었다.
오늘날 익숙한 GitHub의 모든 협업 기능이 2008년에 이미 완성된 것은 아니다. 예를 들어 현재 형태의 Pull Request 기능은 2010년에 발표됐다. 2008년의 의미는 현대적인 개발 절차가 한 번에 출현했다는 데 있지 않고, 코드 저장소를 개발자의 공개 활동 공간으로 바꾸는 서비스가 출발했다는 데 있다.
HTML5 첫 공개 초안, 웹을 애플리케이션 플랫폼으로 정의하다
W3C는 1월 22일 HTML5의 첫 공개 작업 초안을 발표했다. 이는 확정된 표준이 아니라 검토와 변경을 전제로 한 초안이었다. HTML5가 W3C 권고안이 된 것은 2014년이므로, 2008년에 모든 브라우저가 같은 기능을 즉시 지원했다고 해석해서는 안 된다.
초안은 기존 웹 문서의 작성 관행과 호환성을 고려하면서 브라우저가 잘못된 문서를 처리하는 방식까지 더 명확히 규정하려 했다. 2차원 그래픽을 그리는 canvas, 오디오와 비디오를 문서에 넣고 제어하는 API 등 풍부한 웹 콘텐츠와 애플리케이션을 위한 기능도 포함했다.
당시의 리치 인터넷 애플리케이션은 Flash와 Silverlight 같은 플러그인에 크게 의존했다. HTML5 초안은 이런 기능의 일부를 브라우저와 공개 표준 안에서 제공하려는 장기적인 방향을 제시했다. 구현과 표준화에는 여러 해가 더 필요했지만, 웹의 다음 세대를 논의할 공통 문서가 생겼다는 점이 중요했다.
App Engine과 EBS, 실행 환경과 저장소도 서비스가 되다
Google은 4월 7일 App Engine의 제한된 프리뷰를 공개했다. 개발자는 Python으로 작성한 웹 애플리케이션을 Google의 인프라에서 실행할 수 있었고, 서버 설치와 운영체제 관리 대신 애플리케이션 코드와 데이터 모델에 집중할 수 있었다. 자동 확장, 샌드박스, 데이터 저장소 같은 제약과 기능을 플랫폼이 정한 방식으로 사용해야 했다.
App Engine은 가상 서버 자체를 빌리는 EC2와 다른 선택지를 보여줬다. EC2에서는 운영체제와 실행 환경을 사용자가 구성하지만, App Engine에서는 정해진 실행 환경에 코드를 배포한다. 더 적은 운영 부담을 얻는 대신 언어와 API, 실행 방식의 자유가 줄어드는 플랫폼 서비스의 교환 조건이 분명해졌다.
AWS는 8월 20일 Amazon Elastic Block Store, EBS를 모든 EC2 사용자에게 제공했다. 이전의 EC2 인스턴스 저장 공간은 인스턴스가 종료되면 함께 사라질 수 있었지만, EBS 볼륨은 인스턴스와 독립적으로 유지되고 다른 인스턴스에 붙일 수 있었다. 볼륨의 스냅샷을 S3에 저장하는 기능도 제공됐다.
영속 블록 저장소가 생기면서 EC2 위에서 데이터베이스와 파일 시스템을 운영하는 일이 현실적인 선택지가 됐다. 컴퓨팅 자원에 이어 실행 플랫폼과 저장소까지 API로 요청하는 흐름이 이어지며 클라우드는 단순한 웹 호스팅과 다른 개발·운영 모델을 갖추기 시작했다.
국내: WIPI 의무화 해제를 결정하고 다음 변화를 준비하다
2008년 국내 모바일 시장에는 App Store와 Android의 변화가 곧바로 적용되지 않았다. 무선인터넷 기능이 있는 휴대전화에는 국내 표준 모바일 플랫폼 WIPI를 탑재해야 했고, 이동통신사의 콘텐츠 유통 구조가 강한 영향력을 가지고 있었다. iPhone도 국내에 정식 출시되지 않은 상태였다.
방송통신위원회는 12월 제42차 회의에서 WIPI 탑재 의무화 해제를 위한 규정 개정을 의결했다. 실제로 이동통신사가 탑재 여부를 자율 선택할 수 있게 된 날짜는 2009년 4월 1일이다. 따라서 2008년을 WIPI가 폐지된 해라고 쓰기보다는 폐지를 결정한 해라고 구분하는 편이 정확하다.
WIPI는 이동통신사마다 달랐던 모바일 플랫폼을 표준화하고 콘텐츠 호환성을 높이기 위해 도입됐다. 그러나 iPhone과 Android처럼 세계 시장을 대상으로 하는 범용 운영체제가 등장한 뒤에는 외산 단말기의 국내 진입과 글로벌 앱 생태계 참여를 어렵게 하는 규제로도 지적됐다. 의무화 해제는 기존 생태계의 보호와 세계 플랫폼의 수용 사이에서 정책 방향이 바뀌었음을 보여줬다.
공공 소프트웨어에서는 전자정부 서비스의 품질과 재사용성을 높이고 특정 업체에 대한 종속을 줄이기 위한 표준화 작업이 진행됐다. 다만 전자정부 표준프레임워크의 최초 버전과 소스 코드가 공개된 시점은 2009년이다. 2008년에는 그 필요성과 구축 사업이 구체화된 단계로 보고, 실제 공개와 확산은 다음 해의 변화로 구분해야 한다.
2008년의 의미
2008년은 모바일, 웹, 협업, 인프라에서 각각 새로운 플랫폼이 작동하기 시작한 해였다. App Store는 개발 도구부터 결제와 배포까지 연결했고, Android 1.0은 개방형 모바일 운영체제를 상용 단말기에 올렸다. Chrome과 V8은 복잡한 웹 애플리케이션을 안정적이고 빠르게 실행하는 일을 브라우저 설계의 중심에 놓았다.
GitHub는 코드의 이력뿐 아니라 개발자의 활동과 관계를 공개 웹에 연결했다. HTML5 초안은 플러그인 없이도 더 풍부한 애플리케이션을 표현하려는 표준화의 출발점을 만들었다. App Engine과 EBS는 실행 환경과 영속 저장소를 직접 소유하지 않고 서비스로 이용하는 선택지를 넓혔다.
국내에서는 이러한 세계적 변화와 기존 이동통신 생태계 사이에 시간차가 있었다. 12월의 WIPI 의무화 해제 결정은 그 간격을 좁히는 제도적 전환점이었다. 2009년에는 iPhone이 국내에 정식 출시되고, Android 생태계가 확대되며, 전자정부 표준프레임워크 1.0이 공개된다. Node.js와 Go처럼 이후 개발 흐름에 큰 영향을 줄 기술도 모습을 드러낸다.
참고 자료
- Apple, Apple Announces iPhone 2.0 Software Beta
- Apple, The App Store turns 10
- Apple, iPhone App Store Downloads Top 10 Million in First Weekend
- Android Developers Blog, Announcing a beta release of the Android SDK
- Android Developers Blog, Announcing the Android 1.0 SDK, release 1
- Android Open Source Project, Life of a Release
- Chromium Blog, Welcome to Chromium
- Chromium Blog, Google Chrome's Need for Speed
- Chromium Blog, Multi-process Architecture
- GitHub Blog, We Launched
- W3C, HTML 5: W3C Working Draft 22 January 2008
- W3C, W3C Publishes HTML 5 Draft, Future of Web Content
- Google Cloud Platform Blog, Introducing Google App Engine + our new blog
- AWS, Amazon Elastic Block Store Now Available
- 방송통신위원회, 국내 모바일콘텐츠 시장 현황조사
- 방송통신위원회, 모바일 인터넷 활성화 계획
- 한국지능정보사회진흥원, 전자정부 표준프레임워크 관련 보도자료