블로그 목록
SW 개발 연대기

1997년 개발 연대기: 표준은 세워지고 웹은 갈라졌다

ECMAScript와 HTML 4.0이 웹의 공통 규칙을 세우는 동안 IE4와 Netscape Communicator가 서로 다른 동적 웹을 구현하고, Java·서버 개발·UML이 확장된 1997년을 살펴봅니다.

2026년 7월 24일약 28분
#1997#개발사#ECMAScript#HTML 4#브라우저 전쟁#Java#UML#국내 인터넷

1997년의 웹에는 서로 반대처럼 보이는 두 흐름이 동시에 나타났다. 한쪽에서는 ECMAScript와 HTML 4.0이 공통 규칙을 세웠고, 다른 한쪽에서는 Netscape와 Microsoft가 각자의 기능과 실행 모델을 브라우저에 빠르게 추가했다.

웹 페이지는 더 이상 읽기만 하는 문서가 아니었다. 스크립트로 화면을 바꾸고, 서버에서 데이터베이스를 조회하며, 이메일과 뉴스·문서 편집까지 브라우저 제품군 안에서 처리하려는 시도가 이어졌다. 그러나 어느 브라우저에서 실행하느냐에 따라 사용할 수 있는 기능과 코드가 달랐다.

기업 개발도 변하고 있었다. 클라이언트/서버 시스템은 다계층 구조로 확장됐고, Java는 데이터베이스와 원격 객체를 다루는 기능을 갖추기 시작했다. Microsoft는 여러 개발 도구를 Visual Studio라는 제품군으로 묶었으며, 객체지향 분석과 설계에서는 UML이 공식 표준으로 채택됐다.

1997년은 웹과 객체지향 개발에 공통 언어가 마련된 해였지만, 실제 제품 경쟁은 오히려 플랫폼별 차이를 더 크게 드러낸 해였다.

먼저 보는 1997년

영역1997년의 흐름
웹 브라우저Netscape Communicator 4와 Internet Explorer 4의 경쟁
웹 표준HTML 3.2와 HTML 4.0 권고, ECMA-262 초판 채택
클라이언트 웹스크립트와 스타일로 화면을 바꾸는 동적 HTML 경쟁
서버 웹ASP, PHP/FI, Java Servlet 등 서버 측 실행 환경 확대
JavaJDK 1.1과 JDBC·RMI·JavaBeans로 응용 범위 확장
개발 도구Visual Studio 97이 Windows·웹·데이터베이스 도구를 제품군으로 통합
설계 방법UML 1.1이 OMG 표준으로 채택
검색BackRub이 Google이라는 이름을 얻고 google.com 도메인 등록
국내인트라넷·SI·ERP가 성장하고 한메일과 초기 네이버 검색 프로젝트 등장

브라우저 전쟁은 웹과 데스크톱의 경계를 향했다

Netscape는 1997년 6월 Communicator 4를 출시했다. Navigator 브라우저뿐 아니라 이메일과 뉴스그룹을 다루는 Messenger, 웹 문서를 작성하는 Composer, 협업 도구인 Collabra 등을 묶은 인터넷 소프트웨어 제품군이었다. 출시 당시 WIRED의 보도는 Netscape가 Communicator를 통해 브라우저 시장의 우위를 지키려 했다고 전한다.

Microsoft는 10월 1일 Internet Explorer 4를 공개했다. Microsoft의 출시 발표는 IE4가 브라우저와 통신·협업 도구, Active Channel을 묶고 웹을 Windows 사용자 환경에 통합한다고 강조했다. 웹 콘텐츠를 구독해 데스크톱으로 전달한다는 이른바 ‘푸시’ 기술도 경쟁의 중요한 소재였다.

두 회사가 겨냥한 것은 브라우저 창 하나가 아니었다.

  • Netscape는 브라우저를 중심으로 이메일, 뉴스, 편집과 협업을 묶었다.
  • Microsoft는 브라우저를 Windows 데스크톱과 긴밀하게 연결했다.
  • 두 회사 모두 웹 콘텐츠를 사용자가 찾으러 가기 전에 전달하는 푸시 기능을 내세웠다.
  • 플러그인, Java 애플릿, ActiveX와 자체 스크립트 기능으로 웹에서 실행할 수 있는 프로그램의 범위를 넓혔다.

