0035 External CSS 적용을 위한 <link /> 요소


앞에서 Inline 방식Internal 방식을 모두 사용해봤다. 마지막으로 External 방식을 사용해보아야 하는데 그 전에 <link /> 요소에 대해서 간단히 알아볼 필요가 있다.

    

<link /> 요소는 내용(content)이 없는 빈요소(empty element)이고 <head> 영역에 위치한다. CSS 파일 뿐만 아니라 다른 외부 소스(source)들HTML 문서에 링크하는 역할을 하기 때문에 <img /> 요소처럼 <link /> 요소도 여러 번 계속 사용할 수 있다. 하지만 주로 CSS 파일을 연결하는데 사용된다.

    

이번에는 아래와 같이 작성된 CSS 파일에 링크하는 <link />경우에 한정해서 살펴보자.

    

<link rel="stylesheet" type="text/css" href="myStyle.css" />


1. rel 속성(attribute)

    

rel 속성은 현재 문서와 링크된 자료 사이의 관계(relationship)를 특정하는 속성이다.

    

rel의 속성값 "stylesheet"<link>외부 자료HTML 웹페이지에 적용될 스타일 시트(stylesheet)라는 뜻이다.


2. type 속성(attribute)

   

type 속성은 링크로 연결된 자료의 인터넷 미디어 타입을 특정하는 속성이고 이러한 type에 속성값을 "text/css"로 주면 연결 링크된 외부 자료의 미디어 타입이 외부의 스타일 시트라는 것을 의미한다. 

    

type 속성은 앞서 공부한 순서가 있는 목록 요소 <ol>의 글머리 기호를 설정하는 type 속성과는 전혀 다르다(0028 HTML 순서가 있는 목록의 글머리 기호 바꾸기 참조 ).

    

<link /> 요소에 type 속성을 사용할 때는 반드시 href 속성을 설정해 주어야 한다.


3. href 속성(attribute)

    

href 속성은 링크로 연결할 외부 자료의 위치를 명시하는 속성이다. 속성값은 <img /> 요소의 src 속성과 마찬가지로 절대 경로(URL)상대 경로(relative path)이다. 이에 대해서는 0015 URL 간략하게 이해하고 연습하기0016 이미지를 보여주는 img 요소 01 사용법 및 src 속성을 참조하기 바란다. 

    

주의할 점은 <a> 요소에서 href 속성을 사용할 때, 아이디(id) 이동이 가능했는데 <link /> 요소의 href 속성은 그 특성상 아이디(id) 이동이 허용되지 않는다는 점이다.

    

href의 속성값으로 상대경로(relative path) "myStyle.css"가 주어졌으므로 외부(external) CSS 파일은 myStyle.css라는 파일명으로 스타일이 적용될 HTML 웹페이지 파일과 동일한 디렉터리에 있어야 한다.


Anki 파일


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


Ankilog 파일:  0035 External CSS 적용을 위한 link 요소.apkg







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


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


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


 


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




Cards and Templates

 

 

 

 Checking Your Answer(답을 입력하여 확인하기)

 

YouTube에서 이 기능에 대한 동영상을 볼 수 있다.

 

 

현재까지는 Anki의 카드 앞면에 나타난 내용을 보고 뒷면의 답을 생각해낸 후에 "답 보기" 버튼을 눌러 답을 확인하였다.

 

하지만 답을 직접 타이핑하여 입력하고 이 타이핑한 답을 실제 답과 비교하는 것도 매우 유용할 것이다.

 

이렇게 하고 싶으면 템플릿을 변경하면 된다.

 

 

이런 경우 사례를 갖고 이야기하는게 이해하기 쉬우므로 사례를 들어보자.

 

아래 사진의 카드는 한국의 수도를 묻는 질문에 영어로 'Seoul'이라고 떠올리면 된다.

 

이 때, 해답인 'Seoul'을 떠올리는데에서 그치지만 말고 해당 스펠을 정확하게 쓸 수 있는지 확인해보고 싶을 수 있다.

 

눈으로 일일이 확인하면 되지만 학습을 하다보면 건성건성 넘어갈 수 있으므로 해답을 타이핑하여 입력하면 Anki가 글자별로 틀렸는지 여부를 확인해준다면 얼마나 편하고 정확하겠는가.

 

그렇다면, 우선 현재 공부하고 있는 카드의 왼쪽 하단의 "편집" 버튼을 클릭하면 "현재 카드 편집" 창이 나타난다.

 

