블로그 목록
SW 개발 연대기

1995년 개발 연대기: 웹이 플랫폼이 되기 직전

Windows 95와 클라이언트/서버가 현실의 개발 현장을 이끌던 해, Java·JavaScript·PHP·Ruby와 Apache가 막 등장한 1995년의 세계와 국내를 살펴봅니다.

2026년 7월 24일약 25분
#1995#개발사#프로그래밍 언어##Windows 95#국내 인터넷

1995년을 지금의 시선으로 돌아보면 놀라운 이름들이 한꺼번에 보인다. Java가 세상에 공개됐고, JavaScript가 브라우저에 들어갔다. PHP의 소스 코드가 공개됐으며 Ruby도 처음 공개됐다. Apache 웹 서버는 첫 공개 버전에서 1.0까지 나아갔다.

그렇다고 1995년의 개발자들이 모두 이 기술로 웹 애플리케이션을 만들고 있었다고 이해하면 곤란하다. 그해에 태어난 기술과 그해의 현장을 지배한 기술은 달랐다. 현실의 주력은 여전히 DOS와 Windows, C와 C++, Visual Basic, 그리고 기업의 클라이언트/서버 시스템이었다. 웹은 빠르게 성장하고 있었지만 아직은 문서를 연결하고, 필요할 때 CGI 프로그램을 호출하는 비교적 얇은 계층에 가까웠다.

이 연대기의 첫해인 1995년은 바로 그 두 시대가 겹친 지점이다.

먼저 보는 1995년

영역1995년의 현실
개인용 컴퓨터DOS와 Windows 3.x가 남아 있는 가운데 Windows 95가 32비트 데스크톱 전환을 가속
업무용 소프트웨어C/C++, Visual Basic, 4GL 도구와 관계형 데이터베이스를 이용한 클라이언트/서버 개발
정적 HTML 문서가 기본, 동적 기능은 CGI가 대표적
검색WebCrawler·Lycos·Yahoo 등이 경쟁하던 가운데 12월 AltaVista 등장
새로 등장한 기술Java, JavaScript, PHP, Ruby, Apache 1.0, Postgres95
국내 네트워크상용 인터넷 서비스가 확대되기 시작했지만 PC통신과 전화선 모뎀이 중요한 접점

여기서 “등장”은 “즉시 대중화”와 같은 뜻이 아니다. 예를 들어 Java는 1995년 5월 공개됐지만 JDK 1.0은 1996년에 나왔다. PHP 역시 오늘날의 PHP와 같은 완성된 플랫폼이 아니라 개인 홈페이지를 관리하기 위한 CGI 도구에서 출발했다.

데스크톱의 중심이 된 Windows 95

Microsoft는 1995년 8월 24일 Windows 95를 출시했다. 시작 메뉴와 작업 표시줄, 긴 파일 이름, 플러그 앤 플레이 같은 기능이 이때 대중에게 소개됐다. 출시 첫 5주에 700만 장이 판매됐다는 Microsoft의 기록은 운영체제의 변화가 개발 시장에도 얼마나 큰 압력을 만들었는지 보여준다.

개발자에게 더 중요한 변화는 16비트 Windows에서 32비트 Win32 환경으로 무게중심이 이동했다는 점이다. 전환은 하루아침에 끝나지 않았다. 기존 DOS 프로그램과 Windows 3.x 응용 프로그램을 유지하면서 새 Windows 95용 프로그램도 만들어야 했다.

당시 Windows 응용 프로그램의 대표적인 선택지는 다음과 같았다.

  • 성능과 운영체제 API 제어가 중요하면 C 또는 C++
  • Windows GUI를 빠르게 만들려면 Visual Basic
  • 규모가 큰 C++ GUI 프로그램에서는 Microsoft Foundation Class Library(MFC) 같은 클래스 라이브러리
  • 기업 업무에서는 화면 작성 도구, 4GL, 관계형 데이터베이스를 결합한 클라이언트/서버 구성

Microsoft의 MSDN 회고는 당시 C++가 Windows 대상 프로그래밍의 표준적인 선택지였고, Visual Basic 4.0이 16비트 Windows 3.x와 32비트 Windows 95 사이를 잇는 역할을 했다고 설명한다.

즉, 1995년의 “애플리케이션 개발”은 오늘날처럼 브라우저에 서비스를 배포하는 일보다 사용자의 PC에 설치할 실행 파일을 만드는 일을 먼저 떠올리게 했다.

기업은 클라이언트/서버로 이동하고 있었다

