바야흐로 날개셋 한글 입력기가 개발 17주년을 앞두고 있고 9.0 버전에 진입했다. 지금까지 참 멀고도 긴 길을 가 왔다.

일단 계획대로라면 9.x는 지금 내 처지가 크게 바뀌지 않은 상태에서 진입하는 마지막 버전대가 될 것이다.
9.0 이후의 다음 버전은 가을쯤에 나올 9.1을 목표로 하고 있다. 8.8 이후로 계속 0.1씩 찔끔찔끔 올라가는구나. 오랜만에 새로운 분야인 ‘보조 입력 도구’ 분야의 기능 개선과 강화를 진행한 뒤, 그 다음 버전, 아마 9.3쯤이 세벌식 관련 총체적인 동시치기 시스템을 구현한 버전이 될 것이다.

그때쯤 되면 드디어 핵심 필수 기능 개발 to do 리스트가 비게 될 것이고, 그 뒤엔 나도 박사 졸업도 하고 결혼 같은 다른 거사도 치뤄야 되니, 지금 같은 가중치를 둔 프로그램 개발은 당분간 쉴 것이다. 완전 새로운 입력 기능 추가나 대규모 리팩터링은 뒤로 미루고, 버그 수정, 보안 패치, 그때 그때 생각나는 마이너 버전업만 할 것이다.
아무튼.. 지난달에 한번 9.0 개발 근황을 공개한 적이 있었는데, 그때 이후로 9.0에는 또 여러 새로운 기능들이 또 들어갔다.

1. 24픽셀 글꼴 표시 지원

이번 9.0은 지난 1.0부터 8.x에 이르기까지 오랫동안 많은 사용자들이 바라고 있었지만 전혀 이뤄진 적이 없었고, 안타깝지만 프로그램 구조의 한계상 앞으로도 당분간 이뤄질 일이 없을 거라고 부정적으로 못을 박았던 기능이 하나 드디어 극적으로 실현되었다.

바로.. 16픽셀 비트맵 글꼴의 한계를 아쉬운 대로 깨고 더 큰 글꼴을 지원하게 된 것이다! 종전보다 50% 더 큰 24픽셀 비트맵 글꼴이다. 이 소식을 전하게 된 것을 본인은 기쁘게 생각한다. 시기적으로도 딱 적합한 숫자인 9.0 버전에서 실현됐다.

그냥 한글 입력 엔진 쪽으로 원래 계획했던 기능들만 구현했으면 그것만으로도 8.9에서 0.1 정도의 변화는 충분했으며, 5월 말쯤에 9.0 버전이 나올 수 있었다.
그러나 과거에 상상할 수 없었던 고해상도 디스플레이는 거스를 수 없는 대세가 된 지 오래이고, 세 주 남짓 부랴부랴 진행된 추가 작업은 내 프로그램이 그런 고해상도 디스플레이에 대응하는 뜻깊은 밑거름이 될 것이다.

24픽셀은 글자를 표현할 공간이 16픽셀보다 두 배 이상 더 넉넉하다. 복잡한 옛한글이나 한자를 더 선명하고 깔끔하게 표현할 수 있으며, 알파벳과 현대 한글 정도면 가로· 세로가 모두 2픽셀인 진한 글꼴도 무리 없이 만들 수 있다.

그럼에도 불구하고 이 크기는 화면 출력용으로 오랫동안 대중적으로 쓰인 16픽셀에 비해 글꼴이 매우 부족하다. 그리고 16픽셀은 너무 작은 크기이기 때문에 앗싸리 쑤제 도트 노가다로 정교하게 만들어진 비트맵 글꼴이 많지만, 24는 비트맵으로 일일이 찍기에는 좀 크고 그렇다고 윤곽선 방식만으로 그리기에는 정교한 힌팅 없이는 여전히 보기 안 좋다.

그래서 이번 9.0에서 곧장 들어간 24픽셀 한글 글꼴은 일단 아래아한글 1.x 도트판에서 추출한 인쇄용 명조· 고딕· 샘물· 필기 4종이다. 과거에 인쇄용으로 쓰던 글꼴을 이제 화면에서 일상적으로 보게 되는 셈이다.

