블로그 목록
SW 개발 연대기

2012년 개발 연대기: JavaScript에 타입을 더하고 컴퓨팅을 손바닥에 놓다

TypeScript, Raspberry Pi, Windows 8, DynamoDB와 Compute Engine, Android 4.1과 iOS 6, 그리고 국내 LTE·카카오 게임하기로 2012년의 개발 흐름을 살펴봅니다.

2026년 7월 24일약 21분
#2012#TypeScript#Raspberry Pi#Windows 8#DynamoDB#Google Compute Engine#Android 4.1#iOS 6#LTE#카카오 게임하기#개발 연대기

2012년에는 커지는 소프트웨어를 관리하는 도구와 더 많은 사람이 직접 컴퓨팅을 실험할 수 있는 하드웨어가 함께 등장했다. Microsoft는 JavaScript에 선택적 정적 타입과 개발 도구를 더한 TypeScript를 공개했고, 35달러짜리 Raspberry Pi는 작은 Linux 컴퓨터를 교육과 제작 현장에 보급했다.

클라우드에서는 서버뿐 아니라 데이터베이스까지 운영 부담을 서비스 제공자가 맡는 흐름이 뚜렷해졌다. AWS는 DynamoDB를 출시했고 Google은 Compute Engine의 제한된 프리뷰를 공개하며 가상 머신 시장에 들어왔다. Windows 8은 PC와 태블릿을 하나의 운영체제와 앱 장터로 연결하려 했다.

국내에서는 전국 LTE망과 스마트폰 보급이 모바일 서비스의 속도와 사용 시간을 늘렸다. 카카오는 메신저의 친구 관계를 외부 게임에 연결하는 ‘게임하기’를 출시했고, 애니팡의 성공은 모바일 게임의 발견·초대·수익화 방식을 바꾸기 시작했다.

2012년을 보여주는 장면

분야주요 변화개발자에게 생긴 의미
웹 언어TypeScript 0.8 공개JavaScript 호환성을 유지하며 정적 타입 검사와 IDE 지원을 활용
교육·메이커Raspberry Pi 첫 판매저렴한 Linux 컴퓨터로 프로그래밍·전자 제작을 직접 실험
WindowsWindows 8과 Windows Store데스크톱과 터치 앱, x86과 ARM을 아우르려는 새 앱 모델 등장
관리형 데이터Amazon DynamoDB 출시서버·분할·복제를 직접 운영하지 않는 NoSQL 데이터베이스 이용
클라우드 VMGoogle Compute Engine 프리뷰Google 인프라에서도 범용 Linux 가상 머신을 실행할 선택지 등장
모바일Android 4.1과 iOS 6부드러운 UI·풍부한 알림, 지도·Passbook 등 플랫폼 기능 확대
국내 통신LTE 전국망과 가입자 증가고용량 미디어와 항상 연결된 모바일 서비스의 현실성이 높아짐
국내 플랫폼카카오 게임하기 출시메신저 관계망이 게임의 유통·초대·경쟁·결제 경로로 확장

TypeScript, 커지는 JavaScript를 분석 가능한 코드로

Microsoft는 10월 1일 TypeScript를 공개하고 첫 공개 버전 0.8을 배포했다. Anders Hejlsberg가 이끈 프로젝트는 JavaScript 문법을 포함하는 상위 집합으로 설계돼, TypeScript 코드를 기존 브라우저와 Node.js가 실행할 JavaScript로 변환했다.

핵심은 타입 표기를 강제하는 것이 아니라 필요한 곳에 선택적으로 더하는 방식이었다. 컴파일러는 실행 전에 타입 불일치를 찾고, 편집기는 타입 정보를 이용해 자동 완성과 정의 이동, 이름 변경 같은 기능을 더 정확하게 제공할 수 있었다.

interface Post {
  year: number;
  title: string;
}

function headline(post: Post): string {
  return `${post.year}: ${post.title}`;
}

