JSP & Servlet - 웹 프로그래밍 개요

|

개인적인 연습 내용을 정리한 글입니다.
더 좋은 방법이 있거나, 잘못된 부분이 있으면 편하게 의견 주세요. :)


웹 프로그램이란?

PC가 서로 연결되어있을 때 사용자가 무언가는 요청(request)하고 요청한 것을 분석/가공/조합해 만든 데이터를 요청한 쪽으로 응답(response)해주는 과정을 웹 프로그램이라고 한다. 그리고 이 과정을 만드는 것을 웹 프로그래밍 개발이라고 한다.

이러한 웹 프로그램을 하는 언어는 다양하고 그 중에서도 자바 언어를 사용할 것인데, 자바를 통한 웹 프로그래밍은 jsp와 servlet을 이용하는 것이다.

기본적으로 우리가 집 혹은 학교에서 다양한 PC를 사용하는데, 이 컴퓨터들이 서로 연결되는 것을 네트워크라고 한다. 그리고 이 네트워크가 연결된 상태에서 브라우저를 통해 데이터를 주고받는 것을 인터넷 서비스를 이용한다라고 말한다. 이러한 인터넷 서비스를 이용해 서로 다른 구성요소들의 요청과 응답을 하는 구조를 웹 프로그램이라고 한다.

프로토콜과 ip

프로토콜

통신규약.

인터넷 객체는 웹 서버로 데이터들을 요청할 수가 있다. 요청을 하게되면 웹 서버는 데이터를 가공 및 조합을 해 인터넷 객체로 응답을 주는 서로간의 통신과정을 거친다. 이러한 통신을 할때 서로간의 규약을 정해놓고 통신을 하는데 이때의 통신 규약을 프로토콜이라고 한다.

예로들면 우리가 외국 사람들과 통신을 하게된다고 하면 그 중간에서 서로를 통역해주는 매체가 있어야 하듯이 인터넷 객체의 종류도 무궁무진하니(브라우저, 메일 등) 이들간의 통신을 위한 규약을 뜻한다.

이 통신규약에는 http, ftp, smtp, pop 등이 있다.

  • http: 글과 그림,동영상 같은 하이퍼링크과 관련된 프로토콜
  • ftp: 파일전송과 관련된 프로토콜
  • smtp: 메일 관련된 프로토콜

ip

컴퓨터들의 특정한 주소.

전 세계에는 많은 서버와 PC가 있는데 인터넷이라는 것은 이 PC들이 서로 연결이 되어서 서로간에 데이터를 요청-응답받는것을 의미한다. 즉, 내가 구글이나 네이버, 다음 같은 서버에 어떤 데이터를 필요로한다고 요청을 할때 그 컴퓨터마다의 주소를 알아야 데이터를 요청할 수 있는데 그 컴퓨터의 특정한 주소를 ip address라고 한다.

이 ip address는 숫자로 표현이 되어지는데 숫자는 가독성이 떨어지기 때문에 중간에 dns라는 서버를 두고 ip address와 실제 도메인을 맵핑하여 사용되어지고 있다.

좀더 간단히 말하자면, 우리가 네이버라는 서버를 사용하고 싶어 naver.com이라고 주소창에 친다고 생각해보자.

  • 실제 naver.com이라는 서버에 들어가기 위해서는 ip address 숫자를 알고 있어야 한다.
  • 그러나 그 숫자를 항상 외우고 들어가기는 힘들다.
  • 그로하여 naver.com 과 ip address 그 사이에 dns라는 서버를 둔다.
  • dns는 naver.com과 ip address를 맵핑해준다.
    • 즉 우리가 naver.com이라고 주소창에 치더라도(ip address가 아닌) 원하는 네이버 창을 볼 수 있다.
  • 즉 dns서버를 통해 도메인과 ip address 는 맵핑되어있기 때문에 우리는 ip address를 외울 필요가 없다.

포트

프로그램을 찾아가는 경로.

이제 이 ip address를 통해서 웹 서버로 접근을 했다. 웹 서버에는 구동되고 있는 여러개의 프로그램이 있는데 ip address를 통해 서버에 들어왔다고 하더라도 실제 내가 진짜로 원하는 프로그램을 또 찾아줘야 한다. 이때 프로그램을 찾아가는 경로를 포트라고 하고, 이 포트를 통해서 수많은 프로그램들 중에서 내가 어느곳으로 갈지를 선택해준다.

도메인의 구조

http://www.google.com:80/index.html

  • http: 프로토콜. 글, 그림, 동영상을 이용해 사용자가 요청한 것에 대해 다시 응답해주는 하이퍼텍스트를 이용해 응답을 해주는 통신규약
  • www: world wide web service.
  • google.com: 도메인. 이 도메인을 주소창에 치면 dns는 도메인과 맵핑되어있는 구글 서버 ip address를 자동으로 찾아준다.
  • :80 : 포트번호. 서버에서 어떤 프로그램을 찾아갈지 결정해준다.
  • index.html: 80번 포트번호에서 굉장히 많은 파일들이 있는데 그 파일들 중에서 내가 제일 먼저 찾아가야하는 파일의 경로, 디렉토리 명

그러나 실제로는 우리가 구글에 들어가기 위해서는 google.com 만 쳐도 들어가진다. 그 이유는 google.com까지만 입력해도 브라우저는 기본적으로 80번 포트를 만들어주기 때문이다. 그리고 실제 서버에는 index.html을 가장 먼저 실행해야하는 파일로 정의가 되어있기 때문에 우리가 google.com 까지만 쳐도 자연스럽게 80번 포트에 index.html 파일로까지 실행이 되는것이다.

웹 프로그램의 동작 원리

  • 사용자가 PC에 무언갈 요청했다. (여기서 요청은 사용자가 구글, 네이버 등의 서버에서 검색한 키워드가 요청된것 )
  • 이 요청한 데이터는 데이터베이스로부터 어떤 데이터를 가져올지 말지를 판단
  • 데이터를 가져올 필요성이 있을때 웹서버는 데이터베이스로 퀴리를 날린다. (어떠한 데이터를 주라고)
  • 그러면 데이터베이스에서 응답을 한다
  • 응답을 받은 웹서버는 사용자에게 다시 응답을 하게 됨

웹서버와 브라우저가 통실할때는 html 파일로 움직인다.

즉, 사용자가 내가 만든 프로그램에서 요청을 할때 그냥 단순한 정적인 파일만을 원한다면 html 파일로 응답을 하면 되는데, 데이터베이스로부터 새로 화면을 만들어야해서 (새로 가공을 해서 전달해줘야 한다면) 웹 컨테이너로부터 데이터를 수집/가공/변형하는 과정을 거쳐 새로운 데이터를 뽑아내 html 파일로 응답을 해야한다.