0015 URL 간략하게 이해하고 연습하기


일반적으로 URL이라고 함은 웹 브라우저 주소창에 입력하는 다음과 같은 주소를 말한다.

   

http://www.ankilog.com/index.html


HTTP(HyperText Transfer Protocol)월드와이드웹(WWW)에서 클라이언트와 서버 사이에 정보를 주고받기 위해 만들어진 상호규약(protocol)을 말하고 http://HTTP(HyperText Transfer Protocol)로 통신한다는 것을 의미한다.

    

www.ankilog.com웹 사이트의 이름이다. 

   

/index.htmlindex.html 이라는 파일이 위치한 루트로부터 절대 경로를 말한다.

    

URL에서 절대 경로란 루트 디렉터리를 기준으로 특정 파일이나 페이지를 찾아가는 경로를 말한다. 먼저 루트 디렉터리는 슬래쉬(/)에서 시작하고 디렉터리를 넘어갈 때마다 슬래쉬(/)로 구분한다.

    

즉, 전체적으로 해석해보면 개인 컴퓨터(클라이언트라고 한다.)에서 www.ankilog.com 이라는 웹사이트의 서버에 루트 디렉터리에 있는 index.html 파일을 HTTP로 요청하는 것이다. 이에 서버는 해당 파일을 찾아서 HTTP로 응답할 것이고 파일이 없으면 404 not found 에러를 보여준다.

    

사례를 들어보자. 아래의 그림은 www.ankilog.com 이라는 가상의 사이트 서버 안에 있는 디렉터리와 파일들이다. 즉, www.ankilog.com 이라는 사이트에 관련된 파일은 전부 그림에 있는 main, about, menu, etc, images 디렉터리에 있는 것이다. 



여기서 루트(/) 디렉터리는 보통 main 디렉터리가 된다. (웹 서버 컴퓨터의 루트 디렉터리가 아니라 웹페이지의 루트 디렉터리라는 점을 주의) 그리고 개인 컴퓨터(클라이언트)에서 웹 브라우저 주소창에 http://www.ankilog.com 이라고 입력하면 웹 서버는 이를 아래와 같이 루트(/)인 main 디렉터리에 접속시킨다. 

   

http://www.ankilog.com → http://www.ankilog.com/

슬래쉬(/)가 말미에 자동으로 붙으면서 루트 디렉터리인 main 디렉터리로 접속된다. 


웹페이지는 html 파일이므로 디렉터리에 접속한다는 개념은 이상하다. 하지만  사람들이 어디에 어떤 html 파일이 있는지를 전부 알고 개별 파일을 접속하기는 어렵기 때문에 해당 디렉터리에 접속했을 때 그 디렉터리의 웹페이지 파일을 자동으로 보여주게끔 하는데 이 파일을 디폴트 파일(default file)이라고 부른다. 디폴트 파일은 루트에만 적용되는 것이 아니다. 각각의 디렉터리마다 디폴트 파일이 있다. 

   

디폴트 파일은 기본적으로 'index.html', 'default.htm'이 된다. 이 사례에서는 index.html 파일을 쓰고 있다.

    

즉, 개인 컴퓨터(클라이언트)에서 웹 브라우저 주소창에 http://www.ankilog.com 이라고 입력하면 웹 서버는 main 디렉터리에 있는 index.html 파일을 자동으로 보여준다.

    

위의 그림과 같은 디렉터리 구조를 보이는 웹사이트 www.ankilog.com에서 개인 컴퓨터(클라이언트)가 이 웹사이트의 특정 파일에 접근하려고 할 때 URL을 어떻게 작성해야할지 살펴보자. (구분하기 쉽게 색깔과 폰트를 변경함)

    

main 디렉터리의 index.html

http://www.ankilog.com/index.html 

(index.html디폴트 파일이므로 생략가능)

    

about 디렉터리

index.html → http://www.ankilog.com/about/index.html

(index.html은 디폴트 파일이므로 생략가능)

about.html → http://www.ankilog.com/about/about.html

map.html → http://www.ankilog.com/about/map.html

   

