메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

게오르그의 Brave GNU World 제 44 호

한빛미디어

|

2003-04-22

|

by HANBIT

8,747

저자: 게오르그 (Georg C. F. Greve), 번역 Brave GNU World 한국어팀(xenus@gnu.org)

멋진 GNU 세상을 찾아주셔서 감사합니다. 우선 여러분들이 한동안 멋진 GNU 세상을 웹 페이지나 잡지에서 찾지 못하게 되었던 점을 사과 드립니다. 여기에 대해 무척 괴롭게 생각하고 있습니다.

자의에 의한 것은 아니었지만 이러한 공백기간이 서로 다른 내용들을 비교해보고 조합을 할 수 있는 좋은 기회가 되기도 했습니다.

Gnuzza (CryptChat)

Timo Schulz가 만든 Gnuzza(ChryptChat)[11]는 베타테스트 중이지만 이미 사용되고 있습니다. 프로젝트를 시작하게 된 것은 그의 친구가 윈도우와 GNU/리눅스에서 사용할 수 있는 보안 채팅 프로그램을 부탁해서 입니다.

Gnuzza는 강력한 암호기법을 갖춘 "P2P(Peer-to-Peer)" 채팅 프로그램으로, 이를 사용해서 사용자들은 자신의 사생활을 보호하면서 채팅을 할 수 있습니다. 또한 암호화된 채널을 통해 파일을 서로 주고 받을 수 있습니다.

GNU 암호화 라이브러리인 libgcrypt를 기반으로 하여[1], Gnuzza는 Diffie Hellman key exchange (1024에서 4096 비트까지) 뿐 아니라 대칭 알고리즘의 3DES, BlowFish, Twofish, CAST5, Rijndael을 지원합니다. 그래도 Gnuzza는 비대칭 암호화를 기본으로 사용합니다. 때문에 사용자들은 일반적인 암호가 필요 없습니다. 이 경우 사용자 확인은 OpenPGP 공개키(compliant key)를 이용하여 쉽게 이루어집니다.

Gnuzza는 표준 C 언어로 만들어졌고 ncurses가 사용자 인터페이스를 맡아 자원을 효율적으로 사용하고 빠릅니다. 대부분의 GNU/리눅스 배포본이 Gnuzza의 의존 라이브러리를 기본으로 설치하고 있고, 윈도우에선 필요한 DLL들이 최소화되어 있어 두 운영체제 모두에서 사용할 수 있습니다.

ncurses를 사용하기 때문에 프로그램은 텍스트 기반의 사용자 인터페이스를 가지지만, 어떤 사용자는 진짜 그래픽 사용자 인터페이스를 원할지도 모릅니다. 이를 위해 Timo는 GTK+/그놈/KDE 그래픽 사용자 인터페이스를 고려하고 있습니다. (하지만 자신도 GTK+를 해본적이 없기 때문에 이 부분을 맡을 자원자를 찾고 있습니다.)

앞에 말한 것 이외에 버그를 찾아서 수정하는 것이 그가 많은 노력을 기울이고 있는 부분입니다. 여러분이 이 프로그램을 사용해볼지 아닐지에 대해 고민하고 있다면 이 프로그램이 가진 여러 확장된 기능들과 탄탄한 기본 설정들에 대해 생각해볼 수 있습니다. 그러니 베타 버전의 소프트웨어를 사용한다는 사실 자체에 거리낌이 없다면 Gnuzza 사용에 대해 주저하지 않으셔도 됩니다.

그렇지만 윈도우에서 사용할 생각이 있는 분들에게 이 프로그램의 보안을 너무 믿지 말라는 점을 주의하라고 말씀드리고 싶습니다. 왜냐하면 모든 연결들의 강도가 가장 약한 연결 정도 밖에 되지 않기 때문입니다. 때문에 윈도우의 Gnuzza로 전달되는 자료들 중 보안이 유지된 것은 운영체제 자체에서 서드 파티로 전달되는 것 만을 의미할 수도 있습니다.

좀 더 노골적으로 말해, 판지로 지은 집에 철문을 다는 것은 별 효과가 없다는 말입니다.

GNU Aspell