기업 시스템에서는 메인프레임과 터미널 중심 구조를 완전히 버린 것이 아니라, PC 화면과 네트워크 서버를 결합하는 클라이언트/서버 구조로 옮겨 가는 과정이 진행됐다. 데이터는 관계형 데이터베이스 서버에 두고, 사용자의 PC에는 입력·조회 화면과 일부 업무 로직을 설치하는 방식이다.

1995년 CAUSE 콘퍼런스에 발표된 클라이언트/서버 구축 사례는 이전 시스템에 관계형 데이터베이스, 4GL 도구, C, Unix, 문자 기반 인터페이스가 사용됐다고 기록한다. 새 환경으로 옮길 때는 개발 도구 선정뿐 아니라 네트워크, 데스크톱, 사용자 교육, 개발 표준까지 함께 해결해야 했다고 지적한다.

이 시기의 핵심 문제는 언어나 프레임워크 하나를 고르는 것이 아니었다. 서버와 PC의 역할을 어떻게 나눌지, 느린 네트워크에서 화면 응답을 어떻게 유지할지, 각 PC에 설치된 프로그램을 어떻게 배포하고 갱신할지가 설계의 큰 부분이었다.

웹 개발은 HTML과 CGI의 시대였다

1995년의 웹 페이지는 대체로 문서였다. 제목, 문단, 목록, 링크, 이미지와 입력 폼을 HTML로 작성해 웹 서버에 올렸다. CSS는 아직 표준이 아니었고, 브라우저에서 실행되는 스크립트도 막 등장한 단계였다.

그해 11월 발행된 RFC 1866은 HTML 2.0을 공식 규격으로 정리했다. 이 문서는 당시 웹에서 이미 사용되던 기능을 표준화한 것이므로, “HTML이 1995년에 처음 생겼다”는 뜻은 아니다. 같은 달에는 폼을 통한 파일 업로드 방식을 제안한 RFC 1867도 발표됐다.

웹에서 검색, 방명록, 주문 접수처럼 서버의 계산이 필요하면 CGI(Common Gateway Interface)를 이용했다. 웹 서버가 요청을 받으면 Perl, C, 셸 스크립트 등으로 작성한 별도 프로그램을 실행하고, 그 결과를 HTML로 돌려주는 방식이다. 오늘날의 웹 프레임워크처럼 라우팅, 세션, 템플릿, 데이터 접근을 하나의 체계로 묶어 주는 환경은 아직 일반적이지 않았다.

웹 서버 쪽에서도 중요한 변화가 있었다. NCSA HTTPd의 수정 패치를 함께 관리하려는 협업에서 시작한 Apache는 1995년 4월 첫 공개 버전을 내놓고, 12월 1일 1.0을 발표했다. 이 과정은 Apache 프로젝트의 공식 역사에 기록돼 있다. 이후 Apache는 웹의 대표적인 오픈소스 기반 시설로 성장하지만, 1995년에는 이제 막 기반을 다지던 프로젝트였다.

검색엔진은 이미 경쟁하고 있었다

1995년의 검색엔진 흐름을 이해하려면 먼저 웹 이전의 검색 도구와 초기 웹 검색 서비스가 어떻게 발전했는지 살펴볼 필요가 있다. 1990년에 개발된 Archie는 웹이 아니라 공개 FTP 서버의 파일 목록을 수집해 검색하게 한 도구였다. 웹이 성장하기 시작한 1993년에는 ALIWEB, JumpStation, World Wide Web Worm처럼 웹 문서와 사이트를 찾으려는 초기 서비스가 등장했다. 이 계보는 검색엔진 역사를 정리한 학술 논문과 초기 검색 기술 문헌에서 확인할 수 있다.

1994년에는 검색 서비스가 오늘날 익숙한 형태에 가까워졌다. WebCrawler는 웹 페이지의 본문을 색인해 전문 검색을 제공했고, Carnegie Mellon University에서 시작된 Lycos는 크롤러로 문서를 수집하고 단어의 빈도와 위치 등을 검색에 활용했다. 미국 National Science Foundation도 초기 웹 검색의 역사에서 WebCrawler와 Lycos가 1994년 자동으로 웹 페이지를 색인하고 키워드 기반으로 결과를 정렬하기 시작했다고 설명한다.

같은 시기 Yahoo는 자동 수집 검색엔진보다는 사람이 웹사이트를 주제별로 분류한 디렉터리에 가까웠다. 당시에는 편집된 디렉터리와 크롤러 기반 검색엔진이 함께 웹 탐색의 입구 역할을 했다. 웹이 빠르게 커지면서 더 많은 페이지를 자동으로 발견하고 본문 전체를 색인하는 능력이 점점 중요해졌다.

