0031 약어(character entity)로 특수문자 표시하기


HTML에서 예약된 문자(reserved characters)들은 어떤 기능을 하도록 되어 있기 때문에 해당 문자를 그래도 사용하면 브라우저는 이를 읽어서 엉뚱한 행동을 할 수 있다. 

    

가령, 다음과 같은 내용을 보자 <p>요소 안에 <html>이라는 문구를 넣고 싶다. 이때, <html>이라는 문구는 말 그대로 글자 그대로 화면에 보이길 바라면서 쓴 문구다. 하지만 실제로는 해당 문구는 브라우저 화면에 표시되지 않는다. 

    

<p>루트 요소인 <html>요소를 누락하는 실수를 저질러선 안된다.</p>


그러면 아래와 같이 <html>이라고 작성된 단어만 사라진다.



위의 경우에는 브라우저가 꺽쇠(< >)와 html이라는 단어의 조합문자가 아닌 태그라고 판단한 것이다.

    

브라우저는 오류가 있더라도 최대한 되는 방향으로 해석하기 때문에 HTML 태그가 정확하지 않아도 표시가 된다. 이 경우에는 그냥 <html>이라고 쓴 부분이 표시되지 않고 끝났지만 복잡한 웹 페이지가 될 수록 어떤 문제가 발생할지 알 수 없다. 특히, 브라우저는 그냥 텍스트도 표현되기 때문에 제대로 HTML 태그가 반영된 것인지 알 수 없는 경우가 많아 문제가 발생하더라도 오류가 어디서 생긴 것인지 알기 어려운 경우가 많으므로 항상 기본을 지켜 작성하도록 해야 한다.


이렇게 예약된 문자들을 오류 없이 안전하게 사용하려면 약어(character entity)를 사용해야 한다. 또한, 이 약어를 사용하면 키보드에 없는 다양한 특수 문자들도 사용할 수 있어 알아두면 매우 유용하다.

    

약어약어명(entity name)이나 약어값(entity number)으로 다음과 같은 형식으로 구성되어 있다. 

    

&entity_name;

or

&#entity_number;


이제 자주 사용되는 필수적인 몇 가지 약어명만 익혀보고 나머지는 필요할 때마다 찾아보는 것이 좋을 것 같다.

     

< : 약어명(&lt; less than)

> : 약어명(&gt; greater than)

& : 약어명(&amp; ampersand)

" : 약어명(&quot; double quotation mark)

' : 약어명(&apos; apostrophe)


약어명은 보통 해당 기호의 영문명을 축약해놓은 버전이라 기억하기 쉽지만 해당 약어명을 지원하지 않는 브라우저가 종종 있을 수 있다. 반면, 약어값은 기억하기 어렵지만 거의 대부분의 브라우저가 약어값을 지원한다.

    

마지막으로 약어명대소문자를 구분한다는 점을 유념하자.


Anki 파일


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


Ankilog 파일:  0031 약어(character entity)로 특수문자 표시하기.apkg





0030 HTML 주석(comment) 달기


다른 모든 프로그래밍 언어처럼 HTML에도 주석(comment)을 달 수 있다. 

    

주석(comment)은 개발자가 작성한 코드에 부가하여 이런 저런 설명을 지칭하는 것으로 브라우저가 해당 텍스트를 실행하거나 표시하지 않게끔 만들어진 형식으로 작성된 텍스트로 나타난다. 가령, 이 코드를 작성했을 때 어떤 생각으로 작성했는지 본인의 기억을 환기하거나 다른 사람이 코드를 봤을 때 이해하기 쉽도록 주석(comment)을 붙인다.

   

HTML에서 주석은 다음과 같은 형식으로 작성한다. 

    

<!-- 여기에 이런 저런 주석을 단다. -->


주석은 꼭 1개의 행에 있어야할 필요 없이 여러 행에 걸쳐서 주석으로 처리할 수 있다. 

    

다음과 같이 0030.html을 작성하고 실행해보자. 

    