기존 JavaScript 라이브러리는 선언 파일로 외부 API의 타입을 설명할 수 있었다. 모든 코드를 한 번에 바꾸지 않고 JavaScript와 TypeScript를 섞어 점진적으로 도입하려는 설계였다. 브라우저가 TypeScript를 직접 실행할 필요도 없었다.

2012년의 TypeScript는 0.8 초기판이었다. 제네릭과 여러 언어 기능, 방대한 DefinitelyTyped 생태계는 이후 발전했으며 안정판 1.0은 2014년에 나왔다. 이 해의 의미는 JavaScript의 동적 특성을 없애려 한 것이 아니라, 대규모 코드와 도구가 활용할 정적 정보를 선택적으로 추가한 데 있다.

Raspberry Pi, 프로그래밍할 수 있는 컴퓨터를 낮은 가격에

Raspberry Pi Foundation은 2월 29일 Raspberry Pi 1 Model B를 35달러에 처음 판매했다. 신용카드 크기의 보드에는 ARM 프로세서, 256MB 메모리, HDMI, Ethernet과 USB 단자가 들어갔고 SD 카드에서 Linux를 실행했다.

첫 판매는 교육용 완제품보다 하드웨어·소프트웨어 애호가와 제작자를 위한 초기 공급에 가까웠다. 예상보다 주문이 몰려 유통 사이트가 느려지고 일부 구매자는 실제 제품을 받기까지 몇 달을 기다려야 했다. 재단 기록에 따르면 첫날 주문은 10만 건을 넘었다.

GPIO 핀을 통해 LED, 버튼, 센서와 모터를 코드로 제어할 수 있다는 점이 일반 PC와 달랐다. Python이나 Scratch로 프로그래밍을 배우는 데서 끝나지 않고, 기상 관측기·로봇·미디어 센터·소형 서버 같은 물리적 프로젝트로 이어갈 수 있었다.

저렴한 가격이 곧 모든 교육 문제를 해결한 것은 아니다. 화면과 키보드, 전원, 저장 장치를 별도로 준비해야 했고 교재와 교사의 지원도 필요했다. Raspberry Pi의 가치는 완성된 교육 해법보다 컴퓨팅과 전자 제작을 직접 만져 볼 수 있는 공통 하드웨어를 넓게 보급한 데 있었다.

Windows 8, PC와 태블릿을 하나의 앱 모델로 묶다

Microsoft는 8월 1일 Windows 8 개발을 마치고 RTM 단계에 도달했으며 10월 26일 일반 판매를 시작했다. 같은 날 Microsoft가 직접 설계한 Surface와 ARM용 Windows RT 기기도 시장에 나왔다.

Windows 8은 시작 메뉴 대신 터치에 맞춘 시작 화면과 Live Tile을 전면에 배치했다. Windows Store 앱은 전체 화면 중심의 새 실행 모델을 사용했고, C#/Visual Basic과 XAML, C++ 또는 HTML·CSS·JavaScript로 개발할 수 있었다.

전통적인 Win32 데스크톱 프로그램도 x86 Windows에서 계속 실행됐지만, Windows RT에서는 Store 앱과 일부 기본 데스크톱 프로그램만 사용할 수 있었다. 하나의 Windows 이름 아래 서로 다른 프로세서와 앱 호환 범위가 존재해 개발자와 사용자에게 혼란을 주기도 했다.

Windows Store는 앱의 검색, 구매, 설치와 업데이트를 한곳에 모았다. Microsoft도 모바일 앱 장터의 유통 방식을 PC 운영체제에 적용한 셈이다. 그러나 기존 데스크톱 업무와 새 터치 인터페이스 사이의 전환 비용이 컸고, 두 앱 모델을 어떤 비중으로 지원할지가 개발 조직의 과제가 됐다.

DynamoDB, 데이터베이스 운영도 서비스에 맡기다

AWS는 1월 18일 Amazon DynamoDB를 출시했다. 키와 속성으로 구성된 데이터를 저장하는 관리형 NoSQL 서비스로, 사용자가 요청한 읽기·쓰기 처리량에 맞춰 테이블 용량을 조정하고 짧고 예측 가능한 응답 시간을 제공하는 것을 목표로 했다.

