웹과 JSP 프로그래밍 이해하기
인터넷
컴퓨터가 서로 연결되어 TCP/IP라는 통신 프로토콜을 이용하여 정보를 주고받는 전세계의 컴퓨터 네트워크
웹
인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 정보 공간
월드 와이드 웹(world wide web)의 줄임말
웹의 동작 원리
웹은 기본적으로 클라이언트/서버 방식으로 동작한다.
가장 널리 쓰이는 웹 서버 - 아파치(Apache), 톰캣(Tomcat), IIS(Internet Information Server)
- 요청: 클라이언트에서 서버로 정보를 요구하기 위해 보내는 메시지. 이 요청 방식에는 GET방식과 POST 방식이 있다.
CGI
- 동적 페이지를 위한 기술
- 웹 서버와 동적 컨텐츠 생성을 맡은 프로그램 사이에서 정보를 주고받는 인터페이스
- 초기 웹 프로그래밍에 사용된 기술
웹 페이지의 종류
- 정적 웹 페이지
저장된 그대로 사용자에게 전달되는 웹 페이지, 모든 상황에서 모든 사용자에게 동일한 정보를 표시
-> 웹 프로그래밍 불필요: 단순 HTML(HyperText Markup Language)
- 동적 웹 페이지
사용자나 상황에 따라 다른 내용이 전달되는 웹 페이지, 각각의 상황 및 사용자에게 다른 정보를 표시
-> 웹 프로그래밍 필요: PHP, ASP, JSP
동적 웹 페이지의 종류
- 서버-사이드 동적 웹페이지(server-side dynamic web page): 서버사이드 스크립트를 처리하는 애플리케이션 서버에 의해 통제되는 구조의 웹페이지 - JSP, PHP, ASP, ASP.NET, Node.js
- 클라이언트-사이드 동적 웹페이지(client-side dynamic web page): 로드될 때 브라우저에서 실행되는 HTML 스크립트를 사용하여 웹페이지를 처리 - JavaScript, DHTML, AJAX
애플리케이션 프로그래밍 언어
- 이용하려는 컴퓨터에 개발한 프로그램 설치 필요함
- 웹브라우저를 사용하지 않음
- HTTP 프로토콜을 이용하지 않음
클라이언트-서버 애플리케이션: CS Program
-
서버 컴퓨터에 설치된 프로그램 이용함
-
이용자 컴퓨터와 서버 컴퓨터에 프로그램을 설치하여 사용함
-
주로 TCP/IP 통신 이용(HTTP는 인터넷의 한 종류)
-
예) PC방 관리 프로그램, 음식점 카운터와 테이블 주문 연동 프로그램
-
개발언어: 자바, C, 파이썬 등
-
웹브라우저를 사용하지 않음(HTML, 자바스크립트 등 불필요함)
-
HTTP를 이용하지 않고 인터넷 TCP/IP나 자체 통신망을 구성하여 이용함.
웹 프로그램
인터넷 서비스를 이용해서 서로 다른 구성요소들(PC 등)이 통신할 수 있는 프로그램이다.
프로토콜(Protocol)과 IP
- 프로토콜(Protocol)
통신을 하기 위한 규약으로 HTTP, FTP, SMTP, POP 등이 있다.
웹 프로그래밍 언어
- 이용자 컴퓨터에 별도로 개발한 프로그램 설치 불필요
- 대신 웹 브라우저 반드시 필요
- 서버 컴퓨터에 개발한 모든 프로그램 설치
- 웹 프로그래밍의 필요성 -> HTML과 구분
- 사용자나 상황에 따라 다른 내용의 페이지가 필요한 경우 사용
- 클라이언트 측 실행 언어와 서버 측 실행 언어로 구분됨.
PHP(Hypertext Preprocessor)
Personal Home Page Tools, 동적인 웹 문서를 빠르고 쉽게 작성할 수 있고 동적 HTML 처리 속도가 빠르다. 공개 무료.
ASP.NET(Active Server Page)
마이크로소프트사가 개발하여 판매하는 웹 애플리케이션 프레임워크, 동적인 웹 사이트, 웹 애플리케이션, 웹 서비스를 만들 수 있다.
JSP(Java Server Page)
썬 마이크로시스템즈에 의해 배포되었으며, 자바를 기반으로 하는 자바 서블릿을 보다 쉽게 사용하여 웹서버에서 동적으로 웹페이지를 생성, 웹 브라우저에 돌려주는 언어
Node.js
오픈 운영체제 백엔드 JavaScript 실행 환경을 구현하는 서버사이드 스크립트 언어
-Express.js : Node.js의 표준
JSP
자바를 기반으로 하는 JSP는 동적인 페이지를 생성하기 위한 서버측 웹 프로그래밍 언어 중 하나
- 객체지향적, 플랫폼 독립적, 네트워크 지향적, 뛰어난 보안성, 멀티스레드 기능, 친근한 코드, 서블릿 기술의 확장, 유지 관리가 용이
자바의 모든 기능을 사용 가능(확장성)
JSP 개발 환경 도구
- 자바 개발환경
- JDK: HTML 코드 내에 자바 코드를 작성하기 때문에 자바 개발 도구인 JDK가 반드시 설치되어 있어야 합니다.
- 웹서버
- 톰캣: 웹 프로그래밍 언어로 작성된 웹페이지가 실행되어 웹 브라우저에 나타나도록 하기 위해 웹 컨테이너를 설치해야 합니다. JSP 웹컨테이너로 자주 사용되는 것 중에서 가장 유명한 것은 톰캣이다. 톰캣은 오픈소스 프로젝트로서 무료로 누구나 사용할 수 있다.
- 통합 개발 환경
- 이클립스: JSP 코드를 작성한 후 이를 컴파일하여 오류를 검사하고 실행 결괄르 확인할 수 있는 통합 개발 환경(IDE)으로 개발자에게 가장 인기 있는 이클립스(Eclipse)를 선택하여 설치한다.
JSP 개발 환경 구축하기
웹 서버와 통합 개발 환경 설치하기
웹 서버
톰캣
- 아파치 소프트웨어재단(Apache Software Foundation)에서 개발한 웹 애플리케이션 서버
- 자바 만들어진 웹페이지를 구동하기 위한 엔진
통합 개발 환경
이클립스
- 자바 통합 개발 환경(IDE) 중 가장 많이 사용되는 개발 도구
- 자바를 기반으로 애플리케이션을 개발하기 위해 이클립스 사용