일반적으로 대부분의 사용자에게 유용한 애플리케이션을 꼽으라면 분명 자동 맞춤법 검사기가 포함될 것입니다. GNU Aspell[2]은 그런 프로그램의 하나이고 2002년 8월부터 GNU 프로젝트의 일부분이 되었습니다.

Aspell 프로젝트가 시작되기 전 자유 소프트웨어인 맞춤법 검사 프로그램은 International Ispell[3] 하나 뿐이었습니다. 자연스럽게, Ispell 은 대부분의 Unix 머신에 상당히 널리 퍼지게 되었지만 Ispell 이 추천하는 맞춤법은 독점적인 맞춤법 검사기들에 의한 것보다 매우 수준이 낮았습니다.

이러한 이유때문에 쓰여진 단어의 영어 발음에 가깝게 하는 것을 가능하게 하는 "Lawrence Philips" Metaphone Algorithm"에 기반을 두고, Kevin Atkinson은 1998년 Aspell에 대한 작업을 시작했습니다. 그것은 1998년 9월에 Kspell이라는 이름으로 처음으로 발표되었지만, KDE 맞춤법 검사기 프로젝트 또한 Kspell이라고 불리었으므로 이름을 Aspell로 바꾸었습니다.

그 후로 몇 년 동안, Kevin은 자신의 시간 중 많은 부분을 Aspell의 집중적인 개발에 쏟았습니다. 갖가지 구상들이 시도되었고, 철저히 검증되었으며 때로는 버려지기도 했습니다. 그는 시스템에 존재하는 모든 맞춤법 검사기에 대한 하나의 일반적인 인터페이스를 만들려고 노력했는데, 그 이름은 Pspell이었습니다. 안타깝게도 Pspell은 여러 사람들이 공동으로 작업을 하기에는 지나치게 복잡했고 버전 0.5 이후로 Aspell 속으로 사라져 버렸습니다.

그밖에 그가 많은 노력을 들인 것 중에는 Ispell에 제공되는 단어 목록에 기반을 둔 보다 좋은 단어 목록을 생성해내는 것도 있습니다. 매우 꼼꼼히 영어 목록을 영국식, 미국식 그리고 캐나다식의 맞춤법로 분리했으며 그 작업의 결과 또한 별도로 발표되었습니다.[4]

2002년 8월에 GNU Aspell 0.5 의 발표 이후로, Aspell은 현재 Ispell을 대체하려는 노력을 하고 있으며 특히 GNU/Linux 배포판에 대해 특히 그렇습니다. Aspell의 매우 인상적인 행보의 기록을 볼 때 이것은 단지 시간문제에 지나지 않는다고 생각됩니다.

GNU Aspell은 훌륭한 ncurses 사용자 인터페이스를 통해 맞춤법 검사 프로그램으로 직접 사용될 수 있을 뿐만 아니라 다른 프로그램들에 의해서 라이브러리로도 링크되어 사용될 수 있습니다. 그리고 GNU Aspell이 추천하는 맞춤법들은 Ispell, 넷스케이프 4.0 이나 마이크로소프트 워드 97이 추천하는 맞춤법보다 훨씬 뛰어납니다. GNU Aspell이 이들 프로그램들보다 얼마나 더 뛰어난지를 구체적으로 입증하기 위해 Kevin은 GNU Aspell web page[2] 상에 Aspell을 이용해 맞춤법을 테스트 해 볼 수 있는 환경을 개발했습니다.

테스트가 영어에 대해서만 이루어진 것으로 보이지만 다른 언어에 대한 단어 목록도 있습니다. 이러한 언어들에 대해서는 유사한 테스트를 기꺼이 수행해줄 해당 언어의 원어민을 찾는 것이 필요합니다. 반면 평범한 사용자도 그 결과를 개선시킬 수 있습니다. 왜냐하면 GNU Aspell은 사용자들이 만들어내는 실수로부터 발전해 나가기 때문입니다.

하나의 프로그램으로 사용되든 라이브러리로 링크되든지 상관없이, GNU Aspell은 다중-프로세스 기능이 있습니다. 한 사용자의 개인 사전은 그 사용자의 모든 Aspell 프로세스에서 이용 가능하고 변경사항들은 자동으로 GNU Aspell 프로세스에 전달됩니다. 하지만 어떤 사용자든지 여러 개의 개인 사전을 가질 수 있습니다.