<!DOCTYPE html>

<html>

 <head><title>주석(comment)</title></head>

 <body>

   <h3>주석 처리된 문단</h3>

   <!--

    <p>

    이 문단은 주석 처리 되었다. <br />

    그래서 보이지 않을 것이다.

    </p>

   -->

   <h3>주석 처리되지 않은 문단</h3>

    <p>

    이 문단은 주석 처리가 되지 않았다. <br />

    그래서 보일 것이다.

    </p>

 </body>

</html>


실행해보면 아래와 같이 주석 처리된 문단이 전혀 나타나지 않는다.

   



HTML 문서유형선언(Document type declaration)에서 한 번 설명한 것처럼 왼쪽 꺽쇠(<) 다음에 느낌표(!)가 오면 요소(element)가 아니라는 뜻이다. 오른쪽 꺽쇠(>)에 붙는 것이 아니란 점에 주의하자.

    

주석은 오직 개발자가 소스코드를 볼 때에만 의미가 있다. 브라우저는 주석 처리된 문장을 표시하지도 않고 내부적으로 어떤 처리도 하지 않으며 완전히 깔끔하게 없는 것으로 무시한다. 

   

브라우저가 주석을 완전히 깔끔하게 무시하기 때문에 디버깅을 할 때 이러한 주석을 활용하면 매우 유용하다. 가령, 에러를 찾기 위해 코드를 하나하나 뒤져볼 때 해당 코드를 지우지 말고 주석 처리하면 임시적으로 그 코드를 분리시킬 수 있어 에러가 어떤 코드에서 시작된 것인지 찾기 쉬워진다.

    

그 외에도 주석을 잘 달면 가독성이 좋아지고 다른 사람이 해당 코드로 다시 작업을 할 때에도 접근하기 쉬워진다. 게다가 이러한 주석을 이용하여 자동으로 매뉴얼 등의 문서를 바로 만들어주는 프로그램도 있어 주석이 충실하면 문서화를 쉽게 할 수 있다. 이렇듯 주석을 충실하게 달았을 때 이점이 상당하므로 항상 충실하게 주석을 다는 습관을 갖도록 하자.


Anki 파일


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


Ankilog 파일:  0030 HTML 주석(comment) 달기.apkg





0029 정의 목록(description list) 요소 다루기


HTML에는 순서가 있는(ol), 순서가 없는(ul), 정의(description) 목록(list)이 있다. 앞서 순서가 있는 목록순서가 없는 목록은 다루었으니 이번에는 정의 목록(list)을 다룰 차례다.

    

정의 목록(description list)은 용어나 명칭을 그 설명과 함께 제시한 목록(list)를 말한다.

     

정의 목록(description list) <dl> 요소로 목록을 정의하고 <dt> 요소로 용어나 명칭을 정의하며 <dd> 요소에 구체적인 설명을 작성하게끔 되어 있어 함께 사용해야만 각자 제역할을 할 수 있도록 만들어졌다.

   

dl = description list

dt = description term

dd = description description


사용 형식은 아래와 같다.

     

<dl>

 <dt>설명이 필요한 용어나 명칭</dd>

  <dd>용어나 명칭에 대한 설명을 서술</dt>

 <dt>설명이 필요한 용어나 명칭</dd>

  <dd>용어나 명칭에 대한 설명을 서술</dt>

</dl>


다음과 같이 영단어의 내용을 정의 목록으로 만들어 0029.html

   

<dl>

 <dt>description /dɪˈskrɪpʃən/</dt>

  <dd>기술하기</dd>

  <dd>서술하기</dd>

 <dt>definition /dèfəníʃən/</dt>

  <dd>정의</dd>

  <dd>한정</dd>

  <dd>선명도</dd>

</dl>


실행 결과는 다음과 같다. 



<dl>, <dt>, <dd> 요소 모두 블록 요소인 것을 알 수 있다. 

    

