블로그 목록
SW 개발 연대기

2007년 개발 연대기: 손안의 컴퓨터를 위한 플랫폼 경쟁이 시작되다

iPhone 출시와 Android SDK 공개, Facebook Platform, Hadoop, Silverlight, LINQ와 국내 UCC·블로그 흐름으로 2007년을 살펴봅니다.

2026년 7월 24일약 22분
#2007#iPhone#Android#Facebook Platform#Hadoop#Silverlight#LINQ#Amazon EC2#UCC#티스토리

2007년에는 휴대전화가 소프트웨어 플랫폼으로 바뀔 조짐이 분명해졌다. 애플은 멀티터치 화면과 데스크톱 수준의 웹 브라우저를 갖춘 iPhone을 판매하기 시작했고, Google과 여러 통신·제조사는 Android와 Open Handset Alliance를 발표했다.

두 플랫폼 모두 이후 모바일 개발을 크게 바꾸지만 2007년의 상태는 서로 달랐다. iPhone은 소비자가 살 수 있는 기기였으나 외부 개발자에게 네이티브 앱 SDK를 제공하지 않았다. Android는 초기 SDK와 에뮬레이터가 공개되었지만 실제 Android 휴대전화는 아직 없었다.

웹과 서버에서도 플랫폼 경쟁이 이어졌다. Facebook은 소셜 그래프를 외부 애플리케이션에 열었고, Hadoop은 대량 데이터를 여러 컴퓨터에서 저장하고 처리하는 기반으로 발전했다. Silverlight와 .NET Framework 3.5는 풍부한 웹 화면과 데이터 질의를 각자의 방식으로 지원했다.

2007년을 보여주는 장면

분야주요 변화개발자에게 생긴 의미
모바일 기기iPhone 미국 출시멀티터치와 전체 화면 브라우저가 휴대전화 사용자 경험을 바꿈
모바일 플랫폼Android와 초기 SDK 공개여러 제조사·통신사를 위한 개방형 모바일 개발 환경이 예고됨
소셜 플랫폼Facebook Platform 출시외부 개발자가 소셜 그래프와 피드 안에 애플리케이션을 배포함
분산 처리Hadoop 0.x의 빠른 발전HDFS와 MapReduce로 여러 서버의 저장·계산을 묶는 도구가 성장함
클라우드EC2 무제한 베타초대 없이 개발자가 가상 서버를 신청할 수 있게 됨
리치 웹Silverlight 1.0 출시플러그인 기반 벡터 화면과 미디어 재생 기술이 등장함
.NETVisual Studio 2008과 .NET 3.5C# 3.0과 LINQ가 데이터 질의를 언어 안으로 가져옴
국내 인터넷UCC·블로그와 광대역망 확대이용자 콘텐츠의 제작·전송·검색·권리 관리가 주요 과제가 됨

iPhone, 전화기 화면에 데스크톱 웹을 옮기다

Apple은 2007년 1월 iPhone을 발표하고 6월 29일 미국에서 판매를 시작했다. 초기 제품은 4GB와 8GB 모델이었고 AT&T의 2세대 이동통신망을 사용했다. 3G iPhone은 다음 해에 나온다.

iPhone은 물리 키보드 대신 손가락으로 직접 조작하는 멀티터치 화면을 중심에 두었다. 탭과 쓸기, 두 손가락으로 확대하는 동작이 사용자 인터페이스의 일부가 되었다. Safari는 축소된 이동통신용 페이지뿐 아니라 일반 웹사이트의 HTML과 CSS, JavaScript를 표시했다.

그러나 2007년의 iPhone에는 App Store가 없었고 외부 개발자가 네이티브 앱을 만들어 정식으로 배포할 공개 SDK도 없었다. Apple이 WWDC에서 제시한 외부 개발 방식은 Safari에서 실행되는 Web 2.0 애플리케이션이었다.

웹 앱은 URL로 배포되고 iPhone의 내장 서비스와 일부 연결될 수 있었지만, 기기의 모든 기능과 오프라인 저장소를 자유롭게 사용하는 네이티브 앱과는 달랐다. 개발자들의 요구가 이어진 뒤 Apple은 2007년 10월 네이티브 SDK 제공 계획을 발표하고 2008년에 실제 SDK와 App Store를 내놓는다.

