2003년 개발 연대기: 웹은 읽는 공간에서 발행하고 연결하는 공간으로
Safari와 WordPress, J2EE 1.4, .NET Framework 1.1, Mozilla Foundation, Skype와 SQL Slammer를 통해 2003년의 개발 흐름을 살펴봅니다.
2003년의 웹은 정보를 보여주는 문서의 집합을 넘어섰다. 개인은 별도의 정적 HTML 파일을 일일이 만들지 않고도 글을 발행하기 시작했고, 인터넷에 연결된 프로그램은 음성 통화와 기업 시스템 연동까지 맡았다. 웹 브라우저와 개발 플랫폼도 각자의 생태계를 넓혀갔다.
한편 인터넷 연결이 촘촘해질수록 취약점의 파급력도 커졌다. SQL Slammer 웜은 사람이 대응할 틈도 없이 몇 분 만에 전 세계의 취약한 서버로 퍼졌다. 2003년은 네트워크 서비스의 편리함과 운영 책임이 함께 커진 해였다.
2003년을 보여주는 장면
| 분야 | 주요 변화 | 개발자에게 생긴 의미 |
|---|---|---|
| 브라우저 | Safari 공개와 1.0 출시 | Mac OS X에 새로운 웹 브라우저와 렌더링 엔진 계보가 등장함 |
| 개인 출판 | WordPress 첫 공개 버전 출시 | 데이터베이스와 관리 화면을 이용한 블로그 운영이 쉬워짐 |
| Java | J2EE 1.4 최종 규격과 SDK 공개 | 웹 서비스와 XML 연동이 기업용 Java 표준에 본격적으로 편입됨 |
| .NET | .NET Framework 1.1과 Visual Studio .NET 2003 출시 | 초기 플랫폼의 호환성과 모바일·웹 개발 지원이 보강됨 |
| 오픈소스 | Mozilla Foundation 출범 | 브라우저 개발을 이어갈 독립 비영리 조직이 만들어짐 |
| 인터넷 통신 | Skype 공개 | 개인 간 음성 통화가 인터넷 소프트웨어의 대중적 기능으로 확장됨 |
| 보안 | SQL Slammer 확산 | 패치 관리와 네트워크 방어가 서비스 운영의 핵심임을 드러냄 |
| 국내 서비스 | 포털 블로그와 미니홈피 경쟁 | 개인의 글과 사진, 관계를 담는 서비스가 대규모 플랫폼 기능이 됨 |
Safari, Mac OS X에 새로운 브라우저가 등장하다
애플은 2003년 1월 7일 Safari 공개 베타를 선보였고, 6월 23일 Safari 1.0을 출시했다. 1월의 발표를 정식 1.0 출시로 표현해서는 안 된다. 약 5개월 동안 공개 베타가 배포된 뒤 WWDC 2003에서 완성판이 나온 것이다.
Safari의 렌더링 기술은 KDE 프로젝트의 KHTML과 KJS를 토대로 개발되었다. 애플 내부에서는 WebCore와 JavaScriptCore라는 구성 요소로 발전했다. 이후 이 계보를 가리키는 이름이 WebKit으로 자리 잡지만, WebKit 전체가 오픈소스로 공개되는 시점은 2005년이다.
Safari는 Mac OS X의 시스템 기술과 통합되고 빠른 실행 속도를 내세웠다. 개발자에게는 Internet Explorer와 Gecko 계열만이 아니라 또 하나의 브라우저 동작을 확인해야 한다는 의미도 있었다. 웹 표준이 같더라도 렌더링 결과와 JavaScript 동작을 여러 구현에서 시험하는 일은 더욱 중요해졌다.
같은 WWDC에서 애플은 차세대 개발 환경 Xcode도 소개했다. Safari와 Xcode의 등장은 애플이 운영체제뿐 아니라 웹과 애플리케이션 개발 도구를 자체 생태계 안에서 다시 정비하고 있음을 보여주었다.
WordPress 0.7, 개인 출판 도구의 새 출발
2003년 5월 27일 WordPress의 첫 공식 공개 버전인 0.7이 출시되었다. WordPress는 완전히 빈 코드 저장소에서 시작한 프로젝트가 아니라, 개발이 중단된 블로그 도구 b2/cafelog의 코드를 바탕으로 Matt Mullenweg와 Mike Little이 발전시킨 프로젝트였다.
첫 버전에는 글 작성과 관리 화면, 링크 관리, 수동 요약문, RSS 피드, XHTML 기반 템플릿 같은 기능이 포함되었다. PHP와 MySQL을 사용하는 서버에 설치하면 브라우저의 관리 화면에서 글을 작성하고 데이터베이스에 저장할 수 있었다.
이 구조는 개인 홈페이지 제작 방식을 바꾸었다. 글 하나를 올릴 때마다 HTML 문서를 만들고 목록과 링크를 직접 수정하는 대신, 콘텐츠를 입력하면 프로그램이 글 페이지와 목록, 피드를 생성했다. 디자인 템플릿과 콘텐츠도 분리할 수 있었다.
2003년의 WordPress는 아직 작은 초기 프로젝트였다. 이 시점의 출발을 훗날의 시장 점유율과 곧바로 동일시할 수는 없다. 다만 누구나 수정하고 배포할 수 있는 GPL 소프트웨어로 개인 출판 도구가 공개되었다는 점은 이후의 성장 기반이 되었다.
J2EE 1.4, 웹 서비스를 기업용 Java 안으로
J2EE 1.4는 2002년 11월 첫 베타가 나온 뒤, 2003년 11월 24일 최종 규격에 맞춘 개발자용 SDK가 공개되었다. 이 버전의 주요 방향은 전년도부터 주목받던 XML 웹 서비스를 Java 기업 플랫폼의 표준 구성으로 편입하는 것이었다.
JAX-RPC는 Java 코드에서 원격 웹 서비스를 호출하거나 서비스 끝점을 구현하도록 도왔고, SAAJ는 SOAP 메시지를 직접 다루는 API를 제공했다. JAXR은 서비스 등록소와의 연동을 맡았다. WS-I Basic Profile 1.0 준수도 요구해 서로 다른 업체의 구현 사이에서 상호운용성을 높이려 했다.
웹 계층도 개선되었다. Servlet 2.4와 JSP 2.0이 포함되었으며, JSP 2.0의 표현 언어는 화면에서 데이터를 표현하는 코드를 줄이는 방향을 제시했다. EJB 2.1에는 타이머 서비스와 웹 서비스 끝점 지원 등이 더해졌다.
이러한 기능은 Java 진영이 .NET의 XML 웹 서비스 전략에 대응하면서도 여러 운영체제와 애플리케이션 서버에서 동작하는 표준 플랫폼이라는 위치를 강화하려 한 결과였다. 그러나 규격에 포함된 기능이 많아질수록 설정과 배포 기술도 함께 복잡해졌다.
.NET Framework 1.1, 첫 버전 이후의 보강
마이크로소프트는 2003년 4월 .NET Framework 1.1과 Visual Studio .NET 2003의 일반 공급을 발표했다. Windows Server 2003도 같은 시기에 출시되어 운영체제와 실행 환경, 개발 도구를 하나의 애플리케이션 플랫폼으로 묶는 전략이 이어졌다.
.NET Framework 1.1은 1.0을 전면 교체하는 대규모 변화라기보다 초기 플랫폼을 다듬는 버전이었다. 보안과 ASP.NET, XML 처리 등이 개선되었고, Oracle과 ODBC용 데이터 공급자가 기본 구성에 포함되었다.
Visual Studio .NET 2003은 모바일 장치용 애플리케이션을 만드는 .NET Compact Framework를 지원했다. 데스크톱과 서버뿐 아니라 제한된 자원의 휴대 기기에서도 비슷한 언어와 개발 모델을 사용하려는 시도였다.
동시에 개발자는 런타임 버전 관리라는 새로운 문제를 마주했다. .NET Framework 1.0과 1.1은 나란히 설치될 수 있었고, 프로그램이 어느 런타임과 API를 대상으로 컴파일되었는지 구분해야 했다. 관리형 실행 환경도 버전 호환성 검토에서 자유롭지는 않았다.
Mozilla Foundation, 프로젝트를 지탱할 독립 조직
2003년 7월 15일 Mozilla Foundation이 출범했다. Mozilla 프로젝트 자체는 1998년에 시작되었고 Mozilla 1.0도 2002년에 출시되었으므로, 2003년을 Mozilla의 기술적 시작으로 기록하는 것은 맞지 않는다.
2003년의 변화는 프로젝트를 운영하는 주체에 있었다. AOL은 자금과 장비, 지식재산 등을 지원했고, 새 비영리 재단은 Gecko 엔진과 표준 기반 인터넷 소프트웨어의 개발·배포를 이어가게 되었다.
이는 기업의 전략 변화와 관계없이 대규모 오픈소스 프로젝트를 지속할 조직적 기반을 마련한 사건이었다. 전년도에 등장한 Phoenix는 2003년 Firebird라는 이름을 거쳤으며, Firefox라는 이름과 1.0 출시는 2004년에 이어진다.
Skype, 인터넷 연결이 전화망의 역할까지 맡다
2003년에는 Skype의 첫 공개 버전도 등장했다. 사용자는 인터넷에 연결된 컴퓨터와 헤드셋을 이용해 다른 Skype 사용자와 음성 통화를 할 수 있었다. 당시 서비스는 중앙 서버에 모든 통화 데이터를 모으는 전형적인 구조와 달리 P2P 기술을 적극 활용했다.
인터넷 음성 통화 자체가 처음은 아니었지만, 설치하기 쉬운 클라이언트와 사용자 검색, 방화벽과 NAT 환경을 넘는 연결 경험을 묶어 대중적인 소프트웨어로 제시했다는 점이 중요했다.
개발 관점에서는 인터넷이 웹 문서를 전달하는 망에 그치지 않고 실시간 통신 애플리케이션의 기반이 되어가고 있음을 보여주었다. 대역폭의 확대는 텍스트와 이미지 다음으로 음성 같은 연속적인 데이터를 소비자 서비스에 올릴 수 있게 했다.
SQL Slammer, 패치가 있어도 적용하지 않으면 막을 수 없다
2003년 1월 25일 SQL Slammer 또는 Sapphire라 불린 웜이 Microsoft SQL Server 2000과 MSDE 2000의 취약점을 공격했다. 웜은 작은 UDP 패킷 하나로 취약한 서버를 감염시키고, 무작위 주소로 같은 패킷을 매우 빠르게 전송했다.
CAIDA 연구진의 분석에 따르면 취약한 호스트의 90% 이상이 약 10분 안에 감염되었다. 웜 자체에 파일을 파괴하는 기능은 없었지만 폭발적으로 발생한 트래픽이 네트워크를 포화시키고 데이터베이스 서버와 여러 연결 서비스를 방해했다.
중요한 사실은 마이크로소프트가 기반 취약점에 대한 보안 패치를 2002년에 이미 배포했다는 점이다. 취약한 서버가 인터넷에 노출된 채 패치되지 않았기 때문에 사고가 커졌다.
이 사건은 보안을 개발 완료 뒤에 추가하는 기능으로만 볼 수 없음을 보여주었다. 사용 중인 구성 요소를 파악하고, 보안 공지를 추적하며, 패치를 시험하고 배포하는 운영 절차가 코드 작성만큼 중요했다. 자동화된 공격의 속도는 사고가 발생한 뒤 사람이 수동으로 대응하는 방식보다 빨랐다.
국내: 블로그와 미니홈피가 개인의 웹을 만들다
국내에서는 2003년 블로그가 포털과 커뮤니티 서비스의 주요 경쟁 분야로 떠올랐다. 전문 블로그 업체뿐 아니라 대형·중견 포털이 잇따라 블로그 서비스를 열었고, 싸이월드와 세이클럽 같은 미니홈피형 서비스도 같은 흐름에서 주목받았다.
이전의 개인 홈페이지가 제작 도구와 파일 전송, HTML 지식을 요구했다면 블로그와 미니홈피는 가입 후 글과 사진을 올리는 방식이었다. 댓글과 방명록, 이웃과 일촌 같은 관계 기능은 개인 콘텐츠를 서로 연결했다.
2003년 8월 싸이월드는 SK커뮤니케이션즈와 합병했다. 네이트온과의 연계, 도토리로 구매하는 디지털 아이템, 늘어나는 사진과 방문 기록은 서비스 트래픽과 매출을 함께 키웠다. 같은 해 말에는 휴대전화로 찍은 사진을 미니홈피에 전송하는 기능도 제공되었다.
개발자에게 개인 미디어의 성장은 게시물 저장만을 뜻하지 않았다. 사용자 관계, 댓글과 알림, 공개 범위, 이미지 업로드, 방문 통계, 결제와 모바일 연동까지 하나의 서비스 안에서 처리해야 했다. 초고속인터넷 위에서 웹 애플리케이션은 사람의 콘텐츠와 관계를 지속적으로 관리하는 시스템이 되었다.
2003년의 의미
2003년에는 웹을 둘러싼 역할이 동시에 넓어졌다. Safari는 새로운 브라우저 계보를 열었고, WordPress와 국내 블로그 서비스는 개인을 콘텐츠 발행자로 만들었다. Skype는 인터넷을 실시간 음성 통신망으로 활용했다.
기업 개발에서는 J2EE 1.4와 .NET Framework 1.1이 웹 서비스와 연결형 애플리케이션을 각자의 플랫폼 안에 구체화했다. Mozilla Foundation은 공개 소프트웨어를 장기간 유지할 조직의 중요성을 보여주었다.
SQL Slammer는 이 모든 연결의 이면도 드러냈다. 서비스와 서버가 서로 촘촘하게 연결될수록 단 하나의 취약점과 미적용 패치가 전 세계 네트워크에 영향을 줄 수 있었다. 소프트웨어 개발은 기능 구현뿐 아니라 배포와 업데이트, 감시와 복구까지 포함하는 일이 되어가고 있었다.
다음 해인 2004년에는 Firefox 1.0, Ubuntu, Gmail, Facebook, Ruby on Rails가 등장한다. 브라우저 경쟁과 오픈소스 운영체제, 웹 애플리케이션 개발 방식이 다시 크게 움직이기 시작한다.
참고 자료
- Apple, Apple Releases Safari 1.0
- WebKit, 10 Years of Web Inspector
- WordPress, WordPress Now Available
- WordPress Documentation, Version 0.70
- Oracle, The J2EE 1.4 Tutorial History
- Oracle, J2EE 1.4 Web Services Support
- Microsoft, Microsoft Announces Visual Studio .NET 2003 Worldwide Availability
- Microsoft Learn, New and Upgraded Features in Visual Studio .NET 2003
- Mozilla, Mozilla.org Announces Launch of the Mozilla Foundation
- Microsoft, Skype Press Conference: Steve Ballmer and Tony Bates
- CAIDA, Inside the Slammer Worm
- Microsoft Learn, Cumulative Patch for SQL Server
- 전자신문, 블로그, 포털 속으로 플러그 인
- 전자신문, 중견·전문 포털도 블로그 서비스 잇따라
- 전자신문, 네이트닷컴, 싸이월드 합병효과 눈에 띄네
- 전자신문, 싸이월드, 모바일 블로그 서비스 개시