브라우저는 운영체제 위에서 실행되는 응용 프로그램인 동시에, 다른 프로그램과 서비스를 실행하는 플랫폼이 되려 했다. 이 경쟁은 이후 Microsoft의 Windows와 Internet Explorer 결합을 둘러싼 반독점 분쟁으로 이어지지만, 1997년 당시 개발자가 당장 마주한 문제는 두 브라우저를 모두 지원하는 일이었다.

동적 HTML은 하나의 기술이 아니었다

1997년에는 HTML, CSS와 JavaScript를 결합해 페이지를 다시 내려받지 않고도 글자와 이미지의 위치·모양·내용을 바꾸는 방식을 ‘Dynamic HTML’ 또는 DHTML이라고 불렀다. 제품 소개에서는 데스크톱 응용 프로그램처럼 반응하는 웹을 만들 수 있다는 기대가 강조됐다.

문제는 DHTML이 하나의 완성된 표준이 아니었다는 점이다. Netscape Communicator와 Internet Explorer는 문서 요소에 접근하는 방식, 이벤트를 처리하는 방식과 지원하는 스타일 기능이 달랐다. 같은 JavaScript 문법을 사용하더라도 브라우저가 제공하는 객체와 기능이 다르면 코드는 그대로 작동하지 않았다.

웹 제작자는 흔히 다음과 같은 선택을 해야 했다.

  • 브라우저 종류와 버전을 확인해 서로 다른 스크립트를 실행
  • 한쪽 브라우저 전용 기능을 사용하고 지원 대상을 명시
  • 동적 기능을 줄이고 두 브라우저에서 공통으로 작동하는 HTML만 사용
  • Java 애플릿이나 플러그인으로 브라우저의 차이를 우회

1996년에 시작된 호환성 문제가 1997년에는 화면 구성과 상호작용 전체의 문제로 확대됐다. ‘Netscape에서 보기 좋게 제작됨’ 또는 ‘Internet Explorer에 최적화됨’ 같은 안내가 붙는 배경도 여기에 있었다.

ECMAScript와 HTML 4.0이 공통 규칙을 세웠다

제품별 구현이 갈라지는 동안 표준화 작업도 빠르게 진행됐다.

1997년 6월 Ecma International은 ECMA-262 초판을 채택했다. Netscape의 JavaScript와 Microsoft의 JScript 등 서로 다른 구현에서 공통 언어 규칙을 정리한 첫 ECMAScript 표준이다. Ecma의 ECMA-262 기록에는 초판이 1997년 6월 발행된 것으로 남아 있다.

ECMAScript는 값과 타입, 객체, 연산자, 문장과 함수 같은 언어의 핵심을 정의했다. 그러나 브라우저 화면을 구성하는 문서 객체 전체를 통일한 것은 아니었다. 언어 문법이 표준화돼도 각 브라우저가 HTML 요소와 이벤트를 노출하는 방식은 여전히 달랐다. 브라우저 호환성이 즉시 해결되지 않은 이유다.

HTML은 한 해 동안 두 번 중요한 이정표를 맞았다. 1월 14일에는 HTML 3.2가 W3C 권고안이 되며 표, 애플릿과 당시 널리 사용되던 표현 기능을 정리했다. 12월 18일에는 HTML 4.0이 W3C 권고안으로 발표됐다.

HTML 4.0은 다음 방향을 분명히 했다.

  • 스크립트와 스타일시트를 공식적으로 고려
  • 표와 폼, 프레임, 멀티미디어 기능 정리
  • 문서의 표현을 HTML 속성보다 스타일시트로 옮기도록 유도
  • 언어와 문자 표현을 국제화
  • 장애가 있는 사용자도 접근할 수 있는 문서 작성을 고려

표준은 브라우저 전쟁을 즉시 끝내지 못했다. 다만 웹이 특정 제품의 기능 목록이 아니라 여러 구현이 공유해야 할 개방형 플랫폼이라는 기준을 제시했다.

서버 측 웹 개발이 별도의 영역으로 자리 잡았다

초기 동적 웹은 CGI 프로그램을 실행해 HTML을 만드는 방식이 중심이었다. 1997년에는 웹 서버 안이나 웹 서버와 밀접한 실행 환경에서 스크립트와 컴포넌트를 처리하는 도구들이 더 구체적인 모습을 갖췄다.

