티스토리 뷰

Goal 

 - 웹 프로그래밍과 웹과 관련된 용어에 대해 이해한다.

 - Java웹에 대해 간단히 이해한다.

 - 웹 프로그램의 동작 방식에 대해 이해한다

 - 웹서버와 웹 어플리케이션을 이해하고 차이점을 알아본다.

1. 웹프로그래밍이란?

 - 웹 프로그래밍이란, 웹 어플리케이션을 구현하는 행위

 - 웹 어플리케이션은 웹을 기반으로 작동되는 프로그램

 ex) 네이버등의 포털 사이트

 - 이란, 1개 이상의 사이트가 연결되어 있는 인터넷 서비스의 한가지 형태

 ex) 컴퓨터와 컴퓨터는 인터넷 서비스를 통해 네트워크를 이루고, 그 인터넷 서비스 중의 한가지가 웹(www)

 - 인터넷: 1개 이상의 네트워크가 연결되어 있는 형태. 

 

- 프로토콜(Protocol): 네트워크상에서 약속한 통신규약 

 ex) Http, FTP(File Transform Protocol), SMTP, POP, DHCP

- IP: 네트워크상에서 컴퓨터를 식별할 수 있는 주소 (000.000.000.000, 12자리의 숫자, 외우기 힘들다)

-DNS: IP주소를 인간이 쉽게 외우도록 맵핑한 문자열

-Port: IP주소가 컴퓨터를 식별할 수 있게 해준다면, Port번호는 해당컴퓨터의 구동되고 있는 프로그램을 구분할 수 있는 번호

 

Ex) Http://www.sba.seoul.kr:80/kr/index

- Http:// (프로토콜) : 입력하지 않아도 디폴트 값으로 설정

- www.sba.seoul.kr (DNS 서버): IP 주소를 사람이 이해하기 쉽게 매핑한 것. 

- 80 (Port번호) : DNS(or ip)로 접속한 서버에서 구동되고 있는 프로그램을 구분할 수 있는 번호 

- index (information path) : 정보를 담고있는 폴더

 

2. Java웹

 

2-1 J2EE 

 - 컨테이너 

 1) 웹 컨테이너 

  - JSP : Java Server Page : HTML파일 내에 JAVA언어를 삽입한 문서

  - Servlet : JAVA언어로 이루어진 웹프로그램 문서

 

 2) EJB 컨테이너

*컴포넌트: JSP, Servelt, HTML 등의 웹어플리케이션을 구현하기 위한 구성요소

*컨테이너: 컴포넌트를 관리하며, 담고 있다 (Tomcat7)

 

3. 웹프로그램의 동작

3-1 웹 서버(Web Server)

 - 클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 컨텐츠(.html, png, css등)를 제공하는 서버.

 - 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 한다.

 - 클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할 

 - 정적 컨텐츠가 아니면 웹어플리케이션에 처리 요청, 웹어플리케이션에게 요청한 컨텐츠를 받으면 마지막으로 클라이언트에게 응답해줌. ex) 아파치

 

3-2 웹 어플리케이션서버 (Web Application Server)

 - 동적 컨텐츠를 제공하기 위해 만들어진 어플리케이션 서버 (DB조회, 로직처리가 요구되는 컨텐츠)

 - JSP, Servelt 구동 환경 제공

 - 컨테이너, 웹컨테이너, 서블릿 컨테이너라고도 부름 ex)톰켓

 

3-3 웹서버와 웹어플리케이션 서버의 차이

 - 동적 컨텐츠 처리를 수행 할 수 있는지 아닌지.

 - 톰캣 앞에 아파치를 두는이유, 하나의 서버에서 php어플리케이션과 java어플리케이션을 함께 사용하거나, httpd        서버를 간단한 로드밸런싱을 위해서 사용해야 할 때 필요하기 때문.

 * 로드밸런싱 (부하분산) : 대량의 사용자 요청을 효율적으로 처리하여 사용자에게 응답하는 시간을 최대한 줄이기 위해 아파치에서는 정적인 컨텐츠를 처리하고, 동적인 컨텐츠는 웹 어플리케이션 서버에서 처리한다.

 

* 필요한 학습

 -Java

 -HTML: 웹 어플리케이션을 구현하기 위한 기본 언어

 -JavaScript: 클라이언트 기능을 구현하기 위한 언어

 -Jquery: JavaScript의 대표적인 라이브러리로써, 클라이언트 사이드 스크립트 언어를 단순화 할 수 있다.

 -CSS: 웹어플리케이션의 레이아웃 및 스타일을 지정하는 언어 

 

 

참고사이트

* https://limmmee.tistory.com

*https://jeong-pro.tistory.com/84

 

톰캣과 아파치?

( https://custum.tistory.com/7 )

댓글