그리고 도스용 태백한글에도 8*4*4 도깨비 형태로 크기만 더 키운 명조· 고딕 글꼴이 있어서 이를 탑재했으며, ‘굴림· 궁서 옛한글’로부터 옛한글 비트맵도 추출해서 내 프로그램에서 쓸 수 있는 조합형 한글 글꼴을 만들었다. 디렉터리는 종전의 Font에 이어 Font24가 또 추가되었다.
글꼴 본뜨기를 하면 기본 한글 글꼴인 바탕· 돋움· 굴림· 궁서 정도는 물론 완성형 글꼴 형태로 추가되며, 영문 중에서는 16픽셀 시절과 마찬가지로 Courier New, Lucida Console, 그리고 중국어· 일본어 불변폭 글꼴의 영문 글립도 추가된다.

기본 내장 글꼴은 기존 16픽셀 버전을 기계적으로 확대한 뒤, 급한 대로 손으로 최소한의 보정만 한 것이다. 여건이 허락하는 대로 퀄리티를 차차 개선해 나갈 것이다. 둥근모, 한솔바탕, 이야기체 이건 꽤 잘 만든 글꼴 축에 드는데 24픽셀 버전이 같이 좀 있으면 좋겠다.
일부 도스용 프로그램들이 제공하는 인쇄용 글꼴들은 한글과는 달리 영문 글꼴을 사용할 만한 것이 의외로 드물었다. 높이는 24픽셀이지만 폭은 12가 아닌 14픽셀이라거나 해서 아귀가 좀 안 맞았기 때문이다. (일일이 야메로 수정하기엔 시간 부족..)

큰 글꼴은 현재 시스템의 DPI가 150% (또는 144dpi) 이상이면 자동으로 채택되며, 100%나 125% 같은 낮은 DPI에서는 언제나 여전히 종전의 16픽셀 글꼴이 쓰인다. 한 프로그램에서 두 크기의 글꼴이 동시에 쓰이거나 실시간으로 전환되지는 않는다.
요컨대 이 기능은 눈으로 보이는 글자 크기를 적극적으로 키워 주는 기능이 아니다. 단지, high DPI 환경에서 비트맵 글꼴이 터무니없이 너무 작게 보이는 것을 막아 줄 뿐이다. 고해상도를 지원하기 위해 필요한 정말 최소한의 방어적인 조치만을 최소한의 시간 동안 취한 것이다.

단, 24픽셀 글꼴 지원을 추가한 주 이유가 high-DPI에 대한 대응이므로, 주요 아이콘과 도구모음줄 비트맵에 대한 확대 작업은 같이 행해졌다.
특히 타자연습은 UI 곳곳이 수정되어서 150% DPI에서 24픽셀 글꼴로 편하게 사용이 가능하게 되었으며, 버전은 3.61에서 3.7로  올라갔다. 기능이 바뀐 것은 전혀 없고 (1) 프로그램 명칭 표기에서 화살괄호를 제거, (2) 큰 글꼴로 high-DPI 지원 이 두 가지가 전부이지만, 그것만으로도 버전을 올릴 명분은 충분하다.

게임의 경우 24픽셀 글꼴 하에서는 드디어 640*480 대신 역시 1.5배가량 더 높은 1024*768 해상도에서 실행된다.
이것도 오늘날 기준으로는 여전히 참 민망한 퀄리티이다. 하지만 (1) 게임을 최신 3D 그래픽 기반으로 처음부터 다시 만들고 (2) 게임 시스템을 좀 전반적으로 개편하는 날이 올 때까지.. 그 날을 기약 없이 무작정 기다리기만 할 수는 없으니 당장 필요한 최소한의 조치를 취했다. 적극적으로 개선을 못 하고 있을 뿐이지 타자연습 역시 2017년 현재까지 찔끔찔끔 유지보수 중인 살아 있는 프로그램이긴 하다는 뜻이다..

타자연습은 날개셋 엔진 dll이 포함돼 있기 때문에 비록 글꼴과 도움말이 없고 '고급 입력기/스키마'를 사용할 수 없을지언정 타자연습만 설치해도 프로그램이 실행은 된다.
그러나 이 상태로는 24픽셀 글꼴을 사용할 수 없다(기본 내장 글꼴도 없음). 그렇기 때문에 입력기를 반드시 설치해야 한다.