Microsoft 계열에서는 IIS와 Active Server Pages가 데이터베이스 기반 웹 응용 프로그램을 만드는 핵심 조합으로 제시됐다. HTML 안에 VBScript나 JScript 코드를 넣고 서버에서 실행해 결과만 브라우저로 보낼 수 있었다. 1997년의 Visual Studio 97 발표도 ASP와 서버 데이터베이스를 이용해 동적인 웹 응용 프로그램을 구축하는 방식을 주요 개발 시나리오로 설명했다.

PHP/FI 2.0은 여러 베타 버전을 거쳐 1997년 11월 정식 배포됐다. 동시에 Andi Gutmans와 Zeev Suraski는 전자상거래 응용 프로그램에 필요한 기능과 성능을 확보하기 위해 파서를 새로 작성하기 시작했다. 이 작업은 이듬해 PHP 3로 이어진다. PHP 공식 역사는 PHP가 개인용 도구에서 독립적인 서버 측 프로그래밍 언어로 바뀌던 과정을 기록한다.

Java 쪽에서는 Servlet이 서버에서 요청을 받고 동적으로 응답을 만드는 구성 요소로 등장했다. 1997년에는 Java Web Server와 Servlet 개발 키트가 공개되면서 Java를 브라우저 안의 애플릿뿐 아니라 서버 프로그램에 사용하는 길이 구체화됐다. Oracle의 Servlet 기술 개요는 Servlet을 CGI의 프로세스 비용과 플랫폼 의존성을 줄이면서 웹 서버를 확장하는 컴포넌트 방식으로 설명한다.

이러한 도구들은 공통적으로 다음 작업을 해결하려 했다.

  • 폼으로 받은 사용자 입력 처리
  • 쿠키를 이용한 사용자 상태 구분
  • 데이터베이스 조회와 저장
  • 반복되는 HTML 구조 생성
  • 기존 업무 시스템과 웹 화면 연결

웹 개발은 HTML 파일을 작성하는 일에서 서버 프로그램과 데이터베이스를 함께 설계하는 일로 빠르게 넓어졌다.

Java 1.1은 애플릿 밖으로 영역을 넓혔다

JDK 1.1은 1997년 2월 공개됐다. Oracle의 Java Tutorial 역사는 2월 19일 문서가 JDK 1.1 정식 배포판에 맞춰 갱신됐다고 기록한다.

이 버전에서 주목할 만한 기능은 데이터베이스와 분산 객체, 재사용 가능한 컴포넌트였다.

  • JDBC는 Java 프로그램에서 SQL 데이터베이스에 접근하는 공통 API를 제공했다.
  • RMI는 서로 다른 Java Virtual Machine의 객체가 원격 메서드를 호출할 수 있게 했다.
  • JavaBeans는 개발 도구에서 조립하고 재사용할 수 있는 컴포넌트 모델을 제시했다.
  • 새로운 이벤트 모델은 GUI 프로그램의 입력 처리를 정리했다.

Oracle의 CORBA·Java 기술 역사는 RMI가 1997년 JDK 1.1에 도입됐다고 설명하며, JDBC API 문서도 초기 JDBC가 JDK 1.1에 포함됐음을 기록한다.

이 변화는 Java의 관심이 브라우저 애플릿에만 머물지 않았음을 보여준다. 데이터베이스와 연결된 업무 프로그램, 여러 서버에 분산된 객체, 시각적 개발 도구에서 조립하는 컴포넌트까지 하나의 언어와 실행 환경으로 다루려는 방향이 나타났다.

Visual Studio 97과 다계층 개발

1997년 3월 Microsoft는 첫 Visual Studio 제품군을 출시했다. Visual Basic 5.0, Visual C++ 5.0, Visual J++, Visual FoxPro와 웹 개발 도구 Visual InterDev가 한 제품군에 포함됐다.

Microsoft의 당시 발표가 내세운 개발 대상은 Windows 프로그램 하나가 아니었다. 기존의 2계층 클라이언트/서버 구조에서 업무 규칙을 중간 계층으로 옮기고, 브라우저와 Windows 클라이언트가 같은 서버 기능을 이용하는 다계층 구조였다.

개발 도구도 이 구조에 맞춰 확장됐다.

  • Visual Basic과 Visual C++로 Windows 클라이언트와 컴포넌트 개발
  • Visual InterDev와 ASP로 데이터 중심 웹 응용 프로그램 개발
  • Visual FoxPro와 SQL Server 등 데이터베이스 도구 연계
  • Microsoft Transaction Server를 이용한 서버 트랜잭션과 컴포넌트 실행
  • Visual SourceSafe를 이용한 팀 단위 소스 관리

