1 |
|
==== ==== ==== ==== ==== ====
|
|
1 |
"테스트"는 주로 어떤 것의 성능, 품질, 기능, 정확성 등을 점검하거나 확인하기 위한 과정이나 활동을 의미하는 단어입니다. 이 단어는 다양한 상황에서 사용되며, 그 용도에 따라 몇 가지 의미를 가질 수 있습니다. |
2 |
2 |
|
3 |
|
일단 문서 하나를 생성해보았다.
|
4 |
|
ACL 관련하여 내가 제어할 수 있는 건 없는 것 같다.
|
6 |
|
제목도 수정이 불가능한 것 같다. 다른 걸로 할 걸.
|
|
3 |
* 시험: 학생이나 응시자가 특정 지식이나 능력을 평가하는 시험. 예를 들어, 학교에서 보는 "수학 시험"이나 "어학 시험"이 이에 해당합니다. |
6 |
4 |
|
7 |
|
앞으로 이 문서를 작성할 예정이다.
|
8 |
|
무슨 내용으로 채워나갈지는 나도 모르겠다.
|
|
5 |
* 검사: 제품이나 시스템, 소프트웨어 등이 의도한 대로 잘 작동하는지 확인하기 위한 검사. 예를 들어, 소프트웨어 개발에서의 "단위 테스트"나 "시스템 테스트"가 이에 해당합니다. |
9 |
6 |
|
10 |
|
연습용으로 쓰라고 만든 위키지만,
|
11 |
|
나는 나만의 목적으로 이 위키를 이용할 것이다.
|
|
7 |
* 실험: 과학적인 방법으로 새로운 현상이나 이론을 확인하는 절차. 예를 들어, "화학 실험"이나 "심리학 실험" 등이 있습니다. |
12 |
8 |
|
13 |
|
현재 이 문서를 무엇으로 이용할지 조차 갈피를 잡지 못한 상태이다.
|
14 |
|
일단 이 문서는 메모장 느낌으로 이용하는 방향이 될 것 같다.
|
|
9 |
* 검증: 어떤 사실이나 이론이 옳은지 확인하는 과정. 예를 들어, "가설 검증"이나 "데이터 검증" 같은 작업이 이에 해당합니다. |
15 |
10 |
|
16 |
|
당장은 일기장 마냥 느끼는 생각을 적어놓는 게 전부지만.
|
17 |
|
|
19 |
|
==== ==== ==== ==== ==== ====
|
21 |
|
|
23 |
|
스마트폰을 내려두고 침대에서 일어나 노트북을 켰다.
|
25 |
|
|
27 |
|
이 위키를 이용하여 문서에 어떤 글을 작성할 지 생각해보다가,
|
29 |
|
곧 아래와 같은 의문이 점진적으로 들기 시작하였다.
|
31 |
|
|
33 |
|
떡밥위키는 어느 정도의 진중함을 가지고 만든 위키일까?
|
35 |
|
잠깐의 유흥으로 만들어진 위키라는 생각이 든 순간부터 지워지지 않는 의문이다.
|
37 |
|
|
39 |
|
내가 아무리 이 문서를 작성한다 하여도, 그것이 먼 이후까지 보존되어 있을 것이란 보장은 없다.
|
41 |
|
나는 이 문서의 영속성이 존재하기를 바라지만, 이 위키에 대한 어떠한 신뢰도 가지고 있지 않는 상황이다.
|
43 |
|
|
45 |
|
당연한 논리이다. 위키에 대한 신뢰를 가지지 못하고 불안해 하는 이유는 아래와 같다.
|
47 |
|
- 이 위키가 운영된지 얼마 지나지 않은 시점이라 운영자가 운영에 대해 가지는 의욕이나 경향을 판단할 수 없음.
|
49 |
|
|
51 |
|
쉽게 어떤 인간이 무슨 목적을 가지고 만들었고 어느 정도의 책임을 가지고 운영하는 지를 모르기 때문이다.
|
53 |
|
사실 목적 자체는 위키를 작성하는 연습장으로 쓰라는 명분이 내세워져 있지만, 이 마저도 온전히 믿지는 못하고 있다.
|
55 |
|
|
57 |
|
점점 운영과 관리에 흥미를 잃고 이 위키가 통제를 벗어나는 상황 또는 존재 이의가 없는 상황이 오게 된다면,
|
59 |
|
운영자가 보일 아주 효율적인 대처는 바로 위키의 폐쇄일 것이다. 나는 그런 상황을 앞서서 걱정하고 있는 것이다.
|
61 |
|
|
63 |
|
이 글을 작성하는 현 시점은 새벽이다. 피곤한 머리를 가지고 생각을 하려니 나 혼자의 욕심이 앞서는 것은 아닐까.
|
65 |
|
실제로 나의 이런 생각을 위키 운영자가 어떻게 받아들이던 간에, 괜한 부담으로 다가갈 수 있는 부분이 되진 않을까.
|
67 |
|
|
69 |
|
일단 나만의 해결책은 문서를 작성함과 동시에 나만의 아카이브를 따로 저장해두는 것이다.
|
71 |
|
이 문서가 언젠가 사라지더라도 나에게 모든 내용이 남아있도록 말이다. 그럼 더 이상 타인이 부담을 가질 일은 없으니.
|
73 |
|
|
75 |
|
그렇게 생각하고 나니 가장 큰 변수를 마주하였다. 그건 바로 내 자신이 이 위키에 대해 가지는 흥미이다.
|
77 |
|
결국 나라는 인간도 다를 건 없다. 내가 흥미를 잃어버린다면 지금 이 모든 생각이 무슨 의미를 가지리.
|
79 |
|
|
81 |
|
이 걱정은 미래의 나에게 넘기기로 하고, 난 이만 생각을 마치기로 하였다.
|
83 |
|
|
85 |
|
==== ==== ==== ==== ==== ====
|
87 |
|
|
89 |
|
이 문서에 무슨 내용을 작성할 지 정했다.
|
91 |
|
|
93 |
|
현재 취미로 만들고 있는 토이 프로젝트의 프로그램 코드를 해설하는 내용을 전개할 예정이다.
|
95 |
|
|
97 |
|
이 위키는 문서를 어떻게 작성하는 지 연습하고 위키 엔진의 다양한 시스템을 알아보는 목적으로 만들었다.
|
99 |
|
그러한 목적에 부합하도록 최대한 위키에 대한 시스템과 마크다운 문법을 배워갈 것이다.
|
101 |
|
|
103 |
|
현재 만들고 있는 프로젝트의 개요는 아래와 같다.
|
105 |
|
|
107 |
|
프로그래밍 언어에서 아주 큰 정수 타입을 다룰 때 이용하기 위해 Bigint(Big Integer)라 불리우는 객체가 존재한다.
|
109 |
|
이러한 Bigint의 특징은 시스템의 메모리가 허용하는 한 무한에 가까운 정수를 다룰 수 있다는 점이다.
|
111 |
|
나중에 관련하여 임의 정밀도(Arbitrary Precision)에 대한 개념도 이 문서에 정리해볼 예정이다.
|
113 |
|
|
115 |
|
흔히 Python이라는 언어의 정수 타입이 Bigint라 알고 있을 것이다. 또한 그렇게 널리 알려져 있다.
|
117 |
|
하지만 Python의 Bigint는 정말 큰 수를 다룰 수 있을 지 언정, 진정한 의미에서 임의 정밀도를 구현하지는 못했다.
|
119 |
|
엄밀히 따지면 Pyhton은 최대 효율을 끌어내기 위해 임의 정밀도를 일부로 구현하지 않은 느낌이라 못한 것은 아니다.
|
121 |
|
|
123 |
|
아무튼 이러한 Bigint 객체를 통해 임의 정밀도를 구현하고 무한에 가까운 정수를 연산 가능하게 만든 다음,
|
125 |
|
정보 이론에서 정의된 정보 엔트로피의 한계까지 데이터를 무손실 압축할 수 있는 알고리듬인
|
127 |
|
산술 부호화(Arithmetic Code)를 구현하는 프로그램을 제작할 예정이다. 허프먼 부호화(Huffman Code)는 다루지 않는다.
|
129 |
|
|
131 |
|
이를 구현하기 위한 코드를 위키 문서에 부합하도록 작성하는 것이 나의 목표가 되었다.
|
133 |
|
|
135 |
|
==== ==== ==== ==== ==== ====
|
137 |
|
|
139 |
|
시작하기에 앞서, 나무위키의 Rust(프로그래밍 언어) 문서에서 간단한 코드 블록 부분을 가져와 보았다.
|
141 |
|
코드 블록은 자주 쓸 요소라 중요하다. 참고로 언어가 Rust인 이유는 Rust를 메인으로 코드를 작성하기 때문이다.
|
143 |
|
|
145 |
|
{{{#!html
|
147 |
|
<!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #008800; font-weight: bold">fn</span> main() {
|
149 |
|
println<span style="color: #333333">!</span>(<span style="background-color: #fff0f0">"Hello, world!"</span>);
|
151 |
|
}
|
153 |
|
</pre></div>
|
155 |
|
}}}
|
157 |
|
|
159 |
|
일단 맨 처음으로, 나무위키에서 코드 블록을 그대로 가져와 본 결과물이다.
|
161 |
|
미리보기로 확인해보니 개행이 적용이 되지 않은 모습을 확인하였다.
|
163 |
|
|
165 |
|
미리보기가 아닌 실제 문서에서도 개행이 적용되지 않는 지 직접 확인하기 위해 문서를 저장할 것이다.
|
167 |
|
확인 결과, 개행이 적용되지 않았다. 나무위키에서 그대로 가져왔으나 내용을 확인하면 차이가 존재한다.
|
169 |
|
|
171 |
|
무슨 이유인지 모르겠지만, <pre> 태그가 제대로 동작하지 않음을 확인하였다.
|
173 |
|
Space와 같은 공백 문자는 적용이 되지만, Line Feed와 같은 개행은 적용이 되지 않는다.
|
175 |
|
|
177 |
|
{{{#!html
|
179 |
|
<div style="border:solid gray; border-width:.1em .1em .1em .8em; padding:.2em .6em; white-space: pre-line;">
|
181 |
|
fn main() {
|
183 |
|
println!("Hello, world!");
|
185 |
|
}
|
187 |
|
</div>
|
189 |
|
}}}
|
191 |
|
|
193 |
|
<pre> 태그가 제대로 동작하지 않는 것을 보고 <div> 태그만 남긴 채,
|
195 |
|
속성으로 style="white-space: pre-line;"을 이용해 보았다. 결과는 속성이 적용되지 않는다.
|
197 |
|
|
199 |
|
더불어 <pre> 태그를 지우니 배경의 회색이 사라지는 것을 확인할 수 있었다.
|
201 |
|
|
203 |
|
{{{#!html
|
205 |
|
<div style="border:solid gray; border-width:.1em .1em .1em .8em; padding:.2em .6em;">
|
207 |
|
<pre><span style="color: #008800; font-weight: bold">fn</span> main() {<br>
|
209 |
|
println<span style="color: #333333">!</span>(<span style="background-color: #FFF0F0">Hello, world!</span>);<br>
|
211 |
|
}</pre>
|
213 |
|
</div>
|
215 |
|
}}}
|
217 |
|
|
219 |
|
일단은 급한대로 <br> 태그를 넣어 개행하는 방식으로 처리하였다.
|
221 |
|
<pre> 태그 그리고 "white-space: pre-line;" 속성이 왜 적용되지 않는지는 나중에 알아보도록 하자.
|
223 |
|
|
225 |
|
==== ==== ==== ==== ==== ====
|
|
11 |
따라서 "테스트"는 일반적으로 무언가를 점검, 평가, 확인하는 절차를 의미하며, 그 방식이나 목적에 따라 다양한 형태로 나타날 수 있습니다. |