본인은 오랫동안 복합 낱자 입력 로직 생성기의 알고리즘을 생각하면서 끙끙거렸으며, 입력 스키마와 문자 생성기에다 새 기능을 추가하느라 지금까지 머리에 쥐가 날 지경이었는데.. 이런 24픽셀 글꼴 지원은 한글 입력 동작과는 아무 관계 없으며 학술적인 의미도 딱히 없다. 그냥 기계적인 구조 확장과 리팩터링, 도트 노가다만이 있을 뿐이다. 하지만 프로그램 자체에 대한 내부 구조를 고치고 확장하고, 당장 사용자의 입장에서 실용성이 높은 기능이었다.

성격이 완전히 다른 개발 작업을 몇 주 하고 나니 머릿속 분위기가 싹 달라졌다. 손 놓은 지 오래 돼서 긴가민가하던 비트맵 관련 API들 다루는 법도 감이 완전히 되살아났다. 그래도 이런 걸 좀 하고 나니 내가 살아 있는 것 같고 삶의 목적과 존재의 의미가 있는 것 같다.

2. 타이머

그럼, 다음 소식으로 한글 입력 엔진 얘기로 돌아간다.
한글 입력기는 단순히 사용자의 키보드· 마우스 입력에만 반응하는 게 아니라, 마지막 입력 후 일정 시간 동안 반응이 없으면 뭔가를 자동으로도 할 수도 있다.

지금으로부터 6년 전, 6.0 버전에서 '조합 중단 타이머'라는 이름으로 아주 초보적인 수준의 타이머 기능이 도입된 적이 있었다. 주 용도는 천지인이나 Google 단모음 같은 글쇠배열에서 음절 경계 구분을 하는 것이다. 두벌식은 모바일에서는 말할 것도 없고 옛한글 또는 No shift라는 조건이 추가되면 십중팔구 종성과 초성 사이에 모호성이 생기기 때문이다.

그런데 단순히 조합을 무조건 끊기만 하는 기능은 별로 유용하지 못하며, 100점 만점에 70점밖에 안 된다. 음절 경계 구분을 선별적으로 할 수 없기 때문이다.
가령, Google 단모음에서 '박' 다음에 ㄱ을 입력했다면 시간 간격에 따라 '밖' 또는 '박ㄱ'이 되어야겠지만, ㅏ를 입력했다면 시간 간격과 무관하게 언제나 '바가'가 되는 게 바람직하다. '박ㅏ'을 원하는 사용자는 거의 없을 것이다.

천지인도 마찬가지이다. '안'을 입력하고 나서 또 ㄴ을 입력했다면 시간 간격에 따라 '알' 또는 '안ㄴ'이 되어야겠지만, 중성은 말할 것도 없고 ㅈ도 타이머와 무관하게 언제나 '앉'으로 모아 주는 게 바람직하다. 얘까지 '안ㅈ'로 일부러 끊을 필요는 없다. 요컨대 진짜로 모호성이 발생하는 종성과 초성이 만났을 때만 구분을 해 주고, 나머지 입력에 대해서는 평소처럼 처리하면 된다.

그러니 타이머로 음절 구분을 선별적으로 하기 위해서는, 타이머 이벤트가 발생했을 때 그냥 조합을 끊기만 하는 게 아니라 여느 글쇠를 눌렀을 때처럼 임의의 날개셋문자를 보낼 수 있도록 이거 구조부터 좀 확장하게 됐다. 뭐, 예전처럼 조합을 끊으려면 C0|0xE라는 '조합 중단' 특수 코드를 보내면 되고, 아니면 '상태 전이'나 특별한 의미를 갖는 가상 낱자 결합, 소문자 변수값 변경 + 글쇠 수식 같은 걸 사용하면 앞서 얘기했던 선별적인 음절 구분을 구현할 수 있다.

타이머를 사용하기 위해서는 '자동 입력 타이머' 옵션을 켠 뒤, 설정을 눌러서 별도의 대화상자에서 타이머의 발동 조건과 시간, 적중 시에 보낼 날개셋문자 수식 등을 지정하면 된다.
게다가 타이머를 하나도 아니고 용도가 다른 것을 최대 3개까지 동시에 지정할 수 있다. 예전처럼 굳이 조합 상태일 때만 켤 수 있는 것도 아니며, 원한다면 조합 상태가 아니고 그냥 아무 글쇠를 누른 뒤부터 자동으로 켤 수도 있다.