개발자는 데이터베이스 서버와 디스크를 설치하거나 복제, 장애 조치와 데이터 분할을 직접 구성하지 않았다. AWS가 여러 가용 영역에 데이터를 복제하고 SSD 저장소를 관리했다. 사용자는 테이블 구조와 키, 일관성 방식, 필요한 처리량을 선택했다.

이름은 Amazon이 2007년 논문으로 공개한 내부 분산 저장 시스템 Dynamo에서 왔지만 같은 제품은 아니었다. DynamoDB는 Dynamo의 분산 설계 경험과 SimpleDB 운영 경험을 바탕으로 외부 고객에게 제공된 새 관리형 서비스였다.

출시 당시에는 읽기·쓰기 용량을 미리 설정하는 provisioned throughput 모델이 중심이었다. 현재의 온디맨드 용량, 전역 테이블, 트랜잭션 같은 기능은 훨씬 뒤에 추가된다. 서버를 직접 관리하지 않는 편리함과 특정 서비스의 데이터 모델·API에 맞춰야 하는 제약이 함께 있었다.

Google Compute Engine, Google도 범용 가상 머신을 열다

Google은 6월 Google I/O에서 Compute Engine을 발표하고 제한된 프리뷰를 시작했다. App Engine이 정해진 실행 환경에 코드를 배포하는 PaaS였다면 Compute Engine은 사용자가 Linux 가상 머신과 디스크, 네트워크를 구성하는 IaaS였다.

Google 검색과 YouTube 같은 서비스를 운영해 온 데이터센터 인프라에서 범용 계산 작업을 실행한다는 점을 내세웠다. 초기에는 초대를 받은 고객과 대규모 계산 작업을 중심으로 제공됐으며, 모든 개발자가 자유롭게 가입하는 일반 제공 서비스가 아니었다.

Compute Engine의 일반 제공은 2013년 12월이다. 따라서 2012년을 정식 출시로 기록하기보다 제한된 프리뷰를 통해 Google이 범용 클라우드 VM 시장에 진입한 해로 보는 편이 정확하다.

AWS EC2와 Google Compute Engine의 경쟁은 가상 서버의 수뿐 아니라 네트워크, 영속 디스크, 이미지, API와 가격 모델을 포함한 클라우드 플랫폼 경쟁으로 확장됐다. 개발자는 특정 PaaS의 제약과 직접 운영하는 VM의 자유·책임 사이에서 선택할 수 있었다.

Android 4.1과 iOS 6, 플랫폼 경험을 세밀하게 다듬다

Google은 6월 27일 Android 4.1 Jelly Bean 프리뷰를 발표하고 7월 18일 정식 SDK를 제공했다. Project Butter는 화면 표시와 터치 반응을 더 부드럽게 만들려 했고, 확장 가능한 알림과 알림 안의 동작 버튼, 양방향 텍스트, 미디어 코덱 API가 추가됐다.

Google Play의 스마트 앱 업데이트는 전체 설치 파일 대신 바뀐 부분만 내려받아 업데이트 용량을 줄였다. 7인치 Nexus 7도 함께 등장해 개발자는 휴대전화와 10인치 태블릿 사이의 화면 크기를 고려해야 했다.

Apple은 6월 iOS 6를 미리 공개하고 9월 19일 배포했다. Apple 자체 지도, Passbook, 확장된 Siri 언어와 기능, Facebook 통합, 셀룰러 FaceTime 등이 포함됐다. 지도 데이터의 정확성 문제는 플랫폼이 기본 앱과 외부 데이터 품질까지 책임져야 한다는 사실도 보여줬다.

Android와 iOS 모두 새 기능을 앱 API와 운영체제 서비스로 제공했다. 개발자는 알림, 지도, 소셜 계정, 티켓과 결제 정보처럼 플랫폼이 제공하는 구성 요소를 활용할 수 있었지만, 운영체제 버전과 지역별 지원 범위를 세밀하게 확인해야 했다.