정의 목록이라는 명칭은 HTML 4.01까지 사용되던 definition list에서 나온 명칭이고 HTML 5부터는 definition list가 아니라 description list로 이름이 바뀌었다.

    

description list를 한국어로 단순 번역하면 서술 목록이나 설명 목록으로 번역하게 되는데 정의 목록이라는 말과 큰 차이가 없고 그 내용을 살펴보면 오히려 정의 목록이라는 말이 더 잘 어울리는 것 같다. 또, 여전히 많은 사람들이 이 목록 요소를 정의 목록이라고 부르고 있으므로 description list를 definition list에서와 동일하게 의 목록이라고 지칭한다.


Anki 파일


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


Ankilog 파일:   0029 정의 목록(description list) 요소 다루기.apkg






0003_HTML에 대한 간단한 소개

 

정식 명칭 : Hyper Text Markup Language

 

월드와이드웹(www)에서 웹페이지를 부호화하고 Hyper Text 링크를 제공하는 언어

 

Markup의 측면과 Hyper Text의 두 가지 측면이 있음

 

Markup적인 측면에서 머리말, 문단, 도표 등의 구조를 제공하고

 

Hyper Text적인 측면에서 앵커웹주소(URL)을 가리켜 다른 웹페이지의 링크를 제공한다.


 <단어 공부>


URL 웹주소(Universal Resource Locator)




Anki로 공부하시려면 아래의 파일을 다운받아 공부하시면 됩니다.


Anki 학습 파일 2가지 버전


0003_HTML에 대한 간단한 소개(기본_질의_응답_형식).apkg

0003_HTML에 대한 간단한 소개(빈칸_채우기_형식).apkg








0002_웹의 구조와 HTML의 역할



간략한 웹의 구조는 다음과 같다.




웹페이지 관련 파일들을 보유하고 있는 웹서버는 인터넷에 연결된 컴퓨터로 웹브라우저의 요청에 따라 파일을 제공한다.


웹브라우저는 웹서버에 HTML 페이지를 요청하고 요청에 대한 응답을 받아 화면에 보여준다.


이러한 웹의 구조하에서 HTML의 역할은 웹페이지의 구조와 내용을 브라우저에게 알려주는 것이다.



Anki로 공부하시려면 아래의 파일을 다운받아 공부하시면 됩니다.


Anki 학습 파일 : 0002_웹의 구조와 HTML의 역할.apkg







문서는 Anki 2.0 유저 매뉴얼을 번역한 문서입니다.


기본적으로 구글 번역을 통해서 초벌을 번역하고 이를 수정하는 방식으로 번역했습니다. 


또한, 본문에 충실한 직역보다는 매뉴얼을 숙지하기 쉽도록 의역 위주로 번역하였습니다.


 


Anki 매뉴얼 전체 개요 페이지 가기




Cards and Templates

 

 

 

 Other HTML(HTML 사용)

 

템플릿에 HTML을 사용할 수 있다.

 

즉, 인터넷 웹 페이지를 만드는데 사용되었던 모든 레이아웃을 카드에 적용해볼 수 있다는 것이다.

 

표(table), 목록(list), 이미지, 외부 페이지로의 링크 등등 모든 것을 해볼 수 있다.

 

가령, 표를 이용하면 현재 카드의 앞면과 뒷면이 상단과 하단으로 나타나는 것을 왼쪽과 오른쪽으로 표시되도록 레이아웃을 변경할 수 있다.

 

 

 

HTML의 모든 기능을 다루는 것은 이 매뉴얼의 범위를 벗어나므로 여기에서 줄인다.

 

하지만, 더 많은 것을 배우고 싶다면 HTML을 사용할 수 있는 훌륭한 입문서가 웹에 많이 있으므로 참조를 바란다.

 

(사례를 들어보고 싶지만 아직 HTML을 몰라서 사례를 들지 못하네요..ㅜㅜ)



Anki 매뉴얼 전체 개요 페이지 가기



+ Recent posts