그 흐름 위에서 Digital Equipment Corporation은 1995년 12월 AltaVista를 공개했다. AltaVista는 빠른 웹 크롤러와 확장 가능한 색인 소프트웨어를 결합해 대규모 웹 문서를 검색할 수 있게 했다. USENIX에 발표된 기술 소개에 따르면 서비스 개시 3주 만에 하루 200만 건이 넘는 HTTP 요청을 처리했다.

따라서 AltaVista의 의미는 최초의 검색엔진이라는 데 있지 않다. 앞서 등장한 검색 도구와 서비스의 흐름을 이어받아, 빠르게 팽창하는 웹을 대규모로 수집하고 검색할 수 있다는 가능성을 분명하게 보여 준 데 있다.

한 해에 등장한 네 개의 언어

Java: 플랫폼 독립이라는 약속

Sun Microsystems는 1995년 5월 23일 Java 기술을 공개했다. 같은 날 Netscape 브라우저에 Java를 지원한다는 계획도 발표됐다. 당시의 관심은 네트워크를 통해 내려받아 여러 종류의 컴퓨터에서 실행할 수 있는 프로그램, 특히 브라우저 안의 애플릿에 쏠렸다.

다만 Java를 1995년 기업 개발의 주류였다고 표현할 수는 없다. 첫 정식 JDK인 1.0은 1996년 1월에 나왔다. 1995년은 Java가 완성된 생태계를 확보한 해라기보다, “한 번 작성하고 어디서나 실행한다”는 방향을 공개적으로 제시한 해였다. Java의 공개 시점은 Oracle의 Java 25주년 자료에서도 확인할 수 있다.

JavaScript: 문서였던 웹에 동작을 더하다

Netscape의 Brendan Eich가 만든 언어는 처음에 Mocha, 이어 LiveScript라는 이름을 거쳐 JavaScript가 됐다. MDN의 JavaScript 역사에 따르면 1995년 9월 Netscape Navigator 2.0에 들어가며 브라우저에서 실행되는 스크립트의 시대를 열었다.

하지만 이때의 JavaScript는 아직 여러 브라우저가 공유하는 표준 언어가 아니었다. ECMAScript 표준은 뒤에 만들어진다. 1995년의 의미는 완성도가 아니라, 서버에 다시 요청하지 않고도 웹 문서가 사용자 입력에 반응할 수 있다는 가능성을 보여준 데 있다.

PHP: 웹을 위한 작은 CGI 도구

Rasmus Lerdorf는 자신의 홈페이지 방문 기록을 관리하기 위해 C로 CGI 프로그램을 만들었고, 1995년 6월 “PHP Tools”의 소스를 공개했다. PHP 공식 역사를 보면 그해 9월 폼 입력을 처리하는 기능이 더해졌고, 10월에는 도구가 다시 작성됐다.

따라서 1995년의 PHP를 오늘날의 대규모 웹 애플리케이션 언어와 동일하게 보면 안 된다. 출발점은 HTML 문서에 동적 기능을 비교적 쉽게 붙이려는 작고 실용적인 도구였다. 그 단순한 출발이 이후 서버 측 웹 개발의 큰 흐름으로 이어졌다.

Ruby: 일본에서 공개된 객체지향 언어

마츠모토 유키히로가 설계한 Ruby는 1993년에 작업이 시작됐고, 1995년 12월 Ruby 0.95가 일본 내 뉴스그룹에 공개됐다. 이는 Ruby 공식 FAQ에 남아 있다.

Ruby 역시 1995년 세계 개발 현장을 지배한 언어가 아니었다. 훗날 Ruby on Rails를 통해 웹 개발에 큰 영향을 주지만, 이 시점에는 일본어권 커뮤니티에 첫 공개 버전을 알린 새로운 언어였다. 1995년을 다룰 때 중요한 것은 유명한 기술 네 개가 동시에 주류가 됐다는 이야기가 아니라, 다음 시대의 서로 다른 해법들이 같은 해에 씨앗을 틔웠다는 사실이다.

데이터베이스에서도 다음 시대의 씨앗이 보였다

기업 현장에서는 이미 상용 관계형 데이터베이스가 클라이언트/서버 시스템의 중심에 있었다. 한편 오픈소스 데이터베이스의 계보에서도 1995년은 눈에 띄는 해다.

버클리 POSTGRES 프로젝트에서 SQL을 지원하도록 코드가 바뀐 Postgres95가 1995년에 공개됐다. 이 프로젝트는 1996년 PostgreSQL로 이름을 바꾼다. 자세한 과정은 PostgreSQL 공식 역사에 정리돼 있다. MySQL도 공식 30주년 연표에서 1995년을 출발점으로 기록한다.

이들 역시 등장 즉시 기업용 상용 데이터베이스를 대체한 것은 아니다. 다만 웹의 성장과 맞물려 이후 누구나 사용할 수 있는 서버 운영체제, 웹 서버, 스크립트 언어, 데이터베이스가 한 묶음으로 발전할 토대가 형성되고 있었다.

