- 실습용 웹사이트 폴더 만들기
- 먼저, 실습을 위한 가칭 my-root 폴더를 만들고, 이 폴더의 루트에서 웹사이트 진입점이 되는 index.html 파일을 작성하고, 여타 소스 파일들이 들어갈 폴더들을 만들어 웹사이트 구조를 생성한다:
-
index.html에서 같은 폴더 내 home-log.svg에 접근하기:
home-log.svg
-
index.html에서 images 폴더에 위치한 my-image.png 참조하기:
images/my-image.png
←./images/my-image.png
로 해도 같다 - ./는 현재 폴더를 가리킨다! -
my-ex 폴더에 있는 ex.html에서 루트 폴더에 있는 home-log.svg 참조하기:
../home-log.svg
← 폴더 구조상, 한 단계 위에 있는 home-log.svg 파일(두 단계 위라면;../../home-log.svg
) -
my-ex 폴더에 있는 ex.html에서 images 폴더에 있는 my-image.png 참조하기:
../images/my-image.png
← 폴더 구조상, 한 단계 위로 올라가고, 거기서 다시 아래 images 폴더에 있는 my-image.png 파일
my-root ← 내 웹사이트(예컨대, www.sosohan.xyz) 루트 폴더
index.html ← 웹사이트 진입 파일은 항상 루트에 위치해야 한다!
favicon.ico ← 탭 및 제목표시줄 아이콘
home-log.svg ← 루트에 위치한 다른 파일
..
/css ← 루트 폴더 아래 css 파일 보관용 폴더
/js ← 루트 폴더 아래 javascript 파일 보관용 폴더
/images/my-image.png ← 루트 폴더 아래 이미지 소스 보관용 폴더와 그 안에 있는 파일
/my-ex/sample/read.txt ← 루트 폴더 아래 ./my-ex/sample 폴더 안에 있는 read.txt 파일
..
☞ 폴더 및 파일의 이름은 공백이 없는(웹브라우저와 웹서버, 그리고 프로그래밍 언어들은 공백을 각자 서로 다른 방식으로 다룬다!) 영문 소문자로 작성하며(웹서버는 대부분 영문 대/소문자를 구분한다!), 연결된 단어로 이름을 지을 때는 (밑줄보다는)하이픈을 사용하는 것이 좋다 ← 예컨대, 구글 검색엔진은 하이픈은 단어 구분자로 취급하지만, 밑줄은 단어 구분자로 취급하지 않는다!
✓ 위와 같은 웹사이트 폴더 구조에서, 현재 문서를 기준으로 하는 상대경로로 파일에 접근하려면 다음과 같이 할 수 있다:
➥
URL 절대경로로, 곧 http://www.sosohan.xyz
식으로
위와 같은 구조의 웹사이트에 직접 접근할 수 있는데, 이는 http://www.sosohan.xyz/index.html
과 같다:
예컨대, index.html 파일을 포함한 위 웹사이트 구성 폴더 및 파일들이 웹서버에 업로드되면;
이는 웹서버의 루트(호스팅 업체에 따라 다르지만, 보통 www 이나 html, home 등의 이름이 붙어있다)
아래에 자리잡게 되고, 웹사이트의 도메인이 http://www.sosohan.xyz
라면;
웹서버는 URL에서 진입 페이지를 불러오기 위해 루트에서 index.html 파일을 찾게된다
←
단, http://www.sosohan.xyz/my-ex/ex.html
와 같이 명시하여
곧바로 하위 폴더 내 특정 문서로 연결해줄 수도 있다!
░ 웹 코딩을 시작하기 위해서; 우선, 를 다운로드하여 설치하시길 권합니다. 다음, 웹에서의 파일 관리를 위해서는; 웹에 자신이 작업한 결과물을 저장하고 어떤 컴퓨터에서든 사용가능하게 해주는 파일 저장 시스템인 도 활용할 수 있습니다 ← 만약 그 폴더가 웹사이트 파일을 포함한다면, 자동적으로 웹사이트로써 제공됩니다!
░ 본격적인 학습을 시작하기 전에, MDN에 있는 을 찬찬히 한번 읽어보시길 권합니다 - 웹브라우저로 웹페이지를 거닐 때 그 이면에서 무슨 일이 일어나는지에 관해 간결히 설명해주고 있습니다..
- 웹문서의 기본구조
- html은 html 태그 요소들로 웹문서의 구조를 의미론적으로 정의하는 마크업 언어 로서, html 요소 Element 는 태그(및 속성 Attribute), 그 안의 내용 Contents 로 구성되는데, 요소 안에 요소를 중첩할 수도 있다:
-
html 요소의 속성(
속성명= "값"
)은 해당 요소의 동작이나 기능을 정의하는데, html 요소에는 해당 html 태그 자체가 지닌 기본 속성들 외에도, Css 스타일시트를 적용하기 위한 Css 속성(class= "속성명"
) 및 ID 속성(id= "아이디명"
)도 가질 수 있다: -
html 요소의 대부분은 문서를 렌더링하여 해당 요소의 기능을 수행함과 함께, 동시에 태그 내부 컨텐츠를 화면에 표시하는데 쓰이지만,
이미지(
)나 양식 컨트롤() 등 (컨텐츠를 포함할 수 없고, 단지)객체로 바꿔주기만 하는 '빈' 요소들도 있다:
- 기본적으로 단락은 <p> 요소로 둘러싸며, 제목은 <h#>(#은 1 ~ 6) 요소로 넣어주게 된다. <h1>은 페이지 전체를 대표하는 제목이며(따라서, 가급적이면 페이지 당 하나만 사용하는 것이 좋다!), 나머지는 페이지 계층구조에 따라 그 밑으로 배치된다
☞ 위에서 p 요소 란 여는 태그와 닫는 태그, 그 사이에 있는 컨텐츠 (내부에 중첩된 또 다른 요소들도 포함하는)전부 이다!
이곳은 제 소소한 이야기 웹사이트입니다
☞
참고로, 단지 참/거짓 상태만을 나타내는 active, disabled 등의 속성들도 있다:
<input type="text" disabled>
☞
한편, 객체로 변환되지도 않으면서 닫는 태그가 없는(따라서 내부 컨텐츠도 갖지 않는 '빈' 요소들도 있는데,
이러한 '빈' 요소들에는 <br>(줄바꿈)이나 <hr>(수평선) 같이 컨텐츠 자체가 필요없는 태그들도 있고,
또는 <link src="URL">
와 같이 속성을 통해 요소에 대한 정보를 제공해야만 하는 태그들도 있다!
➥ 이 는, html 문서의 전형적인 모습인데, 여기서는 <html>의 전체 구조와 함께 <head> 부분 위주로 살펴봅니다
웹사이트에 파비콘 연결하기
파비콘(브라우저의 북마크나 탭 제목 앞에 표시되는 아이콘)이 선언되어 있지 않으면;
브라우저는 웹사이트 루트에서 favicon.ico라는 파일을 찾는데, <link> 태그를 사용하면 다른 파일(과 위치)를 지정해줄 수 있다.
웹문서에 파비콘을 연결하려면 <link> 태그에서 rel= "icon"
속성값과 함께
href
속성으로 이미지 소스 를 지정해주면 된다:
☞
(주로, 다양한 휴대기기 플랫폼의 특별한 아이콘을 나타내기 위하여)다른 rel
값들도
함께 사용할 수 있는데(예컨대, rel= "shortcut icon"
), 브라우저는 이들 중 가장 적합한 아이콘을 선택한다!
오픈그래프 메타데이터 설정하기
페이스북 같은 소셜 미디어에서 특정 웹사이트로 연결하는 링크를 게시하면 이미지, 사이트 제목, 사이트 설명이 포함된 카드가 표시되는데, 이 카드 전체가 바로 제공한 URL로 연결되는 하이퍼링크이다
소셜 미디어 사이트는 기본적으로 웹문서에서 페이지 제목과 설명을 올바르게 가져오며, 검색엔진과 동일한 정보를 표시해준다. 덧붙여서, Open Graph Meta Data를 이용하면 소셜 미디어에서 내 웹사이트로 연결되는 링크의 모양을 자신이 원하는 방식대로 표시해줄 수 있다!
░ 에서는 Open Graph Meta Data 설정에 관한 표준 규정들을 정의하고 있는데, 트위터는 또 그에 맞는 방식으로 메타 데이터를 설정해주어야 하며(), 다른 소셜 미디어들 또한 트위터와 같은 독자적인 자체 규정을 갖고 있다!