따라서 2007년 iPhone의 의미는 앱스토어 경제가 완성되었다는 데 있지 않다. 손가락 조작과 웹 브라우징, 전화와 음악을 하나의 소프트웨어 중심 기기에 결합해 이후 모바일 애플리케이션이 놓일 하드웨어 기준을 바꾼 데 있다.

Android, 휴대전화보다 SDK가 먼저 나오다

2007년 11월 5일 Google과 30여 개 기업은 Open Handset Alliance를 발표하고 Android를 공개했다. Android는 특정 Google 휴대전화 한 모델이 아니라 운영체제와 미들웨어, 사용자 인터페이스, 기본 애플리케이션을 포괄하는 모바일 소프트웨어 플랫폼으로 제시되었다.

11월 12일에는 초기 Android SDK가 공개되었다. 개발자는 실제 기기 없이 에뮬레이터에서 애플리케이션을 실행하고 시험하며 디버깅할 수 있었다. Eclipse 플러그인과 문서, 예제도 함께 제공되었다.

애플리케이션은 Java 언어로 작성했지만 일반적인 데스크톱 JVM에서 그대로 실행되는 구조는 아니었다. Linux 커널 위에서 모바일 환경을 위한 런타임과 애플리케이션 프레임워크를 사용했다. 화면을 구성하는 Activity, 백그라운드 작업을 맡는 Service, 구성 요소 사이의 Intent 같은 개념이 초기 SDK에 제시되었다.

2007년의 SDK는 완성판이 아니었다. 공식 개발자 블로그도 화면 모양이 임시이며 API와 사용자 경험이 바뀔 수 있다고 밝혔다. 최초의 상용 Android 기기 T-Mobile G1이 판매되는 것은 2008년이다.

iPhone이 한 회사가 하드웨어와 소프트웨어를 통합한 제품이었다면 Android는 여러 제조사와 통신사가 함께 사용할 개방형 플랫폼을 목표로 했다. 2007년에는 어느 방식이 개발자와 사용자를 얼마나 모을지 아직 확인되지 않았다.

Facebook Platform, 관계망 위에 앱을 올리다

Facebook은 2007년 5월 24일 첫 f8 행사에서 Facebook Platform을 공개했다. 출시 시점에는 65개가 넘는 개발 파트너가 만든 85개 이상의 애플리케이션이 준비되어 있었다.

개발자는 Facebook API와 전용 마크업인 FBML을 이용해 Facebook 안의 캔버스 페이지와 사용자 프로필 영역에 애플리케이션을 만들 수 있었다. 이용자가 앱을 추가하면 뉴스피드와 미니피드를 통해 친구에게 활동이 전달될 수 있었다.

중요한 자원은 소셜 그래프였다. 앱은 단독 웹사이트에서 사용자를 처음부터 모으는 대신 Facebook의 신원과 친구 관계, 배포 경로 위에서 성장할 수 있었다. 게임과 퀴즈, 사진·음악 공유 앱이 친구 초대와 피드를 이용해 빠르게 확산되었다.

Facebook은 캔버스 페이지 안의 광고와 거래를 개발자가 직접 운영하도록 허용했다. 소셜 플랫폼 위에서 독립적인 사업을 만들 수 있다는 기대도 커졌다.

그러나 친구 관계와 프로필 정보를 외부 앱이 사용하는 만큼 개인정보와 과도한 초대, 피드 스팸 문제가 뒤따랐다. 플랫폼 API의 성장에는 접근 권한과 검수, 데이터 사용 정책을 계속 조정하는 일이 필요했다.

Hadoop, 검색 기술에서 범용 분산 처리 기반으로

Hadoop 프로젝트의 출발은 2005~2006년 Nutch 검색엔진에서 분리된 작업까지 거슬러 올라간다. 따라서 Hadoop을 2007년에 처음 만들어진 기술로 기록하면 맞지 않는다. 2007년에는 여러 0.x 버전이 빠르게 공개되며 분산 저장과 처리 기능이 확장되었다.

Hadoop Distributed File System, HDFS는 큰 파일을 블록으로 나눠 여러 서버에 저장하고 복제했다. MapReduce는 입력 데이터를 여러 작업으로 나눠 병렬로 처리한 뒤 결과를 모으는 실행 모델을 제공했다.

