Main Frame에 연결되어 있는것을 완전히 분리
-> data/program 내 컴퓨터에 (데스크탑 시대)
size에 따라 내 컴퓨터 사양에 따라 문제 생길 수 있음
-> 다른 컴퓨터를 만들어 놓고 program을 올려놓고 내 컴퓨터에서 불러오고 랜더링하여 사용 (네트워크 시대)
DBMS로 data를 요청하고 사용
클라이언트 머신에 따라 프로그램을 다르게 배포/유지보수 해야돼서 서버 개발자 입장에서 너무 힘듬
Web Server - Web browser
웹서버는 개발자가 아니라 단체에서 제공 받음
http://ip:80(port)/Context명(애플리케이션명)/a.html
ip 부분은 도메인명으로 바꿔서 씀
Context는 여러개 있을 수 있음
client에서 해당 애플리케이션에 맞는 엔진으로 요청 처리
http는 일회성(소켓통신이라서 서버쪽에 소켓이 계속 생겨버림 -> 서버측에서 관리하기도 힘들고 자원이 많이 사용됨 -> 많은 클라이언트 동시 수용 못함)
http
가 텍스트 기반이라서 많이 쓰는 프로토콜임
컴퓨터 입장에서는 텍스트 기반이 힘들고 사람 입장에서는 편함
멀티 유저를 수용하기위해 등장
xml : 텍스트 기반
json : 요즘 쓰는 텍스트 기반
웹서버 위에서 구동되는 애플리케이션 개발(개발자)
여러 언어로 시도(서버 위에서 돌아가는 언어 통칭 CGI;Common Gateway Interface)
심각한 문제
프로세스식 처리
: request마다 프로세스 하나가 돌아감
: 메모리 공유 못함
-> 쓰레드로 돌아가게 함(OS와 HW에도 연결되어야 함)
스케일 아웃 (서버 증설)
: 쓰레드 하나당 감당할 수 있는 수준을 넘어서면 증설해야함
: 상황마다 예전에 만들어진 프로그램을 올릴 수 없을 수 있음
-> 플랫폼 독립성 구성해야함(Sun에서 관심 있었음)
어떤 플랫폼에서든 구동할 수 있게 하는 언어 - Oak 개발
-> 잘 안됐고 Web에서 CGI 언어로 Java 개발됨
가장 엔터프라이즈 좋은게 java
가장 편리한게 Node.js