사용자 삽입 이미지

사용할 타이머의 종류, 각 타이머의 작동 조건, 타이머 적중 시에 입력할 문자, 타이머 중단 조건을 아주 세밀하게 지정 가능하다.
타이머를 일회용으로만 지정할지, 아니면 다회용으로 계속 굴릴지 선택할 수 있고, 또 겉으로는 아무 변화가 없더라도 이 타이머가 적중했을 때는 삑 소리로 청각 피드백을 주게 할 수도 있다.

다회용 타이머는 반쯤 자동 입력 매크로처럼 활용도 가능하다. 타이머가 왔을 때 '글쇠 누름' 날개셋문자를 보내게 하면 ESC, 엔터, Ctrl+?? 같은 특수글쇠를 반복해서 보낼 수 있기 때문이다. 거기에다 난수 R변수까지 사용하면 더욱 예측불허의 동작을 만들어 낼 수 있다.

입력 중에 발동된 타이머는 사용자가 글쇠배열을 변경하거나 키보드 포커스를 다른 창으로 바꾸는 등 외부 이벤트가 발생하면 취소된다. 하지만 그것 말고 지금 글자의 조합이 종료됐을 때(타이머의 여파가 지금 조합의 범위를 벗어나지 않게 해야 할 때.. 주로 일회용 타이머용), 그리고 사용자가 화살표 키나 마우스 같은 걸로 cursor를 옮겼을 때(주로 다회용 타이머용)에도 타이머를 취소시킬 수 있다.

타이머라는 기능에 존재할 만한 옵션을 이런 식으로 분류하고 저런 대화상자에다 정리하고 지금과 같은 형태로 구현하는 게 과연 '최선'이라 할 수 있는지 확신이 안 서서 오랫동안 괴로웠는데 드디어 모든 고민이 깔끔히 해결됐다. 지금 구현된 형태는 개인적으로 매우 만족스럽다. 좀 더 일찍 진작부터 이렇게 만들어지지 못한 게 아쉬울 뿐이다.

타이머는 기능의 성격이 문자 생성기와 입력 스키마에 반반쯤 걸쳐 있는 이상한 물건이다. 입력 단위인 날개셋문자를 새로 생성한다는 점에서는 입력 스키마와 비슷하지만.. 조합 상태와 깊숙히 관여하고 있고 글쇠배열 자체보다 로직에 가깝다는 점은  문자 생성기와 비슷하다.

안 그래도 다음 버전에서는 이렇게 문자 생성기뿐만 아니라 입력 스키마나 보조 입력 도구도 타이머를 지정하는 기능이 도입될 것이다. 그러니 이번 타이머의 구조 확장은 다음 버전에 대한 준비 작업이라는 의미도 갖는다.

이렇게 새 기능이 구현되었지만, 복합 낱자 입력 로직 생성기 빠른설정이 저렇게 타이머와 연계한 선별적인 음절 구분까지는 지원하지 않을 예정이다. 저건 글쇠배열 차원에서 변수를 써서 구현하는 게 낫지만, 이 빠른설정은 일단은 문자 생성기 계층의 설정만 고치는 것을 지향하고 만들어졌기 때문이다. 그냥 지금처럼 모호성이 발생하는 자음 pair 그룹을 찾아서 보여주는 일만 한다.

예제로 제공되는 삼성 천지인 입력 방식은 k, l, m이라는 사용자 변수 세 종류를 사용하여 '안ㄴ'과 '안ㅈ'을 구분하는 음절 경계 타이머를 구현해다. 현재 입력된 글쇠가 이전에 입력된 글쇠와 동일하고(k==l), 타이머가 경과하여 m=1이 됐을 때는 다음 자음이 종성이 아니라 언제나 초성으로 입력되게 함으로써 음절을 구분하는 것이다.

그에 반해 Google 단모음은 타이머가 적중했을 때 이제 아무 낱자의 결합도 받지 않는 별도의 오토마타로 상태 전환을 시켜서 음절을 구분하게 바뀌었다. 이런 식으로 타이머를 활용하는 방법이 더욱 다양해진 것이 9.0의 의의이다.

3. 고급 입력 스키마