이 노트가 "한국어"와 "영어"라는 두개의 필드로만 구성된 노트라는 것을 확인할 수 있다.

 

답을 타이핑하는 방식으로 변경하기 위해서는 카드창의 템플릿을 수정해야 하므로 "현재 카드 편집" 창의 왼쪽 상단에 있는 "카드..." 버튼을 눌러 카드창으로 들어가자.

 

 

 

아래에 카드창이 보인다.

 

앞면 템플릿에는 {{한국어}} 필드만 있고 현재 편집중인 노트의 내용이 앞면 미리보기에 나타나 있다.

 

뒷면 템플릿에는 우선, 카드 앞면 전체를 표시하기 위하여 {{FrontSide}} 필드가 가장 먼저 배치되어 있다.

 

그리 구분선을 나타내는 <hr id=answer>가 보이고 이어서 {{영어}} 필드가 배치되어 있다.

 

 

 

 

영어를 직접 타이핑하여 입력하고 이 해답이 정확한지 확인하려면 앞면 템플릿을 다음과 같이 편집하면 된다.

 

앞면 템플릿

{{한국어}}

{{type:영어}}

 

앞면 템플릿에 {{type:영어}}를 새로 입력하니 앞면 미리보기에는 텍스트 박스와 그 내부에 "exomple"라는 영어가 입력되어 있다.

 

뒷면 미리보기에는 앞면 미리보기의 텍스트 박스 내부에 있는 "exomple"이 실제 답인 "an example"과 같은지 틀린지 글자별로 체크되어 있다.(알파벳이 일치하면 녹색, 틀리면 빨간색으로 배경이 칠해짐)

 

이 "exomple" 부분은 작동하는 방식을 보여주기 위하여 예를 든 것이지 실제 카드에는 이런 표시가 되어 있지 않다.

 

카드창을 닫고 카드가 어떻게 표시되는지 확인해 보자.

 

 

 

카드를 확인해보니 텍스트 박스만 확인될 뿐 카드창의 앞면 미리보기에서 보았던 "exomple"은 보이지 않는다.

 

글 박스에 "Seeul"이라고 일부러 오타를 내고 "답 보기" 버튼을 눌러 답을 확인해 보자.

 

 

 

 

오타를 낸 부분의 스펠만 빨간색 배경으로 처리되어 정확하게 지적된다.

 

해답 부분의 "Seoul"이 두 번 나타나므로 뒷면 템플릿에서 {{영어}} 필드를 삭제해도 될 것으로 판단된다.

 

 

영어 필드를 삭제하니 뒷면 미리보기에 있는 영어필드의 내용도 사라졌다.

 

 

 

{{type:영어}}는 비교할 필드 앞에 'type:'을 추가한 것이다.

 

즉, 해석하자면 type으로 입력된 텍스트와 "영어" 필드의 내용을 비교하라는 의미이다.

 

