Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

JAVA 웹 프로그래밍 2주차 정리 (JAVA 웹 프로그래밍) 본문

2-2/JAVA 웹 프로그래밍 실무

JAVA 웹 프로그래밍 2주차 정리 (JAVA 웹 프로그래밍)

김브래 2023. 9. 13. 23:01

실습



이론


웹 개발(프로그래밍) 발전 동향

➢ 웹 사이트 개발
▪ 정적인 웹 페이지들로 구성된 웹 사이트 개발
▪ 각 페이지는 HTML, 이미지들로 구성


➢ 웹 애플리케이션 개발 등장 배경
▪ 동적인 웹 페이지를 제공하거나 서버에 정보를 저장할 수 있는 기능에 대한 사용자들의 요구가 크게 증대
▪ 정보를 요청하는 시점에서 작성된 코드를 실행하여 요청을 처리하고, 처리 결과를 클라이언트에게 제공함
(게시판 목록 정보, 정보 등록, 수정, 삭제)

 

➢ 초기 웹 애플리케이션 개발
▪ 절차지향 프로그래밍 기법을 활용한 프로세스 기반 웹 애플리케이션 개발


➢ 현재 웹 애플리케이션 개발
▪ 객체지향 기법 또는 프레임워크를 활용한 멀티 스레드 기반 웹 애플리케이션 개발
- JSP : Servlet, Java, Spring, eGov Framework, Hibernate, MyBatis
- PHP : C, C++, CodeIgniter, Laravel
- ASP.NET : C#, .NET Framework

 

▪ 참고) 
- 백엔드뿐 아니라 프론트엔드 개발에도 프레임워크가 널리 활용되고 있다.

 

정적 웹 페이지 vs. 동적 웹 페이지

➢ 정적 웹 페이지
▪ 사용자의 요청 이전에 만들어져서 제공되는 웹 페이지
▪ 항상 동일한 내용을 제공한다.
▪ 웹 서버가 제공한다.


➢ 동적 웹 페이지
▪ 사용자의 요청 시점에 요청된 매개변수를 활용하여서 실행시간에 생성되는 웹 페이지
▪ 요청 매개변수에 따라 다른 내용을 제공한다.
▪ 웹 컨테이너가 웹 애플리케이션에게 요청하여 제공한다.

 

웹, WWW(World Wide Web)

➢ 정의

▪ 인터넷상 에서 제공되는 서비스 중 하나로 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 전세계적인 분산 정보 시스템을 의미한다.

 

▪ 인터넷을 통해 접근되는 상호 링크된 하이퍼텍스트 문서들을 제공하는 서비스 시스템을 의미한다.
- 하이퍼텍스트 또는 하이퍼미디어는 하이퍼링크(hyperlink)를 포함하고 있는 문서를 의미한다.
- 하이퍼링크는 서비스 사용자가 직접 선택하거나 자동적으로 해당 문서 또는 문서 내 특정 요소 위치로 이동하는데 사용되는 참조를 의미한다.

 

➢ 동작

▪ 클라이언트의 요청과 서버의 응답을 처리하는 클라이언트-서버 방식 으로 동작한다.


▪ 사용자는 웹 브라우저를 이용하여 필요한 자원을 웹 서버에게 요청하고, 웹 서버는 해당 자원을 찾아 응답을 만들고 이를 웹 브라우저에게 전송하며, 웹 브라우저는 전송받은 응답을 처리하여 사용자에게 자원을 제공한다.

 

클라이언트-서버 모델

➢ 정의
▪ 서비스나 자원을 제공하는 서버와 서비스를 요청하는 클라이언트로 나누어서 작업(task) 또는 작업 부하(workload)들을 처리하는 분산 애플리케이션 구조를 의미한다.


➢ 동작
▪ 사용자는 서버와 통신하기 위해 먼저 클라이언트 측(client-side) 애플리케이션을 배포 받아 설치한 후 클라이언트 측 애플리케이션으로 서비스를 요청하고, 서버는 요청을 처리하여 응답한다.

➢ 전통적인 클라이언트-서버 모델의 문제점
▪ 클라이언트 S/W이 변경되는 경우 재배포와 설치가 필요하다.

 