Google이 논문으로 공개한 Google File System과 MapReduce의 아이디어를 오픈소스 Java 구현으로 옮겼다는 점이 중요했다. 개발 조직은 Google 내부 시스템을 직접 사용할 수 없었지만 Hadoop을 이용해 범용 서버 묶음에서 비슷한 유형의 대량 처리를 시도할 수 있었다.

2007년 1월의 Hadoop 0.10에는 Amazon S3 파일 시스템 지원이 추가되었고, 8월의 0.14에는 C++와 Python으로 MapReduce 작업을 작성하는 Hadoop Pipes 등이 포함되었다. 아직 1.0 이전의 빠르게 변하는 프로젝트였지만 데이터 규모가 한 서버를 넘어설 때 사용할 수 있는 공개 도구가 구체화되고 있었다.

Hadoop이 Apache의 최상위 프로젝트로 승격되는 것은 2008년이며, 1.0에 도달하는 것은 2011년 말이다. 후대의 성숙한 빅데이터 생태계를 2007년에 그대로 대입하기보다 초기 기반이 형성된 시기로 보는 편이 정확하다.

EC2, 초대 없이 가상 서버를 신청하다

Amazon EC2는 2006년 제한형 베타로 출발했다. 2007년 10월 22일에는 무제한 베타로 전환되어 모든 개발자가 가입하고 사용할 수 있게 되었다.

초기의 단일 인스턴스 유형에 더해 64비트 기반 Large와 Extra Large 인스턴스도 공개되었다. 프로그램의 메모리와 계산량에 따라 다른 크기의 가상 서버를 선택하는 개념이 나타난 것이다.

EC2는 여전히 베타였고 지역과 운영 기능도 제한적이었다. 하지만 S3의 객체 저장소와 함께 사용하면 초기 비용을 들여 서버와 디스크를 소유하지 않고도 인터넷 서비스를 시작할 수 있었다.

서버 수를 코드와 API로 바꾸는 흐름은 운영 자동화의 전제가 된다. 개발 환경과 운영 환경을 얼마나 재현 가능하게 만들지, 인스턴스가 사라져도 데이터를 어떻게 보존할지가 새로운 설계 과제가 되었다.

Silverlight 1.0, 플러그인으로 만드는 리치 웹

마이크로소프트는 2007년 9월 4일 Silverlight 1.0을 공개했다. 브라우저 플러그인을 설치하면 Windows와 Mac의 여러 브라우저에서 벡터 그래픽과 애니메이션, 오디오와 동영상을 재생할 수 있었다.

Silverlight 1.0의 화면은 XAML로 정의하고 JavaScript로 동작을 제어했다. .NET 언어 실행을 본격 지원하는 Silverlight 2는 2008년에 나온다. 따라서 첫 버전부터 C#으로 모든 클라이언트 로직을 작성했다고 설명해서는 안 된다.

당시 HTML과 JavaScript만으로 브라우저 간 고품질 영상과 정교한 화면을 동일하게 구현하기는 어려웠다. Flash가 널리 사용되던 시장에서 Silverlight는 Windows Media 기술과 Visual Studio·Expression 도구의 연계를 강점으로 내세웠다.

플러그인 방식은 브라우저 기본 기능보다 빠르게 새로운 미디어 기능을 제공했지만 사용자가 별도 실행 환경을 설치해야 했다. 이후 HTML5의 영상·그래픽 기능과 모바일 브라우저가 성장하면서 이러한 플러그인 의존 방식의 위치는 약해진다.

C# 3.0과 LINQ, 데이터 질의를 언어 안으로

2007년 11월 Visual Studio 2008과 .NET Framework 3.5가 제공되었다. .NET 3.5는 CLR을 새 세대로 전면 교체하기보다 .NET 2.0과 3.0 위에 라이브러리와 언어 기능을 추가한 점진적 버전이었다.

C# 3.0에는 람다 식, 확장 메서드, 익명 형식, 자동 구현 속성, 식 트리, 지역 변수 형식 추론을 위한 var가 추가되었다. 이 기능들은 Language Integrated Query, LINQ를 지원하기 위해 서로 연결되었다.

var recentPosts =
    posts
        .Where(post => post.Year == 2007)
        .OrderBy(post => post.Title);

