World Wide Web
The Web does not just connect machines, it connects people.
모든 현대 IT 기술의 종착지이자, 인류 역사상 가장 거대하고 활발한 정보의 바다. 하지만 현직 개발자들에게는 사파리와 크롬의 크로스 브라우징 지옥이자 끝없는 자바스크립트 프레임워크 춘추전국시대(...)
1. 개요
웹(Web), 본래 명칭인 World Wide Web(월드 와이드 웹, WWW)은 인터넷망을 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 뜻한다. 흔히 '인터넷'과 혼용되어 쓰이지만, 엄밀히 말하자면 인터넷이라는 거대한 도로망 위에 달리는 '버스나 자동차' 같은 하나의 서비스에 불과하다.
하지만 현재는 그 버스가 너무 거대해져서 도로 자체를 집어삼킨 수준이 되었으며, 오늘날 우리가 컴퓨터나 스마트폰을 켜고 하는 거의 모든 행위(유튜브 시청, 쇼핑, SNS, 재택근무 등)의 기반이 되었다.
2. 웹의 역사와 발전
2.1. Web 1.0 (단방향 정보 전달)
초기의 웹은 단순히 서버에 올려진 HTML 문서들을 사용자가 일방적으로 읽는 것만 가능한 구조였다. 게시판이나 댓글 같은 상호작용은 상상도 할 수 없었으며, 마치 백과사전을 모니터로 읽는 듯한 건조한 형태였다. 당시의 모뎀 연결음 소리를 기억한다면 당신은 훌륭한 아재다.
2.2. Web 2.0 (양방향 소통과 플랫폼)
사용자가 직접 정보를 생산하고 공유하는 시대가 도래했다. JavaScript의 비약적인 발전과 AJAX 기술의 등장으로, 페이지 전체를 새로고침하지 않고도 실시간으로 데이터를 주고받을 수 있게 되었다. SNS, 위키(바로 지금 당신이 보고 있는 이것), 블로그 등이 모두 Web 2.0의 축복 아래 태어났다.
2.3. Web 3.0 (탈중앙화와 새로운 시도)
블록체인과 탈중앙화를 기반으로 하여 거대 IT 공룡들의 데이터 독점을 막겠다는 취지로 등장한 개념이다. 그러나 현재는 기술적 한계와 암호화폐 투기판 이미지로 인해 "마케팅용 허상에 불과하다"는 비판과 "차세대 인터넷의 혁명"이라는 찬사가 팽팽하게 맞서고 있다.
3. 관련 밈 및 드립
3.1. 사파리는 신흥 IE인가?
과거 웹 표준을 무시하며 모든 개발자들의 암을 유발했던 Internet Explorer가 퇴장하자, 이번에는 Apple의 사파리(Safari)가 독자적인 규격과 느린 업데이트로 새로운 웹 표준의 파괴자로 등극했다. iOS 내에서는 사실상 크롬을 깔어도 렌더링 엔진은 사파리(WebKit)를 강제당하기 때문에, 웹 개발자들은 "사파리는 현대판 IE다"라며 매일 밤 눈물을 흘리며 크로스 브라우징을 맞추고 있다.1
3.2. 자바스크립트 만능설 (Atwood's Law)
"자바스크립트로 작성될 수 있는 모든 애플리케이션은 결국 자바스크립트로 작성될 것이다." —— 제프 앳우드(Jeff Atwood)2
원래는 브라우저 안에서 폼 검증이나 하던 간단한 스크립트 언어였던 JavaScript가, 현재는 서버(Node.js), 앱(React Native), 3D 그래픽(Three.js) 등 쓰이지 않는 곳이 없게 되자 생겨난 드립이다. 실제로 현대 웹 개발은 자바스크립트에 미쳐있다고 해도 과언이 아니다.
4. 여담
- 최초의 웹 서버 컴퓨터와 포스트잇: 최초의 웹 서버 컴퓨터인 넥스트(NeXT) 워크스테이션에는 "이 기계는 서버이므로 절대 전원을 끄지 마시오!"라는 손글씨 포스트잇이 붙어 있었다고 한다. 만약 누군가 청소하다가 코드를 뽑았다면 인류의 웹 역사가 잠시 정지되었을지도 모른다.
- www 접두사의 역사적 퇴출: 웹을 뜻하는 'Spider Web(거미줄)'에서 알 수 있듯이, URL 맨 앞에 붙는
www는 거미집을 의미하지만, 현대에 와서는 타자가 귀찮아서 생략하는 것이 국룰이 되었다. - 한국 웹의 암흑기 Active X: 대한민국에서는 Active X와 공인인증서의 콜라보레이션으로 인해 수십 년 동안 웹 브라우저가 '보안 프로그램 설치기'로 전락했던 어두운 과거가 있다.
설치하라는 보안 프로그램이 오히려 시스템을 해킹하는 기적(...)
5. 관련 문서
각주
이 문서를 가리키는 문서
- AI Agent
- Backend
- 브라우저
- 빌드
- 클라우드 컴퓨팅 (Cloud Computing)
- 컴포넌트
- 쿠키 (Cookie)
- C++
- 암호학 (Cryptography)
- CSS
- 데이터베이스
- 개발 환경
- Django
- DNS
- Docker
- 전자정부 프레임워크
- 실행
- 프레임워크
- Frontend
- Git 브랜치 전략
- GitHub
- 구글
- gRPC
- HTML
- HTTP
- 통합 개발 환경 (IDE)
- Internet
- 인터넷 익스플로러
- IP 주소
- JavaScript
- JSON
- JWT
- 라이브러리
- Lighthouse (라이트하우스)
- 리눅스 (Linux)
- 로드 밸런서 (Load Balancer)
- 로그
- macOS
- 메시지 브로커
- 마이크로소프트
- MongoDB
- MVC 패턴 (Architectural Pattern)
- MySQL
- Next.js
- NoSQL
- OAuth
- 패키지 매니저 (Package Manager)
- PWA (프로그레시브 웹 앱)
- Python
- React Native
- REST API
- SDK
- 서버 (Server)
- 세션 인증 (Session Authentication)
- SPA
- Spring Boot
- SSL/TLS
- 썬 마이크로시스템즈
- 터미널
- WAS (웹 애플리케이션 서버)
- 웹 개발자
- Web Server