우리가 일상적으로 사용하는 web 통신은 보이지 않는 쪽에서 아주 복잡하고 세밀하게 운영되고 있다. 프로그래밍을 공부 한다면 web은 기본적으로 거치고 가는 루트인데, web을 공부하기 전 기본적인 용어를 알고 공부한다면 매우 도움이 될 것이다.
1. it : 데이터의 관리와 처리에 대한 응용기술
2. WWW(world wide web) : 인터넷으로 연결된 사용자들이 정보를 공유하는 공간
3. 네트워크 : 컴퓨터와 컴퓨터를 연결해주는 망
4. IP 주소 : 컴퓨터가 통신하기 위한 고유한 주소
5. 포트 번호 : 네트워크 서비스나 특정 프로세스 식별하는 논리 단위
6. 도메인 : 컴퓨터의 주소를 문자로 만든 주소, 네트워크 호스팅 이름
7. DNS : 도메인을 ip주소로 변환해주는 시스템
많이 들어봤지만 정확한 의미를 잘 알고있는 사람은 초보자중에 많지 않을 것이다.
(이미 알고 있었다면 당신은 쵝오!)
사실 '컴퓨터를 잘한다'라는 의미로 대부분의 일반적인사람들은 엑셀이나 한컴 등 여러 프로그램을 잘 다루면 '컴퓨터를 잘한다'라고 말하는 경우가 대부분이다. 하지만 나는 web통신을 잘 아는 사람이 진짜 컴퓨터를 '잘 다룬다'라고 생각한다.
(지극히 개인적인 의견)
자신 컴퓨터의 ip주소가 무엇인지, 어떻게 다른 컴퓨터와 연결하는지 등 을 알아두면 웹페이지에 '404 Error!!' 등이 나타나도 이젠 당황하지 않을 것이다.
요즘 mac북을 많이 사용하기 때문에 ios 운영체제를 사용하는 사람이 많이 있지만, 데스크탑으로는 한국에서 window사용량이 압도적이기 때문에 window를 기본으로 설명하겠다.
먼저, cmd 창을 켜야한다.
cmd 는 커맨드의 줄임말로, 윈도우 통제 명령어를 작성할 수 있는 기본 프로그램이다.
이 창에서 여러가지 명령어를 작성할 수 있는데 해당 컴퓨터의 ip를 확인하는 명령어를 작성하면 기본적인 정보를 확인할 수 있다.
ipconfig
이 명령어를 작성하면
이런식으로 값이 출력 된다.
여기서 IPv4값을 보면 '.' 으로 나눠진 숫자를 볼 수 있는데 이 값이 해당 컴퓨터의 ip주소이다.
영어로 직독직해하면 고객, 제공자이다. 프로그래밍 차원에서도 크게 다르지 않다. Client는 데이터를 요청하는 쪽이고, Server는 데이터를 제공하는 쪽이다.
보통 한 서버에 여러명의 클라이언트가 존재하기 때문에 1대N 구조로 이루어져있으며, 유명한 웹 페이지는 접속자수가 매우매우 많기 때문에 서버가 다운되지 않게 조심해야한다.
그래서 서버로만 운영되는 컴퓨터는 아주아주 크다.
다들 영화에서나 드라마에서나 이런 무지막지한 육면체가 있는 서버실을 보았을 것이다. 이 무지막지한 것들은 사실 컴퓨터인데, 서버와 데이터만 저장되는 것이다.
공부하다보면 다른 서버에 접근하여 실습하기 보다는 자신의 컴퓨터에만 띄울 수 있도록 창을 만들고, 보여지게 하는 실습을 많이 할텐데, 브라우저 상단에 url을 보면 localhost.~~라고 적혀있을 것이다. local host란 자기자신의 컴퓨터를 말한다.
결국 우리가 웹브라우저를 통해 전달받는 데이터는 무엇인가? 우리는 오직 html 문서로만 응답을 받는다. 이 전달받은 html 문서를 웹 부라우저가 해석하여 보여주는 것이다. 우리가 로그인을 하고, 검색창에 검색을 하고는 행위 등 모든 정보를 서버에게 전달하는 행위는 Request라 칭하는데, html구조에서 name값이 key값이 되고, value속성의 값이 값이 되는 것이다. 그래서 이렇게 전달받은 데이터들을 백엔드 쪽에서 전달받아 데이터를 가공하여 다시 클라이언트에게 html문서로 전달해주는 것을 Response라고 한다.
나무위키 페이지를 보자.
이 페이지는 모든 클라이언트들에게 동일한 화면을 보여준다. 이러한 페이지를 '정적 페이지' 라고 칭하며, 초창기의 대부분의 페이지가 이렇게 정적 페이지로 이루어져있다.
반면 유투브 페이지를 보면 내가 자주 본 동영상과 연관된 동영상이 나온다. 즉, 개인마다 나오는 페이지가 다르다. 이러한 페이지를 '동적 페이지'라 칭하며 이러한 방식을 사용하는 서버는 클라이언트로부터 데이터를 요청받고 WAS 라는 어플리케이션서버를 사용하여 DB와 연동하여 데이터를 처리 및 가공 하고 다시 Server에 해당 클라이언트에 맞는 페이지를 생성하여 응답하는 과정을 거친다.
java 프로그램이 웹 서버에서 자동으로 설치되어 동작하는 프로그래밍을 칭하는 단어이다. 서버상에서 작동하는 java기반의 웹 어플리케이션 프로그래밍 기술이며, servlet은 htttpServlet클래스를 상속받고 .java 확장자를 가진다. 이 프로그램은 멀티쓰레드를 이용하여 동작해서 속도, 메모리 면에서 효율적이며 객체지향적 대규모 web application개발에 적합하다.