menu 디렉터리

index.html → http://www.ankilog.com/menu/index.html

(index.html은 디폴트 파일이므로 생략가능)

menu.html → http://www.ankilog.com/menu/menu.html

    

etc 디렉터리

index.html → http://www.ankilog.com/menu/etc/index.html

(index.html은 디폴트 파일이므로 생략가능)

etc.html → http://www.ankilog.com/menu/etc/etc.html

    

images 디렉터리

sun.jpg → http://www.ankilog.com/images/sun.jpg

(사진만 브라우저에 나타남)



Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


Ankilog 파일:  0015 URL 간략하게 이해하고 연습하기.apkg






HTML 공부 시작의 변

 

’97대한민국이 사실상 파산하면서 나라가 고꾸라졌다. 그리고 IMF와 함께 나라의 빚을 갚기 위한 일대의 변혁이 시작되었다. 이러한 사태로 대한민국이 뿌리부터 변하는 그 변화의 한 가운데에 있을 때 그러한 변화와는 큰 관계가 없는 군대에 입대하였고 제대할 즈음에는 IMF 구제금융을 털어낸 나라가 다시 엉금엉금 모양새를 갖추면서 부활하고 있었다. 하지만 IMF 이전과 이후로 대한민국은 많은 것이 바뀌었고 그러한 변화와 떨어져 있다가 2년만에 돌아오니 대한민국 사회는 이질적인 느낌을 줄만큼 달라져 있었다.


HTML를 처음 접했던 것은 2000년 군대를 제대한 그 즈음이었다. 당시, 사회는 군대를 들어가기 전 사회와 생활방식과 활기가 많이 달랐다. 그리고 그 배경에는 초고속 인터넷 회선의 보급이 있었고 IT버블로 사람들은 새로운 대박신화에 열광하고 있었다. 인터넷이 보급되면서 홈페이지가 없으면 시대적 흐름에 따라가지 못하는 못난 사람인 것 마냥 사람들은 유행처럼 너도나도 홈페이지를 만들고, 명함에 자신의 홈페이지 주소를 박아놓던 시절이다.

 

전자오락에 미쳐 살던 세대로서 PC방의 등장은 무척 반겼다. 그렇지만 프로그래밍을 배우고 홈페이지 제작을 할 줄 알아야 한다면서 기본적으로 HTML 정도는 해야 한다고 사람들이 입을 모아 말하는 것에는 이상할 정도로 거부감이 들었다. 당시의 나는 컴퓨터와 관련된 일체의 것에 전혀 관심이 없었다. 이러한 내용들이 너무 공허하게 들렸기 때문이다.

 

너도 나도 홈페이지를 제작하지만 그 홈페이지에 올릴 컨텐츠는 없는 시대였다. 사람들은 홈페이지를 만들었지만 내용을 채우는 경우는 드물었다. 그저 사진 한 개만 올라와서 누구누구의 홈페이지라고 표시되어 있는 그런 홈페이지 천지였다. IT 부흥에 따라가는 이러한 태도들이 빈수레처럼 여겨졌고, 개인적으로도 IT를 통해서 무엇을 해보고 싶은 것이 없으니 관심이 있을 리 없다


애석하지만 당시의 나의 선택을 후회한다. IT는 정말 놀아볼만한 공간이기 때문이다. 우리는 인터넷에 포위되어 살고 있다. 이젠 모바일 기기까지 나와서 웹에 접속되지 않은 삶이란 것을 상상하기도 어렵게 되었다. 하지만 IT가 무엇인지 어떻게 작동하는지 잘 모르는 나는 그저 그것을 소비하기에 바쁘다. 잘 몰라도 충분히 즐겁게 소비할 수 있으니 문제는 없다. 하지만 조금 내용을 알면 그저 서비스의 객체가 되는 것에서 벗어나 나를 둘러싼 이 웹의 세계와 적극적으로 연결될 수 있다. 멋진 홈페이지를 보면서 소비자로서는 그저 멋있다는 생각을 하겠지만 조금 알고 보면 디자인과 구조에 대한 영감을 얻을 수 있을 것이다. IT세계의 각종 담론과 발전방향에 대한 논의에도 참여할 수 있을 것이고 스스로의 아이디어를 구현해볼 수도 있을 것이다.