여러 언어와 도구가 완전히 하나의 IDE로 통합된 것은 아니었지만, 클라이언트·서버·웹 개발 도구를 하나의 제품 전략으로 묶었다는 점이 중요했다. Windows 개발에서도 인터넷은 별도의 주변 분야가 아니라 기존 업무 시스템과 함께 고려해야 할 대상이 됐다.

UML은 객체지향 설계의 공통 표기법이 됐다

객체지향 분석과 설계에는 여러 방법론과 표기법이 경쟁하고 있었다. Grady Booch의 Booch 방법, James Rumbaugh의 Object Modeling Technique, Ivar Jacobson의 Object-Oriented Software Engineering은 객체와 관계를 서로 다른 기호와 관점으로 표현했다.

세 사람과 관련 업체들은 이러한 방법을 통합해 Unified Modeling Language를 만들었다. 1997년 12월 UML 1.1이 Object Management Group의 공식 사양으로 채택됐다. OMG의 UML 1.1 기록에서 채택 시점과 참여 기업을 확인할 수 있다.

UML은 특정 프로그래밍 언어나 개발 도구가 아니었다. 클래스, 객체의 상호작용, 상태 변화, 배치 구조 등을 일정한 그림과 기호로 표현하는 모델링 언어였다. 규모가 커진 객체지향 시스템을 개발자, 분석가와 고객이 함께 설명할 수 있는 공통 표기법을 마련했다는 데 의미가 있었다.

1997년의 UML 표준화는 코드를 작성하는 기술뿐 아니라 시스템을 분석하고 설계하고 문서화하는 방식도 소프트웨어 산업의 중요한 영역이 됐음을 보여준다.

PostgreSQL 6.0과 공개 개발 공동체

1996년에 Postgres95에서 이름을 바꾼 PostgreSQL은 1997년 1월 29일 버전 6.0을 공개했다. PostgreSQL 프로젝트의 역사 자료는 6.0 이후 6.1과 6.2가 같은 해에 연이어 배포됐음을 보여준다.

PostgreSQL은 대학 연구 프로젝트의 코드를 이어받았지만, 공개 CVS 서버와 메일링 리스트를 중심으로 여러 개발자가 기능과 이식성을 확장하는 프로젝트로 바뀌고 있었다. 웹 서버와 서버 측 언어뿐 아니라 데이터베이스에서도 인터넷을 통한 공동 개발 방식이 자리 잡기 시작했다.

이 시점의 PostgreSQL이 상용 관계형 데이터베이스 시장을 곧바로 대체한 것은 아니다. 기업 시스템에서는 Oracle, Informix, Sybase, DB2와 SQL Server 같은 제품이 중요한 위치에 있었다. PostgreSQL 6.x의 의미는 공개된 관계형 데이터베이스가 연구용 계보를 넘어 지속적인 제품 개발 주기를 갖추기 시작한 데 있다.

BackRub은 Google이라는 이름을 얻었다

1996년 Stanford에서 시작된 BackRub은 웹페이지가 받는 링크를 분석해 중요도를 판단하는 검색 연구였다. 1997년에는 프로젝트가 Google이라는 이름을 사용하기 시작했고, 9월 15일 google.com 도메인이 등록됐다. 당시에는 아직 회사가 아니었으며 Google Inc.의 설립은 1998년의 일이다.

이름은 1 뒤에 0이 100개 붙는 큰 수 googol에서 비롯됐다. 방대한 웹 문서를 색인하려는 목표를 나타내는 이름이었다. WDR의 Google 도메인 역사는 BackRub에서 Google로 이름이 바뀌고 도메인이 등록된 과정을 정리한다.

1997년 검색 시장의 중심에는 여전히 Yahoo, AltaVista, Excite, Lycos와 HotBot 같은 서비스가 있었다. Google은 Stanford 안의 연구 프로젝트에 가까웠다. 다만 문서의 단어뿐 아니라 웹의 연결 구조를 검색 순위에 활용하는 접근이 독립된 이름과 주소를 얻었다는 점에서 중요한 이정표였다.

국내의 1997년: 인트라넷과 인터넷 서비스, 그리고 외환위기