▪ 사용자의 수가 많은 경우 재배포에 소요되는 비용이 커질 뿐 아니라 운영체제에 따라 다양한 버전의 클라이언트 S/W 개발이 요구되는 문제가 발생한다.

 

▪ 예를 들면 클라이언트 S/W의 메뉴가 변경되면 클라이언트 S/W를 운영체제별로 수정해야 하고, 재배포와 재설치를 수행해야 한다.

➢ 해결방법
▪ 모든 클라이언트 시스템에 존재하는, 즉 편재성(ubiquity)이 있는 클라이언트 S/W를 이용하고, 클라이언트 S/W 상에서 애플리케이션이 동작하는 모델로 전환한다.

 

▪ 예) WWW 서비스
- HTTP기반 클라이언트-서버 모델을 사용한다.
- 클라이언트 S/W로 웹 브라우저를 사용한다.
- 웹 브라우저를 통해 서버에게 서비스를 요청하고, 서버는 이를 처리하여 응답하며, 웹 브라우저는 응답을 출력한다.

➢ 웹 클라이언트 (웹 브라우저)
▪ 웹 서비스를 요청하고 서버가 보내온 응답을 처리하여 출력하는 애플리케이션 또는 시스템을 의미한다.
▪ 요청은 해당 자원의 URL을 주소표시줄에 입력하거나 URL이 포함된하이퍼링크를 클릭하면 된다.


➢ 웹 서버
▪ 웹 서비스를 제공하는 애플리케이션 또는 시스템을 의미한다.
▪ 요청된 자원을 찾아서 HTTP 응답을 클라이언트에게 제공한다.

 

URL(Uniform Resource Locator)

➢ 정의
▪ 자원의 위치를 기술하는데 사용되는 식별자(Identifier)를 의미한다.


➢ 일반적인 구문 구조
▪ <scheme_name>:<scheme_specific_part>

 

- scheme_name에는 http, ftp, news, mailto 등이 나타날 수 있고, 
scheme_specific_part은 scheme_name에 따라 다른 내용을 갖는다.

HTTP(HyperText Transfer Protocol)

➢ 정의
▪ WWW 서비스에서 클라이언트와 서버 사이에서 통신할 때 사용하는 통신 프로토콜(protocol)이다. 현재 가장 널리 사용되는 버전은 1.1이다.

 

▪ 프로토콜
- 네트워크로 연결된 컴퓨터들이 서로 통신할 수 있도록 미리 정해놓은 규칙들의 집합을 의미하며, 간단히 통신규약이라고 한다. 하나의 서비스는 하나 또는 다수의 프로토콜과 포트를 가질 수 있다.

 

▪ 포트
- 네트워크 서비스를 식별하기 위해 부여된 번호를 의미한다

 

➢ 동작
▪ 클라이언트 컴퓨터와 서버 컴퓨터는 HTTP을 이용하여 요청을 전송하고, HTML 문서를 응답한다.

TCP/IP

➢ 정의

▪ 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)으로 패킷 통신 방식의 인터넷 프로토콜인 IP(Internet Protocol)와 전송 제어 프로토콜인 TCP(Transmission Control Protocol)로 이루어져 있다. 


➢ 특징
▪ IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다.(unreliable datagram service) 

 

▪ TCP는 IP 위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다. 

 

▪ HTTP, FTP, SMTP 등 IP를 기반으로 한 많은 수의 애플리케이션 프로토콜들이 TCP위에서 동작하기 때문에, 묶어서 TCP/IP로 부르기도 한다

 

HTML(HyperText Markup Language)

➢ 정의
▪ 하이퍼텍스트 또는 하이퍼미디어를 작성하기 위해 사용되는 언어를 의미한다. 
▪ 태그 기반 언어이다.
▪ 현재 HTML4.01과 HTML5가 사용중이다.

 

➢ HTML 4.01
▪ 가장 보편적인 인터넷 표준 언어
▪ 표준의 부재로 인한 웹 브라우저들 간의 호환성 문제가 발생
▪ 문서의 구조나 정보를 표현하는데 한계성이 있음

 

➢ HTML5
▪ 2008년 1월에 논의 시작, 2014년 10월 28일 표준안 확정
▪ 간결해진 유효성 검사를 위한 선언문 : <!DOCTYPE html>
▪ 문서의 구조나 정보를 표현하는 능력이 향상됨
▪ 시맨틱 태그 사용할 수 있음
▪ 기본 골격 - <header>, <nav>, <article>, <section>, <aside>, <footer>

 