이러한 확장 기능을 모두 이용하면서 적절한 메모리 사용량을 유지하려면 한 시스템에서 돌아가는 모든 GNU Aspell 은 일반/공통 사전을 공유해야 하는데 이 때문에 GNU Aspell이 확장된 기능에 대해 여전히 지불해야 하는 대가는 Ispell 보다 많은 메모리 사용량입니다.

이는 아마도 Ispell이 소위 "Affix Compression"을 지원하고 현재는 GNU Aspell이 그것을 지원하지 않는 상황때문에 일어나는 것일 수도 있습니다. 접사 압축(Affix Compression)은 많은 단어들이 서로 다른 접사와 결합된 하나의 기본 단어로 이루어지기 때문에 효과가 있습니다. 그래서 최종 단어는 하나의 기본 단어에 삽입사, 접두사 혹은 접미사가 결합됨으로써 만들어집니다.

접사 압축이 적용된 단어 목록은 기본 단어와 가능한 접사들을 포함합니다. 예를 들어 영어 단어인 "alarm alarms alarmed alarming"는 "alarm/SDG"로 압축될 수 있습니다. 특히 접사가 아주 많이 붙는 언어에서(예를 들면 독일어) 이것은 몇 가지 상당한 차이점을 만듭니다.

GNU Aspell이 다중-프로세스 환경에 맞도록 만들어졌지만 개발자들은 아직까지는 "Thread Safe" 한 것으로 생각해서는 안됩니다. 이것을 구현하는 것은 현재 우선순위 목록에서 상당히 높은 위치에 있습니다.

다른 할 일로는 메뉴얼 작업, GNU 코딩 표준에 맞게 수정하기, UTF-8 지원 완성, 동적으로 적재가능한 필터와 C++ 인터페이스를 작성하는 것 등이 있으며 ispell.el EMACS 모듈을 커스터마이징 하는 것 또한 아직까지 해야 할 일 중에 하나입니다.

그리고 Kevin 이 마지막으로 계획하고 있는 것은 Kevin Hendricks 가 OpenOffice 의 언어 컴포넌트(lingucomponent) 용으로 작성한 접사 압축기능을 GNU Aspell 에 적용하는 것입니다.

하지만 GNU Aspell에 대한 상당한 몇몇 작업이 여전히 진행중이라고 하더라도 이것이 Aspell을 사용하는 것을 벌써 막아서는 안됩니다. 왜냐하면 버전 0.50.2 이후로 GNU Aspell은 현재 사용중인 다른 맞춤법 검사기들과 확실히 같은 수준에 이르렀기 때문입니다. 그렇지만 Kevin은 아직까지는 이것을 버전 1.0으로 생각하지 않는데 이처럼 자신이 만든 프로그램에 쉽사리 만족하지 않는 것은 자유 소프트웨어 개발자들에겐 다소 전형적인 모습입니다.

Kevin Atkinson이 GNU Aspell에 대한 모든 일을 사실상 혼자서 했다는 사실에 주목해야 합니다. 그는 분명히 도움을 고맙게 여길 것입니다. 만약 여기저기에 널리 퍼져서 많은 사용자들이 오랫동안 사용함으로써 여러분의 이름을 영원히 기억하게 만들고 싶다면 이는 분명 좋은 기회입니다.

멋진 GNU 세상을 오랫동안 읽어온 독자분들은 현재까지 GNU Aspell이 GNU 프로젝트의 일부분이므로 자유 소프트웨어인 것은 확실하지만 지금까지 그에 대한 라이센스 조건에 대해 아무런 언급이 없었음을 눈치챘을 것입니다.

GNU Aspell은 처음에 Kevin Atkinson에 의해서 GNU 약소 일반 공중 사용 허가서 (LGPL) 하에 발표되었습니다. 합법적인 유지와 그를 통해서 프로젝트를 오랜기간 존속시키기 위해서 Kevin은 자신의 권리를 북미 자유 소프트웨어 재단에 양도하여 그 이익에 대한 수익자로 지명했습니다.

북미 자유소프트웨어 재단은 GNU Aspell을 GNU 일반 공중 사용 허가서로 발표하는 것이 유용하다고 생각하지만 아직 GNU 약소 일반 공중 사용 허가서로 발표하고 있습니다. 이는 Kevin이 그렇게 하는 것이 자신에게 매우 중요하다고 생각하기 때문입니다.