1997년 초 국내 소프트웨어 업계의 관심은 SI, 인트라넷, 그룹웨어, ERP와 인터넷 서비스에 모였다. 전자신문이 보도한 1997년 시장·기술 전망은 SI가 국내 소프트웨어 매출의 큰 비중을 차지했으며, 데이터베이스와 연결된 인트라넷·엑스트라넷이 주목받을 것으로 전망했다.

실제 제품 경쟁에서도 인터넷 기술이 업무 시스템 안으로 들어왔다. 전자결재와 문서 관리, 워크플로, 메일을 웹 기술과 결합하고, 사내 인트라넷을 거래처까지 확장한 엑스트라넷과 전자상거래 시스템으로 발전시키려는 시도가 이어졌다. 5월의 전자문서·인트라넷 시장 보도는 국내 업체들이 문서 작성과 워크플로 기능, 푸시 기술과 전자상거래 연계를 개발하던 상황을 보여준다.

Java와 ActiveX 중 어느 기술이 인터넷 응용 프로그램의 중심이 될지도 중요한 논쟁이었다. 1997년 상반기 전자산업 결산은 두 기술의 경쟁에 따라 국내 개발업체들의 전망과 선택도 갈렸다고 전했다.

일반 사용자를 대상으로 한 인터넷 서비스도 다음 단계로 나아갔다.

  • 다음커뮤니케이션은 1997년 5월 무료 웹메일 서비스 한메일넷을 열었다.
  • 삼성SDS에서는 2월 검색엔진 ‘웹글라이더’ 개발이 시작됐고, 10월 사내벤처로 출범해 네이버로 이어졌다.
  • PC통신은 여전히 강한 이용자 기반을 유지했지만 웹 브라우저에서 이용하는 메일과 검색 서비스가 새로운 접점으로 성장했다.

네이버의 초기 과정은 한국경제인협회 디지털 기업인 박물관에 정리돼 있다. 한메일은 별도의 메일 프로그램이나 특정 PC통신 서비스에 묶이지 않고 웹 브라우저로 계정을 만들어 사용하는 무료 메일 서비스라는 점에서 인터넷 사용자층을 넓히는 역할을 했다.

그러나 1997년 말 외환위기가 발생하며 기업의 정보기술 투자와 국내 소프트웨어 시장도 급격한 불확실성에 놓였다. 12월의 서울신문 보도는 국내 시장 위축을 예상한 소프트웨어 기업들이 수출과 해외 진출로 돌파구를 찾으려 했다고 전한다.

따라서 국내의 1997년은 인터넷 산업이 순조롭게 성장한 해로만 정리하기 어렵다. 상반기에는 SI와 인트라넷, ERP, 웹 서비스에 대한 투자가 확대됐고 새로운 인터넷 기업과 서비스가 모습을 드러냈다. 연말에는 외환위기가 시장을 얼어붙게 했지만, 동시에 기술 기업들이 작은 국내 시장 밖을 바라보게 만드는 압력으로 작용했다.

1997년을 한 문장으로 정리하면

1997년은 ECMAScript·HTML 4.0·UML이 웹과 객체지향 개발의 공통 언어를 세운 한편, 브라우저와 플랫폼 업체들은 서로 다른 실행 환경을 확대하고 국내 개발 산업은 인터넷 성장과 외환위기를 한 해에 함께 맞은 시기였다.

브라우저 안에서는 스크립트와 동적 화면이 경쟁했고, 서버에서는 ASP·PHP·Servlet이 데이터베이스 기반 서비스를 만들기 위한 선택지로 성장했다. Java는 애플릿을 넘어 데이터베이스와 분산 객체로 범위를 넓혔으며, 개발 도구와 설계 표기법도 다계층·객체지향 시스템에 맞춰 정리되기 시작했다.

1998년에는 이 흐름의 결과가 더 분명해진다. Netscape는 브라우저 소스 코드를 공개하고 Mozilla 프로젝트를 시작한다. XML 1.0과 CSS2가 권고안이 되고, Google이 회사로 설립되며, 국내에서는 외환위기 속에서 인터넷 벤처와 초고속 통신망이 새로운 성장 동력으로 떠오른다.

참고 자료

이 글은 표준 기구와 프로젝트의 공식 기록, 제품 출시 당시 자료, 1997년에 보도된 국내 기사를 우선해 작성했습니다. 기업 발표 자료는 출시 사실과 당시 제시한 전략을 확인하는 용도로 사용했으며, 시장 우위나 성능에 관한 홍보 표현은 사실 판단에서 제외했습니다.