웹 애플리케이션

➢ 정의
▪ CGI, 서블릿, JSP, ASP.NET, PHP 등과 같은 언어로 구현하며, 웹 서버의 기능적인 한계를 돕는 목적으로 개발된 애플리케이션을 의미한다.

 

▪ 현재에는 인터넷과 같은 컴퓨터 네트워크 상에서 접근되는 애플리케이션, 즉 웹 환경에서 실행되는 애플리케이션을 의미한다.

 

➢ 대표적인 예
▪ 게시판, 일정관리, 캘린더, 메일, 주소록, 웹 오피스 등

 

➢ 특징
▪ 동적으로 웹 페이지를 생성하거나 서버에 데이터를 저장하는 작업을 수행하여 웹 서버를 돕는다. 
▪ 실행을 위해 웹 컨테이너(웹 애플리케이션 서버라고도 함)를 필요로 한다.
▪ 웹 애플리케이션에 변경이 발생되어도 클라이언트에 변경된 애플리케이션을 재배포하거나 설치할 필요가 없다.

 

웹 애플리케이션의 동작

1. 웹 브라우저가 웹 서버에게 동적인 웹 페이지에 대한 요청을 한다.
2. 웹 서버는 요청한 페이지가 존재하지 않음을 확인하고, 웹 애플리케이션에게 요청을 전달한다.
3. 웹 애플리케이션은 전달된 매개변수를 이용하여 동적으로 컨텐츠(웹 페이지)를 생성하고, 이를 웹 서버에게 전송한다.
4. 웹 서버는 전송받은 컨텐츠(웹 페이지)를 응답으로 만들어 웹 브라우저에게 전송한다.
5. 웹 브라우저는 전송받은 응답을 처리하여 화면에 나타나게 한다.

웹 컨테이너(Web Container)

➢ 정의
▪ 웹 애플리케이션에게 실행 환경을 제공하는 플랫폼을 의미한다. ‘웹 애플리케이션 서버’라고도 한다.

 

➢ 기능
▪ 웹 애플리케이션의 관리와 실행 뿐 아니라 웹 서버와 손쉽게 통신할 수 있도록 지원하고, 웹 애플리케이션의 생명 주기(life cycle)를 관리하며, 부가적인 기능을 제공하여 개발을 용이하게 한다.

 

자바 기반 웹 컨테이너들

➢ Servlet/JSP 컨테이너
▪ 자바 기반으로 웹 애플리케이션에게 실행 환경을 제공하는 플랫폼을 의미한다. 
▪ JSP 페이지를 서블릿 코드로 변환하고, 컴파일된 서블릿을 실행해주는 역할을 담당하는 소프트웨어를 의미하며, Servlet, JSP를 지원한다. 
- 서블릿의 관리와 실행 뿐 아니라 서블릿이 웹 서버와 손쉽게 통신할 수 있도록 지원하고, 서블릿의 생명 주기(life cycle)를 관리하며, 멀티스레딩을 지원한다. 또한 배포 서술자를 이용한 보안 관리를 지원하며, JSP의 서블릿으로의 변환을 지원한다.

 

Servlet

➢ 정의
▪ 요청-응답 프로그래밍 모델 방식으로 접근되는 응용프로그램들을 제공하는 서버의 유용성을 증대하기 위해 사용되는 Java 언어로 작성된 클래스들


▪ 일반적으로 Java 서블릿 API를 준수하는 자바 엔터프라이즈 에디션(Java EE)에 포함된 자바 클래스들

 

JSP

➢ 등장 배경
▪ Servlet은 향상된 성능을 제공하지만 웹 페이지 구성요소들 간의 구조를 정의하는데 사용되는 HTML 처리가 쉽지 않고, 유지보수가 어렵다는 단점이 여전히 존재하였다.


➢ 정의
▪ 향상된 성능을 제공하면서 HTML을 직접 사용할 수 있는 자바기반 웹 애플리케이션 개발용 스크립트 언어를 의미한다.
• 지시자, 스크립팅 요소, JSP 주석과 표준 액션 등과 같은 JSP 기본 요소와 HTML 태그 및 HTML 주석 등으로 구성된다