지금까지 고급 입력 스키마에는 한 글쇠의 연타를 감지하는 것과 관계 있는 I~K 변수가 있었는데, 이번에는 동시에 누른 글쇠의 개수를 감지하는 V, W 변수가 추가되었다.
'고급 글쇠 인식'에 등록되어 있는 글쇠 중 여러 개가 동시에 눌러진 게 있다면 그 개수만큼 V의 값이 증가한다. 그리고 한 순간에 가장 많은 글쇠가 눌러진 최대값이 W에 보관되고 업데이트된다. W는 모든 글쇠에서 손이 떼어진 뒤에도 남아 있다가, 다음에 한 글쇠가 단독으로 새로 눌러졌을 때 다시 1로 되돌아간다.

이 변수를 통해 사용자는 어떤 글쇠가 눌러지거나 떼어졌을 때 자기 말고 다른 글쇠도 눌러진 것이 있는지 확인할 수 있다. Shift나 Ctrl의 경우 대부분 다른 글쇠와 결합해서 쓰이는 modifier 글쇠인데, 자기 혼자만 단독으로 길게 누르거나 뗐을 때에만 특수한 처리를 하고 싶다면.. 저 변수를 활용하면 된다.

또한 글쇠배열에 공통 전처리· 후처리가 있는 것처럼, 그렇게 날개셋문자를 결정하기 전에 임의의 글쇠가 눌러졌을 때에 한해서(keyup 말고 keydown 때만) 공통으로 실행할 수식도 지정할 수 있게 했다. 이건 고급 글쇠 인식에 등록된 글쇠와 그렇지 않은 글쇠를 달리 지정할 수 있다. 이를 통해서도 여러 글쇠를 동시에 눌렀을 때 혹시 딴 글쇠가 같이 눌러졌는지를 판별할 수 있다.

이를 계기로 고급 입력 스키마도 제어판에 자신의 고유한 옵션을 지정하는 탭이 하나 추가되었다. 이전까지는 고급 인식 글쇠 리스트를 지정하는 탭 하나만 있다가 9.0부터 2개가 된 것이다.
기본 입력 스키마와 기본 문자 생성기가 탭이 각각 2개와 3개인데, 고급 스키마와 고급 생성기도 자신만의 탭을 각각 2개, 3개씩 갖고 있다. 그러니 고급 스키마와 고급 스키마를 사용할 경우 탭의 개수는 총 10개로, 5개에 비해 정확하게 2배로 늘게 된다.

물론 고급 입력 스키마의 옵션 탭은 아직 아이템이 매우 적어서 화면이 썰렁하다. 그러나 타이머, 눌러진 글쇠 개수 파악, 그리고 별도의 옵션 탭들이 모두... 머지않아 세벌식에 특화된 동시치기 기능 추가를 위한 준비 작업이다. 위에서 언급했던 모든 기능들과 오토마타까지 다 연계해야 구현 가능할 것으로 보인다.

입력 스키마와 문자 생성기가 모두 "빈-기본-고급"이라는 3단계 계층이 싹 갖춰져서 보기 좋다.
사실, 잉여력이 조금만 더 충분하다면 이것도 좀 다른 관점에서 새로 설계해서 '꼬마 스키마' 내지 '꼬마 입력기'를 또 만들어 보고 싶긴 하지만.. 여건이 허락하지 않는다.

4. 기타

(1) 지난 8.9 버전은 버그가 발견된 게 '거의' 없었다. 덕분에 이번 9.0은 변화 사항 문서에 '개선' 카테고리에 해당하는 항목이 일단은 없다.
단, 편집기에서 텍스트에다 블록을 4개 이상 잡고서 '도구-분량 계산'을 하고 나면 프로그램이 그냥 무한 루프에 빠지면서 응답을 멎는 문제가 있어서 고쳤다. 정말 황당하고 어처구니없는 실수 때문이며, 뻗거나 메모리 폭주를 하는 게 아니라 그냥 무한 루프에만 빠진다.

이건 워낙 간단한 기능이기 때문에 해당 기능이 한번 구현된 뒤에 딱히 고쳐질 일은 없으며, 따라서 8.9에만 있는 문제는 아니다. 오랫동안 발견되지 않고 남아 있다가 이번에 발견되어 고쳐졌다.