국내: LTE가 모바일 서비스의 전송 한계를 넓히다

SK텔레콤과 LG유플러스가 2011년 7월 서울에서 시작한 LTE는 2012년에 전국 주요 지역으로 확대됐고 KT도 서비스를 시작했다. 이동통신사들은 LTE 스마트폰과 요금제를 앞세워 가입자를 빠르게 늘렸으며 정부의 통신 품질 평가에도 LTE가 처음 포함됐다.

3G보다 높은 전송 속도와 낮은 지연은 고화질 동영상, 음악 스트리밍, 대용량 사진과 실시간 게임의 사용 조건을 개선했다. 앱은 Wi-Fi에서만 큰 데이터를 받는 보조 기능을 넘어 이동 중에도 지속적으로 콘텐츠를 전송하는 서비스가 될 수 있었다.

그러나 빠른 망이 무제한 자원을 뜻하지는 않았다. 초기 LTE 요금제는 데이터 제공량이 제한됐고 지역·건물별 품질 차이도 있었다. 개발자는 이미지와 동영상 압축, 중단된 전송 재개, 네트워크 종류에 따른 품질 조절과 데이터 사용량 안내를 계속 고려해야 했다.

2012년 7월 이후 출시 단말기에는 VoLTE 기능도 들어가기 시작했지만 이동통신사 사이의 완전한 연동은 아직 준비 단계였다. LTE의 데이터망 확대와 음성 통화의 전환은 같은 시점에 완성된 사건이 아니었다.

카카오 게임하기, 관계망이 앱의 유통 채널이 되다

카카오는 7월 30일 Android용 카카오톡에 ‘게임하기’를 열었다. 첫 구성은 7개 개발사의 게임 10개였고, 9월에는 iOS도 지원했다. 사용자는 별도의 친구 관계를 다시 만들지 않고 카카오톡 친구를 게임에 초대하거나 점수를 비교할 수 있었다.

선데이토즈의 애니팡은 서비스 23일 만에 Google Play 최고 매출과 인기 무료 앱 1위에 올랐다. 간단한 퍼즐 게임에 친구 순위와 초대, 하트 요청을 결합해 메신저 관계망이 게임의 발견과 재방문을 이끄는 구조를 보여줬다.

개발사에는 거대한 사용자 접점과 결제 경로가 생겼다. 앱 장터에서 검색되기만 기다리는 대신 카카오톡 안의 목록과 친구 초대로 사용자를 모을 수 있었다. 카카오에도 게임 매출을 나누는 수익 모델이 생겼다.

반대로 플랫폼 입점과 노출, 심사 정책에 대한 의존도 커졌다. 친구 초대가 과도해지면 메시지 피로와 스팸 문제가 생겼고 비슷한 게임이 몰리며 경쟁도 심해졌다. 카카오는 한 회사가 심사를 신청할 수 있는 수를 제한하는 방식 등을 도입했다.

2012년의 의미

2012년에는 소프트웨어가 커지는 문제와 사용자가 넓어지는 변화가 함께 나타났다. TypeScript는 대규모 JavaScript를 타입과 도구로 관리하려 했고, Raspberry Pi는 더 많은 사람이 코드로 실제 장치를 움직이게 했다. Windows 8은 PC와 태블릿을 하나의 앱 생태계로 묶으려는 큰 실험이었다.

DynamoDB와 Compute Engine은 데이터와 계산 자원을 API로 조달하는 범위를 넓혔다. Android 4.1과 iOS 6은 새 플랫폼의 등장보다 화면 반응, 알림, 지도와 배포 효율을 다듬는 데 집중했다.

국내에서는 LTE가 모바일 서비스의 전송 능력을 높였고 카카오 게임하기는 이미 형성된 관계망이 외부 콘텐츠의 강력한 유통 기반이 될 수 있음을 증명했다. 2013년에는 Docker, React, Android Studio, Slack, Bootstrap 3와 함께 개발·협업·배포의 방식이 다시 크게 바뀐다.

참고 자료