이러한 사실의 배경에 대한 몇 가지의 추론은 흥미로울 뿐만 아니라 중요하기도 합니다. 그래서 저는 이러한 문제들에 대해서 조금 더 자세히 언급해 보려고 합니다.

GPL or LGPL?

Kevin Atkinson은 GNU Aspell이 GNU/Linux와 다른 자유 운영 시스템을 위한 사실상 유일한 맞춤법 검사기가 되기를 원합니다. 특히 OpenOffice, Mozilla와 같은 프로젝트에서 GNU Aspell을 적용하는 것이 좋을 것 같다고 생각합니다.

OpenOffice와 Mozilla에서는 독점 부산물들이 있기 때문에 GNU Aspell이 GNU GPL 하에서 허가된 경우 이 프로젝트들에서 GNU Aspell을 전혀 사용하지 않을 수도 있다는 점을 염려하고 있습니다.

물론 독점 부산물들이 외부 프로그램 실행을 통해 GNU Aspell을 사용할 수 있습니다. 이것은 덜 효율적이지만 가능한 대안은 될 수 있을 것입니다.

그래서 Kevin은 GNU Aspell이 가능한 많이 확산되기를 원하지만 GNU 일반 공중 사용 허가서 하에서의 GNU Aspell이 독점 부산물을 가지는 프로젝트들에서 많은 문제점을 일으킬 수 있다는 것에 걱정하고 있습니다.

의심의 여지 없이, 철자 검사를 하는 모든 사용자들을 자유롭게 해주기 때문에 많은 사람들이 GNU Aspell을 채택한다는 것은 아주 좋은 일일 것입니다. 하지만 이것은 지금의 논점과는 어긋나는 이야기입니다.

GNU 일반 공중 허가서가 만들어진 기본 이해 중 하나는 몇몇 사람이 손해를 보더라도 이익을 보는 사람들이 항상 있어야 한다는 것입니다. 그리고 여러분은 자신의 자유를 전적으로 회사와 관리자들의 능력에만 의지할 순 없습니다.

간단히 말해, 자신의 자유를 지키지 못하는 사람들은 자유를 잃을 수 밖에 없다는 것입니다.

GNU 약소 일반 공중 사용 허가서(LGPL)는 하나의 중요한 문제에 있어서 자유의 보호를 제한하는 GPL의 수정본입니다. 이것은 독점 응용 프로그램과 코드를 연결할 수 있도록 허용하는 것입니다.

과거에는 이것은 종종 유용하거나 혹은 필요했고, GNU C 라이브러리와 같은 핵심적인 요소들은 LGPL 하에서 공개되었습니다.

자유 소프트웨어는 많은 장점을 가지고 소프트웨어의 새로운 전형을 제공합니다. 몇몇 회사들에 의해 자행되는 빠르게 "약탈하는" 이익이 소프트웨어의 특징이 아닙니다. 보상과 자유 소프트웨어의 장점들은 중장기적인 것입니다.

많은 돈을 쓰면서, 독점 소프트웨어는 단기적인 관점에서 때때로 자유 소프트웨어에 대해 문제를 만들어냅니다. 독점 소프트웨어를 보호하거나 독점을 유지하기 위해 자유 소프트웨어를 쫓아내려고 하거나 금지하는 것은 나중에 원래대로 돌려놓기가 매우 힘들 것입니다.

소프트웨어도 경제적, 문화적, 사회적, 도덕적인 요소를 가지고 있다는 것을 이해하지 못해 단기적이고 기술적인 기능 위주로 소프트웨어를 선택할 경우, 이러한 위험은 더 커질 것입니다. 자유 소프트웨어의 사용을 시도하던 사람들 중 보다 큰 이념을 이해하지 못하는 사람들은 독점 소프트웨어로 바꿀 것입니다.

자유 소프트웨어 세계를 살펴보면 어떤 사람은 자유 소프트웨어 정신을 가지고 있고, 또 어떤 사람은 오픈 소스에 더 가까운 생각을 가지고 있다는 것을 볼 수 있습니다. 이것은 자유 소프트웨어의 세계에서도 이것을 완전히 이해하지 못했다는 것을 보여줍니다. 하물며 자유 소프트웨어 그룹에 속하지 않은 사람들은 더욱더 이해하지 못할 것입니다.