국내의 1995년: 인터넷과 PC통신이 겹치던 때

세계의 기술 발표만 나열하면 당시 국내 개발자가 마주한 환경을 놓치게 된다. 국내에서는 1994년 상용 인터넷 서비스가 시작됐고, 1995년에는 접속 사업자가 늘어나며 인터넷이 연구망 밖으로 확산되기 시작했다. 그러나 전화선 모뎀을 통한 접속 비용과 속도는 큰 제약이었다. 정부가 정리한 대한민국 인터넷 발전사는 1994년 상용 서비스 개시와 1995년의 사업자 확대, 당시 전화망 접속 환경을 함께 설명한다.

일반 사용자에게 더 익숙한 온라인 공간은 하이텔·천리안·나우누리 같은 PC통신이었다. 게시판, 자료실, 동호회, 전자우편을 이용하기 위해 전용 접속 프로그램과 모뎀을 사용했다. 1995년에 Windows 기반 PC통신 소프트웨어가 등장했다는 국내 기업의 제품 기록도 DOS 중심의 접속 경험이 Windows GUI로 이동하던 모습을 보여준다.

따라서 국내의 1995년을 “웹 개발이 본격화된 해”라고 단정하는 것은 이르다. 더 정확하게는 다음 세 환경이 공존하던 시기다.

  • DOS용 프로그램과 기존 업무 시스템의 유지
  • Windows 3.x 및 Windows 95를 겨냥한 GUI 프로그램 개발
  • PC통신 서비스와 초기 인터넷·웹 서비스의 탐색

국내 웹 서비스와 전자상거래가 대중에게 더 분명한 산업으로 보이기 시작하는 시점은 이어지는 연도에서 다룰 필요가 있다. 1995년은 전환이 완료된 해가 아니라, 전환의 방향이 보이기 시작한 해다.

1995년 개발자의 하루를 오늘과 비교하면

오늘날 개발자는 패키지 저장소에서 의존성을 내려받고, 클라우드 환경에 배포하며, 브라우저 개발자 도구로 문제를 확인한다. 1995년에는 이런 흐름을 당연하게 여길 수 없었다.

개발 결과물은 특정 운영체제와 CPU, 설치 환경에 강하게 묶였다. GUI 화면을 만들 때도 운영체제 API와 개발 도구의 제약을 크게 받았다. 기업 프로그램은 데이터베이스 서버와 각 사용자의 PC에 설치된 클라이언트가 함께 움직여야 했다. 웹은 배포 문제를 줄일 가능성을 보여줬지만, 표현력과 실행 능력은 아직 제한적이었다.

바로 이 제약 때문에 1995년에 등장한 기술들의 방향이 선명해진다.

  • Java는 운영체제 차이를 넘어 실행하려 했다.
  • JavaScript는 웹 문서를 사용자와 상호작용하게 만들려 했다.
  • PHP는 서버에서 동적 HTML을 만들기 쉽게 하려 했다.
  • Ruby는 프로그래머가 읽고 쓰기 편한 객체지향 언어를 지향했다.
  • Apache는 공개적인 협업으로 웹 서버를 발전시켰다.

각 기술은 서로 다른 문제를 풀었지만, 결과적으로 소프트웨어의 중심을 설치형 프로그램에서 네트워크와 웹으로 옮기는 데 기여했다.

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

1995년은 웹 개발이 이미 완성된 해가 아니라, PC용 소프트웨어와 클라이언트/서버가 현실을 지배하는 동안 다음 10년의 웹을 만들 기술들이 한꺼번에 모습을 드러낸 해였다.

이 차이를 기억해야 연대기를 정확히 읽을 수 있다. Java가 발표됐다는 사실과 Java가 현업의 주류였다는 주장은 다르다. JavaScript가 브라우저에 들어갔다는 사실과 오늘날 같은 프런트엔드 개발이 존재했다는 주장도 다르다.

다음 글에서는 이 씨앗들이 실제 도구와 산업으로 자라기 시작한 1996년을 살펴본다. Java 1.0, 브라우저 경쟁, CSS의 표준화, 국내 인터넷 서비스 확대가 개발자의 선택지를 어떻게 바꾸기 시작했는지가 중심이 될 것이다.

참고 자료

이 글은 당시 문서와 각 프로젝트의 공식 기록을 우선해 작성했습니다. “1995년에 발표된 기술”과 “1995년에 널리 사용된 기술”을 구분했으며, 이후 자료가 수정되거나 더 신뢰할 만한 1차 자료가 확인되면 내용을 갱신합니다.