{{FrontSide}} 필드는 카드의 앞면을 그대로 나타내는 필드이므로 카드 뒷면에도 답을 타이핑한 박스가 그대로 나타난다.(카드 뒤쪽에 {{FrontSide}}가 없는 경우 뒷면에 {{type:영어}}를 추가해야 한다.

 

카드창의 템플릿 조정이 끝났으면, 이제부터 학습할 때, Anki는 답을 입력할 수 있는 텍스트 상자를 표시하고 여기에 답을 입력할 수 있게 된다.

 

텍스트 입력이 끝난 후 엔터를 치거나 "답 보기" 버튼을 클릭하면 Anki는 타이핑한 부분과 답을 비교하여 옳은 부분과 틀린부분을 보여준다.

 

이 때, 텍스트 상자의 크기는 해당 필드의 글꼴 크기가 된다. (따라서 이를 편집하고 싶으면 "필드" 버튼을 누른다.)

 

 

해답을 직접 타이핑하여 입력하는 기능은 해답이 옳았는지 여부만 알려주고 해당 문항의 난이도를 별도로 평가하지 않는다.

 

그러므로 여전히 사용자가 스스로 난이도를 평가하고 해당 버튼을 눌러주어야 한다.

 

 

주의 : 카드에는 오직 하나의 타이핑 입력 비교만 가능하다. 만일 하나의 텍스트에 여러 개의 필드와 타이핑한 것을 비교하려고 하면 실패할 것이다. 또한, 오직 한 줄로만 이루어진 필드에서 작동한다. 여러 줄로 이루어진 필드일 경우 쓸 수 없다.

 

 

Anki"답변된" 섹션과 "올바른" 섹션이 비교정렬 되도록 응답 비교에 고정폭 글꼴을 사용한다. 글꼴을 변경하려면 스타일 지정 섹션의 아래쪽에 다음을 입력하면 된다.

 

code#typeans { font-family: "myfontname"; }

 

고급 사용자는 CSS 클래스 typeGood, typeBad typeMissed를 사용하여 기본적으로 설정된 타이핑한 응답의 색상을 변경 할 수 있다. 글을 쓰는 시점에서는 Anki의 컴퓨터 버전만이 해당 클래스들을 지원한다.

 

 

빈칸 만들기 노트유형의 카드에서도 답을 타이핑하여 입력하게 할 수 있다.

 

아래와 같이 빈칸 만들기 유형의 노트와 카드를 만들었다.

 

당연히, 해답은 위의 사례와 동일하게 'Seoul'이다.

 

답을 타이핑하여 입력하는 방식으로 바꿔보자.

 

일단, 현재 노트를 편집하기 위하여 학습한 창의 왼쪽 하단의 "편집" 버튼을 누르고 "현재 카드 편집" 창이 나오면 "카드..." 버튼을 눌러 이 노트의 카드창을 연다.

 

 

카드창을 열면 빈칸 노트유형의 카드창이 열린다.

 

앞면 템플릿은 {{cloze:내용}}만 있고 뒷면 템플릿은 {{cloze:내용}}에 이어 한 줄 내려가(<br>) {{기타}} 내용이 나타나도록 되어 있다.

 

즉, 앞면 템플릿과 뒷면 템플릿 모두 {{cloze:내용}}이 나타나도록 되어 있다.

 

 

 

기본적인 빈칸 노트유형에서 해답을 타이핑하는 방식으로 변경하려면 앞면과 뒷면의 템플릿에 {{type:cloze:내용}} 추가하면 된다.

 

앞면과 뒷면 템플릿에 {{type:cloze:내용}}을 추가하니 앞면과 뒷면의 미리보기에 텍스트 박스와 해당 텍스트 박스에 "exomple"라고 입력할 경우를 예로 든 사용례가 나타난다.(알파벳이 일치하면 녹색, 틀리면 빨간색으로 배경이 칠해짐)

 

이 "exomple" 부분은 작동하는 방식을 보여주기 위하여 예를 든 것이지 실제 카드에는 이런 표시가 되어 있지 않다.

 

 

 

빈칸 노트유형은 FrontSide를 사용하지 않으므로 빈칸 노트 유형의 앞면과 뒷면의 템플릿에 모두 {{type:cloze:내용}}추가해야 한다.

 

빈칸 노트유형은 하나의 텍스트에서 여러개의 빈칸을 만들 수 있다.

 

이런 경우 해답을 텍스트 상자에 타이핑 할 때, 여러 개의 해답을 쉼표(,)로 구분하여 해답을 쓰면 된다.

 

주의 : 브라우저의 "미리보기" 대화 상자에는 타이핑할 텍스트 박스가 나타나지 않는다. 그래도 학습할 경우나 카드창의 미리보기에는 타이핑할 텍스트 박스가 표시된다.



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



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


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


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



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




The Basics

 

 Card Types(카드유형)

 

앞에서 Anki에서 필드가 무엇이고 노트가 무엇인지 살펴보았다.

 

필드는 개별 정보조각 들이고 노트는 이러한 정보조각들이 어떻게 연관되어 있는지를 규정한 것이다.

 

이제 우리가 공부하고 암기할 카드가 필요하다. 카드는 노트를 기반으로 만든다

 

간단하게 말하면 노트에서 어떤 필드를 카드의 앞면에 표시할지 어떤 필드를 뒷면에 표시할지를 결정하는 것이다.

 

노트를 어떤 방식의 카드로 만들까?

 

프랑스어를 한국어로 어떻게 번역할지 묻는 방식으로 만들 수도 있고, 한국어를 어떻게 프랑스어로 표현할지 묻는 방식으로 만들 수도 있다.

 

어떤 방식으로 묻고자 결정하여 카드의 모양을 결정하는 것, 이러한 청사진이 카드유형이 된다.

 

우리는 정보조각을 어떻게 결합할 것인가를 판단하여 다양한 유형의 노트들을 만들고 각각의 노트유형에 대응하는 카드유형들을 또 만든다.

 

각각의 노트유형에는 다양한 카드유형들이 만들어져 있고, 이제 공부하기 위한 노트들을 추가하면 Anki는 자동적으로 해당 노트유형에 대응하는 카드들을 만들어준다.

 

각 카드 유형에는 질문과 답변의 두 가지 템플리트가 있다.

 

프랑스어 예제에서 우리는 카드를 다음과 같이 나타내기를 원한다.

 

Q : Bonjour

A : 안녕

     Page #12 

 

이렇게 하려면 카드 앞면과 뒷면에 전부 하나하나 타이핑할 수도 있지만 해당 필드만을 별도로 묶어서 노트를 만들고 이를 다음과 같은 카드유형으로 만들도록 할 수도 있다.

 

Q : {{프랑스어}}

A : {{한국어}}<br>

     Page  #{{Page}}

 

중괄호를 이중으로 묶은 것은 필드이름이다.

 

당연히 이 필드들이 해당 노트에 있어야 한다.

 

우리는 프랑스어-한국어-페이지의 필드만 채워서 제공하면 Anki가 카드의 앞면에 프랑스어를 보여주고 "답보기" 버튼을 누르면 프랑스어와 그 번역에 해당하는 한국어와 페이지를 보여준다.

 

즉, 중괄호로 묶인 부분만 실제 정보로 대체되어 나타난다.

 

당연히 자료를 입력할 때, "Page #"을 타이핑할 필요도 없이 모든 카드에 자동으로 추가된다. 또한 <br>도 자동으로 추가된다.

 

 <br>은 다음 줄로 이동하도록 하는 코드인데 이에 대한 자세한 내용은 템플릿 섹션을 참조하라.

 

자, 이번에는 한국어를 보고 해당하는 프랑스어를 떠올리는 종류의 카드를 생각해보자.

 

앞의 예제에서 질문과 답변의 순서가 바뀌었고 페이지 수는 그대로이다. 아래와 같이 보여야 할 것이다.

 

Q : 안녕

A : Bonjour

     Page #12

 

카드의 앞면과 뒷면의 일부가 교체 되었다면 정석대로 다시 해당 노트유형을 만들고 카드유형을 새로 만들 수 있다.

 

카드의 앞면과 뒷면을 설정하여 일일이 타이핑하여 만들면 너무 많은 시간과 노력이 소모된다.

 

우리는 이미 프랑스어-한국어-페이지 라는 필드로 이루어진 노트유형을 만들어 놓았고 다량의 노트도 만들어 놓았다.

 

이를 새로운 카드유형에 필요한 방식으로 또 만들어서 하는 것은 시간낭비이다.

 

따라서 기존의 노트유형과 노트들은 그대로 두고 해당 노트유형의 필드를 이용하여 새로운 카드유형을 만들어 놓으면 동일한 노트에 대하여 이번에는 한국어를 보고 프랑스어를 떠올리는 카드를 간단하게 만들 수 있다.

 

 

Q : {{한국어}}

A : {{프랑스어}}<br>

     Page  #{{Page}} 

 

일단 카드유형이 만들어지면 새로운 노트를 추가 할 때마다 그 노트유형으로 만들어진 카드유형에 해당하는 카드가 자동으로 생성된다.

 

이렇게 카드유형을 사용하면 카드의 형식을 일관되게 유지할 수 있으며 동시에 학습할 카드를 추가하는 데 드는 노력을 크게 줄일 수 있다.

 

이렇게 되면 서로 연관된 카드들이라는 것이 명확해지기 때문에 Anki는 이러한 카드들을 잘 관리할 수 있게 된다.

 

가령, 이러한 카드들이 지나치게 근접해서 나타나서 공부에 효율이 떨어지는 그런 일들을 방지할 수 있게 된다.

 

또한, 오타가 발생하거나 사실적 오류가 발생했을 때 한번에 관련된 모든 카드를 수정하고 업데이트 할 수 있게된다.

 

카드유형을 추가하고 편집하려면 노트를 추가하거나 편집하는 동안 "카드..." 버튼을 클릭하면 된다.

 

카드 유형에 대한 자세한 내용은 카드 및 템플릿 섹션을 참조하면 된다.

 

 

 

 



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



+ Recent posts