이 문제를 이해하는 것이 상식이 아닌 이상, 자유 소프트웨어는 "독점 소프트웨어는 보호받지 않거나 약하게 보호받는 자유 소프트웨어 거의 전부를 뒤집어 엎을 수는 있겠지만 그 반대는 성립되지 않는다."라는 문제에 부딛히게 될 것입니다.

자유 소프트웨어의 불충분한 보호는 불균형적으로 독점 소프트웨어를 애용하도록 합니다. 이것은 자유 소프트웨어가 독점 소프트웨어에 대해 단기간적인, 기술적 장점을 가지는 것을 어렵게 만듭니다.

이전에도 언급했듯이, 자유 소프트웨어는 새로운 전형입니다. 이것은 새로운 규칙과 구조를 갖는 새로운 시장을 만듭니다. 모든 시장은 자신의 규칙을 가지고 있으며 이것은 별개의 그리고 시장 전체를 보호하기 위해 이 규칙을 지지하고 보호하는 모든 관계자에게 중요한 것입니다.

자유 소프트웨어 시장은 성립단계에 있어 아직은 초창기입니다. 대부분의 사람들이 규칙과 구조를 받아들이고 있지만 참여자의 대다수는 아직까지 규칙과 구조를 완전히 이해하지 못하고 있습니다.

앞에서 언급했던 것을 고려해보면 자유에 대한 강력한 보호를 갖는 GNU 일반 공중 허가서가 두드러진 허가서가 되고 발표되는 모든 자유 소프트웨어의 50% 이상이 GNU 일반 공중 허가서를 따른다는 것은 놀라운 일이 아닙니다.

적어도 제가 보기에는 이는 진행 중에 발생하는 자연스러운 부산물이라고 생각합니다. 또한 GPL이 시장을 잠식하지 않은 명백한 증거이기도 합니다. 이것은 아주 자연스러운 것입니다. 즉, 이것은 GNU 일반 공중 허가서 덕분에 자유 소프트웨어의 시장이 자체적으로 크게 생성되었다는 것을 의미합니다.

오해를 막기 위해 GPL만이 만족할 만한 허가서를 의미한다는 것이 아니라는 것을 강조하고 싶습니다. LGPL이나 BSD 스타일 허가서와 같은 다른 허가서 또한 자유 소프트웨어의 한 부분이며 때때로 가장 유용한 선택이 될 수 있습니다.

미약한 보호가 GNU Aspell을 위한 최선책인가 하는 질문이 이 글의 발단입니다. 자유 소프트웨어 재단의 시각에서 보면 필자의 관점과는 달라 보입니다.

자유 소프트웨어에는 이미 Ispell이라는 다소 약점이 있긴 하지만 널리 사용되는 철자 검사기가 있습니다. 이 소프트웨어는 독점적이지 않는 허가서를 가지고 오랜 시간 동안 공백을 채울 수 있었습니다.

이제 GNU Aspell은 자유 소프트웨어에 유리하게 단기간의 세력 관계를 균형잡기 위해서, 이와 비슷한 독점적 제품보다, 문서를 다루는 모든 자유 소프트웨어 패키지에 상당한 기술적 이익을 줄 수 있습니다.

또한 이것은 자유 소프트웨어로서 GNU Aspell을 기반으로 하는 프로젝트들을 공개하는 동기를 증가시킬 것입니다.

OpenOffice와 Mozilla 프로젝트의 경우, LGPL을 지향하는 Kevin에게 있어 중요한 이유가 될 가능성 있는 문제점은 독점 소프트웨어로서의 상업적인 버전이 발표되어야 할 주목을 끄는 이유가 없다는 것입니다.

특히 OpenOffice의 경우, 사람들이 독점 소프트웨어인 StarOffice를 사는 가장 큰 이유는 아주 좋은 안내서, 지원, 그리고 책임이 있는 것처럼 보이기 때문일 것입니다. 이런 것들은 StarOffice가 독점 소프트웨어이어야 하는 것과는 상관없습니다. 하지만 사람들은 이것이 자유 소프트웨어로 배포되더라도 변하지 않을 것입니다.

