728x90

우리는 웹프로그래밍이라는 말은 쉽게한다.

그러나 정작 주위 사람들에게 웹 프로그래밍이 뭐냐? 라고 물으면 여기에 대해서 답하는 사람은 그리 많지 않다.

대게 돌아오는 대답은 웹을 프로그래밍 하는거지!라는 대답뿐...

여기에 대한 수준은 거의 사과는 무슨맛이나냐?라고 물었을 때 사과맛이 나지!라는 대답과 비슷한 수준이다.

사실 웹을 프로그래밍 하는 것은 맞으니 틀린 말은 아닐 것이다. 그러나 우리가 원하는 수준의 대답은 아니다.

그렇기 때문에 웹 프로그래밍이 뭔지에 대해서 알아보자.


www(w3 혹은 web이라 일컬음)


http://info.cern.ch/hypertext/WWW/TheProject.html

위는 세계최초의 웹페이지이다.


웹 프로그래밍에서 웹은 www를 의미한다.

아마 www를 처음 들어보는 사람, 그리고 타이핑한번 안해본사람은 없을것이라고 생각이 든다.

즉 웹 프로그래밍은 www를 프로그래밍 하는 것이라고 대답해주면 위의 대답은 해결이 된다.

이 웹을 만든 사람은 유럽의 cern에서 일을 하는 팀 버너스리인데 www뿐만 아니라 url,http,html등을 고안하였다.

웹이라는 것은 공간이다. 사실 뭐 기능적으로 뭐가 있는것은 아니고 http를 이용해서 데이터를 주고 받는 것이다.

여기서 http를 통하여 데이터를 주고 받는 것은 하이퍼텍스트이다.

하이퍼텍스트는 하이퍼링크를 이용해서 데이터를 연결시킨다.

즉 우리가 특정 버튼을 눌러서 특정 url로 넘어가는 것을 하이퍼링크라고 한다.

이 하이퍼링크를 보내기 위해서는 기존의 문서와는 달리 조금 특별한 문서를 보내야한다.

그래서 보내는 것이 Hyper Text Markup Language이다. 줄여서 html인 것이다.


즉 웹 프로그래밍은 웹을 프로그래밍 하는것이다.

웹은 www을 의미하며 www은 http프로토콜을 사용하는 공간의 총칭이다.

여기서 웹은 http 프로토콜을 사용해서 html을 주고받는 행위라고 보면 되겠다.

이까지 설명해서 알아 들으면 참 좋은데...

문제는 http프로토콜이 뭔지 설명해달라고 하면 이를 설명하는 사람역시별로 없다는 것이다.

우리가 주소창에 맨날 http:로 시작하는걸 기계적으로 치는데

이게 뭘 의미하는지 아는사람은 실제로는 많이 없는것 같다.

이제 http에 대한 설명으로 넘어가보자.


http프로토콜


http프로토콜은 서로 통신을 보내기 위한 통신규약이다.

Hyper Text Transfer Protocol의 약자이다.

http는 하이퍼텍스트를 빠르게 보내는것을 목표로 만든것이다.

즉 태생부터 html을 보내기위해서 만들어진 프로토콜이라는 것이다.


이 프로토콜의 가장큰 특징점이라면 요청에는 반드시 답을 한다는 것이다.

그래서 정상적인 프로그래밍에서 클라이언트는 request로 서버에 요청을 한다.

그럴경우 서버는 request를 읽고 그에 해당하는 답을 response로 응답한다.

사실 request자체가 요청이고 response자체가 응답이니 거의 어둠의 다크니스급의 겹말이지만 신경쓰지는 말자.

어쨋든 request,response로 이루어진 일련만 이해를 한다면

http프로토콜을 이용한 프로그래밍에 대한 이해는 80%는 끝났다고 생각해도 무방하다.


또다른 거대한 특징점은 정보 전달이 끝난즉시 프로토콜을 끊는다는 점이다.

즉 클라이언트와 서버는 http프로토콜을 전달하기 위해서 잠시동안 연결이 된다.

그리고 http프로토콜을 이용하여 데이터를 마구마구 전송하다가 마지막에 전송이 끝나는 순간 연결을 끊어버린다.

이는 서버 입장에서 일방적으로 클라이언트에게 이별통보를 하는 것이다.

뭔가 계속 연결되면 좋을것 같지만(경우에 따라서 이런 쪽이 더 좋을 수는 있지만)

사실 이는 http프로토콜의 가장큰 단점으로 페이지 렌더링할 데이터를 전송하고나면 끊어지므로

서버에 걸리는 부하는 딱 프로토콜을 전송하는데서 마친다는데 있다.


사실 우리가 프로그래밍 할때 http를 엄청 깊게 생각할 필요는 없다.

사실 깊게 생각할만큼 양이 많지도 않다.

특징정도만 알아두면 무방하다.


서버 사이드와 클라이언트 사이드


이까지 알았으면 웹프로그래밍이 뭔지에 대해 설명이 어느정도 됬을 것이다.

그러면 이제 구체적으로 어떤걸 프로그래밍을 하느냐?

여기에 대한 대답을 주자면 request를 던지는 것, response를 하는것 둘을 프로그래밍 하는 것이다.


이제 명확한 답을 나왔다. 웹 프로그래밍이라는 것은 웹에서 http통신을 사용해서 request를 하는것,

혹은 웹에서 http통신을 사용해서 response를 하는것, 두개를 모두 웹 프로그래밍이라고 한다.


이 둘은 사실 엄연히 다른 영역이기에

각각 클라리언트 사이드(request하는 쪽)와 서버 사이드(response하는 쪽)로 분리되어 이야기한다.

클라이언트 사이드와 서버사이드에 대한 자세한 설명은 필자의 포스팅을 참조하자.



+ Recent posts