개발자는 컬렉션과 XML, 관계형 데이터 등 서로 다른 데이터 원본을 비슷한 질의 문법과 연산자로 다룰 수 있었다. 컴파일러는 람다 식을 실행 가능한 대리자 또는 분석 가능한 식 트리로 변환할 수 있었다.

LINQ to SQL은 관계형 테이블을 객체에 연결하고 질의를 SQL로 바꾸었다. 문자열로 SQL을 조립하는 방식과 달리 형식 검사와 자동 완성의 도움을 받을 수 있었지만, 생성되는 쿼리와 데이터베이스 동작을 이해할 필요까지 사라진 것은 아니었다.

국내: UCC의 대중화와 블로그 플랫폼의 분화

2007년 국내에서 UCC는 인터넷 업계를 넘어 대중문화의 대표 용어가 되었다. 동영상 촬영이 가능한 휴대전화와 디지털카메라, 초고속인터넷이 제작과 업로드의 장벽을 낮췄다.

포털과 전문 동영상 서비스는 업로드, 변환, 임베드, 댓글과 추천 기능을 경쟁했다. 인기 영상은 다른 게시판과 블로그로 빠르게 퍼졌고 방송과 광고에서도 이용되었다. UCC가 2007년 국내 10대 히트상품 조사에 포함될 정도로 관심이 컸다.

확산은 저작권과 책임 문제를 함께 드러냈다. 방송 영상과 음악을 허가 없이 편집해 올리거나 다른 사람의 사진과 글을 복제하는 사례가 늘었다. 정보통신부는 2007년 UCC 이용자를 위한 행동 원칙과 법률 가이드를 내놓았고, 플랫폼에는 신고와 삭제 절차가 중요해졌다.

블로그 시장에서는 포털형 서비스와 독립성이 높은 설치형·가입형 서비스가 함께 성장했다. 태터툴즈는 사용자가 서버에 설치하는 블로그 소프트웨어였고, 다음과 태터앤컴퍼니가 운영한 티스토리는 설치 부담 없이 스킨과 데이터 관리의 자유도를 제공하는 가입형 서비스였다. 2007년 당시 티스토리는 초대 기반의 제한된 오픈 베타로 운영되었다.

통신 기반은 FTTH와 광대역통합망, HSDPA와 WiBro 등으로 넓어졌다. 그러나 iPhone은 2007년 국내에 정식 출시되지 않았고 Android 상용 기기도 세계 어디에도 없었다. 국내 모바일 개발은 여전히 통신사별 플랫폼과 피처폰 환경의 제약을 크게 받았다.

이 때문에 해외에서 시작된 스마트폰 플랫폼 변화가 국내 개발 현장에 즉시 같은 모습으로 적용된 것은 아니었다. 웹과 PC 기반 서비스는 빠르게 성장했지만 모바일 콘텐츠는 통신사 포털과 단말별 규격, 데이터 요금을 함께 고려해야 했다.

2007년의 의미

2007년에는 플랫폼이 개발자를 끌어들이는 방식이 소프트웨어 산업의 중심 경쟁이 되었다. Apple은 iPhone이라는 완성도 높은 기기를 내놓았지만 외부 개발을 웹에 한정했다. Android는 반대로 실제 기기보다 SDK와 개방형 연합을 먼저 제시했다.

Facebook은 사람의 관계망을 앱의 배포 기반으로 열었다. Hadoop은 여러 서버의 저장과 계산을 하나의 프로그래밍 모델로 묶었고, EC2는 그 서버 자체를 필요할 때 요청하는 자원으로 바꾸었다.

Silverlight는 플러그인을 통해 브라우저 표현력을 확장하려 했고, C# 3.0과 LINQ는 데이터 처리를 언어 문법과 형식 체계 안으로 가져왔다. 국내에서는 UCC와 블로그가 이용자 참여의 규모를 키우는 동시에 저작권과 플랫폼 운영 책임을 드러냈다.

다음 해인 2008년에는 App Store와 첫 Android 휴대전화가 등장한다. GitHub, Google Chrome, Android Market, HTML5 초안도 공개되며 모바일·브라우저·협업 플랫폼의 경쟁이 실제 생태계로 확장된다.

참고 자료