만약 어떤 사람이 그들이 정말로 그들의 프로젝트에서 독점적인 버전을 만들어야 한다면 물론 그렇게 할 수 있습니다. 하지만 자유 소프트웨어 공동체로서 우리는 좀더 나은 독점 소프트웨어를 만들 수 있도록 그들에게 GNU Aspell을 사용하도록 할 수 있을 것입니다.

이 주제가 상당히 복잡하기는 하지만 나는 가끔은 아주 복잡해보이는 이 주제를 다른 각도에서 접근해보기를 희망합니다.

만약 이런 질문들에 대해 더 많은 것을 읽기를 원하거나 다른 시각에서 이 문제를 보기 원한다면 GNU 웹 페이지에 있는 Richard Stallman이 쓴 문서를 읽어보기 바랍니다.[5]

Gnutemberg! 자유문서 데이터베이스

Brave GNU 세상의 이탈리아어 번역자 Simo Sorc은 이탈리아에서 "Gnutemberg! 데이터베이스 자유 문서(GFDD)[6]"를 추천했습니다.

"Gnutemberg" 프로젝트[7]의 일부분인 GFDD은 자유 문서들을 작성하고 관리하는 데이터베이스입니다. 이러한 일의 자유를 보장하기 위해, FSF에 공인된 자유 문서 라이센스[8]를 준수하는 문서들만이 그 데이터베이스에 추가되고 있습니다.

기술적인 부분은 PHP와 PostgreSQL로 이루어져 있으며 "Dublin Core Metadata Element Set"와 "Open Source Metadata Framework"[9]상에서 이루어 졌습니다. 당연히 모든 코드는 GNU 일반 공중 사용 허가서를 준수하는 자유소프트웨어로 공개되어 있습니다.

사용자들은 문서의 작성이나 번역을 할 수 있으며 작가, 공개한 날짜, 제목, 언어, 번역, ISBN 번호, 페이지, 가격 혹은 주석 같은 항목들을 이용해서 검색을 할 수 있는 검색 엔진을 이용할 수도 있습니다.

이 프로젝트는 Gaetano Paolone, Marco Presi, Simone Merli, Marco Milanesi, Alceste Scalas, Donato Molino에 의해서 관리되고 있지만 이들은 여전히 기술적인 부분과 부수적인 부분들에 대해서 도움을 필요로 하고 있습니다.

문서화 작업은 굉장히 중요함에도 불구하고 너무나 자주 무시되고 있는 영역이기도 합니다. 저는 이들이 이 프로젝트를 위해 일할 더 많은 자원자들을 찾을 수 있기를 기대합니다. 이번 기사는 이걸로 충분할 듯 싶습니다. 그렇지 않으면 다음 호에 실려야 할 내용을 사용해 버려서 다음호가 그 다음 달에 도착하게 되는 불행한일이 발생할 수도 있습니다.

물론 이번호를 마치기 전에 저는 여러분들에게 어떤 제안이나 정보, 질문 혹은 재미있는 프로젝트들에 대해 제게 메일로 알려달라는 말을 하지 않을 수 없군요. 의견들은 언제든 망설이지 말고 메일로[10] 보내주시기 바랍니다.

참고자료
각주
[1] Libgcrypt 홈페이지: http://www.gnupg.org/
[2] GNU Aspell 홈페이지: http://aspell.net
[3] International Ispell 홈페이지: http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html
[4] GNU Aspell word lists: http://word list.sourceforge.net
[5] 리차드 스톨만 - "Why you shouldn"t use the Library GPL for your ne xt library" http://www.gnu.org/licenses/why-not-lgpl.html
[6] GFDD - Free Documentation Database 홈페이지: http://www.gfdd.org
[7] Gnutemberg! 홈페이지 (Italian): http://www.gnutemberg.org
[8] Free Documentation Licenses http://www.gnu.org/philosophy/license-li st.html#FreeDocumentationLicenses
[9] Dublin Core Metadata initiative http://www.dublincore.org
[10] 질문이나 의견제안Brave GNU World: column@brave-gnu-world.org
[11] Gnuzza (CryptChat) 홈페이지: http ://www.winpt.org/cryptchat/

Copyright ⓒ 1999, 2000, 2001, 2002 Georg C. F. Greve
본 기사는 멋진 GNU 세상에서 발췌한 기사입니다.
TAG :
댓글 입력
자료실

최근 본 책0