(2) bksp 동작 방식.. 이를테면 글자부터 낱자까지 지우는 단위라든가 앞 글자 달라붙기+역도깨비불 시도 여부 같은 것을 지금처럼 단순히 고정된 옵션이 아니라 이것도 수식으로.. 앞 글자가 실제로 무엇이고 소문자 변수 값이 무엇이냐에 따라 사용자 정의 가능하게 하는 기능을 추가했다.
실생활에서 bksp를 이 정도로 변태적으로 제어해야 할 상황은 거의 없겠지만 그래도 completeness 유지 차원에서, 혹시나 해서 추가했다.

(3) 날개셋 브랜드에 속하는 프로그램은 아니지만, 이번 high DPI 작업 추세에 맞추어 '세벌식 파워업' 프로그램도 2015년 이후 2년 만에 잠수함 패치를 했다.
수행할 기능을 선택하는 라디오 버튼을 더블 클릭만 해도 해당 명령이 바로 실행되게 했고, 글쇠배열 그림이 high DPI에서는 그에 상응하는 비율로 더 크게 나오게 했다.
실질적인 기능이 바뀌거나 버그가 고쳐진 건 없다. MS 한글 IME가 글쇠배열 정보를 저장하는 방식은 Windows Vista 이후로 딱히 바뀌지 않고 있다. 덕분에 새로운 알고리즘이 추가돼야 할 일은 없었다.

Posted by 사무엘

2017/06/15 08:30 2017/06/15 08:30
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1370

Trackback URL : http://moogi.new21.org/tc/trackback/1370

Comments List

  1. 사무엘 2017/06/16 00:34 # M/D Reply Permalink

    음~ 문제가 발견되어 한글 입력기와 타자연습을 6월 16일 0시 30분경에 다시 올렸다.

    입력기는 프로그램 코드 상의 문제는 없는데 조합형 한글 글꼴 '바탕, 돋움, 샘물, 필기' 4종이 ㄾ과 ㄿ 모양이 서로 뒤바뀌어 잘못 만들어져 있었다.

    타자연습은 게임을 전체 화면에서 실행했을 때 예전에는 안 그랬는데 화면 아래쪽이 검은색으로 칠해지는 문제가 최신 운영체제에서 발견되어 이걸 해결했다.

    그 밖에 도움말의 일부 문장 말투를 다듬고 도구모음줄 비트맵 일부를 살짝 다듬었다.
    15일과 그 이전에 한글 입력기 9.0과 타자연습 3.7을 받으신 분은 번거롭지만 프로그램을 삭제 후 다시 받아서 설치하시기 바란다. 불편을 끼친 점에 대해 사과드린다.

  2. boolsee 2017/06/16 08:33 # M/D Reply Permalink

    9.0 버전의 완성을 감축드립니다.
    너무나 잘 사용하고 있습니다. 설명하신 내용을 어찌하면 더 잘 사용하는 것인지 모르는 것은 저의 능력이 부족한 탓입니다. 고맙습니다.

    :)

    1. 사무엘 2017/06/16 09:32 # M/D Permalink

      다른 건 몰라도 24픽셀은 당장 실질적으로 제감 가능한 기능이지요. ^^
      (타자연습이나 편집기를 사용하지 않는다면 별 의미 없겠지만)
      제 프로그램을 유용하게 사용해 주셔서 저 역시 대단히 감사드립니다~!

  3. 정 용태 2017/06/17 03:27 # M/D Reply Permalink

    항상 고생하십니다! 버전업 축하드립니다(__)
    일본어 윈도우 등 타국어 윈도우를 사용할 일이 자주 있는데 편집기와 입력기 도움을 많이 받고 있습니다.
    항상 감사한 마음 갖고 사용하고 있습니다. 고해상도, 실행시켜 보니 정말 보기 좋더라! 네요 ^_^

    1. 사무엘 2017/06/17 10:26 # M/D Permalink

      정 용태 님, 정말 오랜만에 뵙네요. 반갑습니다! ^^ 코딩과 철도 활동은 변함없으신지요?
      제 프로그램을 유용히 사용해 주시는 것에도 거듭 감사드립니다.

Leave a comment
« Previous : 1 : ... 977 : 978 : 979 : 980 : 981 : 982 : 983 : 984 : 985 : ... 2204 : Next »

블로그 이미지

그런즉 이제 애호박, 단호박, 늙은호박 이 셋은 항상 있으나, 그 중에 제일은 늙은호박이니라.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Site Stats

Total hits:
3049062
Today:
82
Yesterday:
2142