개인적으로는 스스로의 아이디어를 구현한다는 점이 가장 마음에 든다. 그리고 이러한 아이디어를 구현하기 위해서는 그저 프로그래밍만 하면 된다는 점도 마음에 든다. 만일 건축을 하거나 유전자 공학을 하거나 첨단 화학실험을 하려고 하면 자본을 감당할 수 있는 어느 회사에 소속되어서 눈치를 보면서 그것을 구현해야 할 것이다. 하지만 IT는 그렇지 않다. 물론, 대용량의 서버나 수퍼컴퓨터 등이 필요하다면 역시 자본이 필요하겠지만 그럼에도 대부분의 아이디어를 집에서 항상 쓰는 컴퓨터의 수준으로 대략적인 구현이 가능하다. 그리고 구현된 것이 쓸만하다면 바로 시장에 해당 제품을 내놓을 수도 있다. 다른 사람과 아이디어를 공유해볼 수도 있고 같이 예술적인 프로젝트를 해볼 수도 있다. 가능성은 무궁무진하다.


또, 좋은 점은 IT 기술이 어렵지 않다는 것이다. 다른 첨단 기술은 접근하기 위해서 많은 실험과 통찰이 필요하고 고가의 실험장비와 큰 자본이 필요하다. 또한, 자연의 법칙이란 것이 오묘하여 인간의 머리로는 잘 이해하기 어려운 것들도 많이 있다. 하지만 IT기술은 그렇지 않다. 상당히 명백하고 단순하다. 물론, 이 분야도 첨단의 부분에서는 많은 철학적인 고뇌와 성찰이 필요하겠지만 단순히 프로그래밍을 배워서 필요한 것을 구현하는 것은 단순한 구현과 검토의 반복일 뿐이다. 접근성도 좋다. 집에서 항상 사용하는 컴퓨터에서 개발환경을 구축하기만 하면 된다. 오픈소스 소프트웨어를 사용하면 비용도 거의 들지 않는다. 구현 결과는 바로바로 알 수 있고 수정이 가능하다. 


마지막으로는 나이가 들어도 할 수 있다. 육체적인 힘을 많이 쓸 필요도 없고, 여러 사람과 긴밀하게 협업을 할 필요도 상대적으로 적다. 취미라면 혼자서 만들어보면서 놀 수도 있다. 늙어서 몸이 움직이지 않더라도 자판을 두들길 수는 있지 않을까? 그러니 늙어서 잘할 수 있는 것을 지금부터 구축해놓으면 잘 놀다 갈 수 있지 않을까라고 생각하는 것이다치매예방도 될 것이고 말이다.

 

나이 들어서 공부하는 것이니 너무 어렵게 가장 기초적인 내용부터 컴퓨터의 구조와 설계부터 파악해서 쌓아올리는 것은 바람직하지 않을 것 같다. 원래, 본인의 취향은 가장 기초적인 것부터 구축해서 올리는 것이지만 너무 많은 시간과 노력이 필요할 것 같다. 그래서 가장 쉽게 접할 수 있고 많이 활용할 수 있는 것부터 익혀서 천천히 심화시켜 나가는 방식으로 IT 세계를 탐험해보려고 HTML을 IT 공부의 시작으로 정했다.

 

공부하는 방식은 당연히 Anki를 적극 활용하는 방식으로 하려고 한다. 어차피, HTML관련 교재나 문서는 웹상에 풍부하게 있으니 다양한 문서들을 참조하여 공부를 해나가고 그 공부 결과를 요약 정리한 내용을 블로그에 올리고자 한다. 그리고 중요한 내용을 학습할 수 있는 Anki파일을 같이 첨부해서 올릴 계획이므로 같이 공부하고 싶은 사람은 Anki파일을 받아서 같이 공부했으면 좋겠다.

+ Recent posts