컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Monthly Archive
Wednesday, May 31, 2006

[HTML-CSS] 이미지(img) 위에서, 마우스 커서를 십자가(플러스 기호)로 변경

이미지 위에서는 하얀 마우스 커서가 거추장스럽고, 그림의 감상을 방해할 수도 있습니다. 마우스 커서가 그림 위를 지날 때에, 커서를 십자가 등으로 변경하면 편리합니다.

모든 그림에서 마우스 커서 변경하는 코드



<head>
<style type="text/css">
  img { cursor:crosshair }
</style>
</head>


웹페이지의 head 부분에 위와 같이 정의해 주면, 본문의 모든 그림에서 커서가 변경됩니다.





특정 그림에서만 마우스 커서 변경하는 코드



모든 그림에서 커서 변경하는 것보다는, 다음과 같이 특정 그림에만 별도로 지정해 주는 것이 좋습니다.

<img src="그림 파일 주소" style="cursor:crosshair" alt="그림 설명" />



결과:
그림 설명


cursor:crosshair 이 속성은, 파이어폭스에도 IE에서와 똑같이 잘 작동합니다.

이미지 외에, <div> 등의 태그에서도 cursor 속성으로 마우스 커서를 바꿀 수 있습니다. 위의 코드박스에도 현재 십자가 커서가 지정되어 있습니다. 그러나 텍스트가 있는 곳에서 커서를 변경하면 방문객들에게 혼란을 줄 수 있기 때문에 기본값으로 놔 두는 것이 바람직합니다.


▶▶ HTML CSS, 마우스 커서 변경 방법, 모래시계, 십자가; Mouse Cursor Change






Q: 진짜 십자가 이미지 있는 곳은?


HTML 말고, 교회에서 쓸 십자가 이미지(The Holy Cross)는?

A: 다음 주소에서 검색해 보시기 바랍니다:
<구글 이미지 검색에서 cross 로 검색>

웹스터 영영사전의 '오늘의 단어; Word of the Day' 가 RSS 2.0 피드로 제공 [영어 학습]

웹스터 영영사전 Merriam-Webster 사이트에, '오늘의 단어'랄까 그런 서비스가 있습니다. 하루에 하나씩 고난이도의 단어를 보여주고 그 단어의 용법과 어원 등에 대해 설명하는 것입니다.

여기: http://www.m-w.com/cgi-bin/mwwod.pl



The Word of the Day for May 30 is:

mettlesome    MET-ul-sum    adjective
: full of vigor and stamina : spirited

Example sentence:
The mettlesome bronco kicked and bucked, but the rider kept his balance and rode him out.

Did you know?
The 17th-century adjective "mettlesome" (popularly used of spirited horses) sometimes appeared as the variant "metalsome." That's not surprising. In the 16th century and for some time after, "mettle" was a variant spelling of "metal"―that is, the word for substances such as gold, copper, and iron. ("Metal" itself dates from the 14th century and descends from a Greek term meaning "mine" or "metal.") The 16th century was also when "metal"―or "mettle"―acquired the figurative sense of "spirit," "courage," or "stamina." However, by the early 18th century, dictionaries were noting the distinction between "metal," used for the substance, and "mettle," used for "spirit," so that nowadays the words "mettle" and "mettlesome" are rarely associated with "metal."



그런데 바빠서^^; 몇 년 동안 Word of the Day 를 찾지 않았는데,

RSS Feed 

오늘 이런 마크가 있어서 보니, Word of the Day 가 RSS 2.0 피드로 제공되고 있었습니다.

그래서 이제는 사이트를 찾아가지 않아도 RSS 리더로 내용을 읽을 수 있어 편리했습니다.




관련 게시물: [마이크로소프트 무료 전자사전] 서반아어/이탈리아어/독어/프랑스어 <―> 영어





그러고 보니 웹스터 사전 사이트는, CGI와 펄(Perl)로 운영하는군요. 역사가 오래된 사이트라서 그런 것 같습니다.

[QnA] 견명조 폰트 있는 곳? 견명조 글꼴이란?

견명조 글꼴이란?

진하고 획이 조금 굵은 명조체인데, 한글 명조체 중에서 가장 인쇄체에 가까운 폰트가 견명조이더군요. 그러나 제목용으로는 훌륭하지만 본문용으로는 그리 적합하지 않았습니다.


HY견명조

이것은 MS워드에서, 문자열에 HY견명조를 적용하여, 스냅샷을 찍은 후 포토샵으로 색을 입힌 것입니다. 웹디자인할 때 유용한 폰트입니다. (그러나 윈도우에 기본으로 깔려 있는 폰트가 아니므로 웹페이지에 직접 적용할 수는 없고, 반드시 위와 같이 그림 파일로 만들어야 합니다.)



폰트 이름: HY견명조
파일 이름: H2MJRE.TTF
파일 크기: 6.07MB (6,367,340 바이트)
파일 날짜: 2002년 10월 29일 화요일, 오후 4:40:48



견명조 폰트 있는 곳?

MS오피스 설치 CD 안에 있습니다. MS워드를 설치하니 'HY견명조'가 같이 설치되더군요.



관련 포스트:
[QnA] 한자 폰트(글꼴) 있는 곳 / 좋은 한자 폰트는?

좋은/특이한 한글 폰트(글꼴)들 소개

[QnA] 행서체 (行書) / 궁서체 / 붓글씨 한자 폰트는?



더 읽기: 오피스

[MIDI/프리웨어 미디 플레이어] vanBasco's Karaoke Player

미디 파일 .mid 은 윈앰프(Winamp)로도 들을 수 있지만, 더 전문적인 플레이어가 필요할 때는 vanBasco's Karaoke Player 가 좋습니다. (한글로는 '반바스코 가라오케 플레이어' 정도로 표기하겠습니다)

무료로 사용할 수 있습니다.

홈페이지: http://www.vanbasco.com/karaokeplayer/

다운로드: Download 라는 링크를 따라가면 다운로드 페이지가 나옵니다. 이렇게 "email address (optional):" 이메일 주소를 입력하라는 곳이 있는데 입력하지 않아도 괜찮습니다. 이런 다운로드 버튼을 누르면 다운이 됩니다.

현재 버전: vanBasco's Karaoke Player v2.53

예전에는 vanBasco's MIDI Player 였던 것으로 기억하는데, 몇 년 전부터 가라오케 플레이어로 이름이 바뀌었습니다. 그러나 여전히 미디 연주기입니다. 다만 .kar 라는 확장자를 가진 가라오케(Karaoke) 파일을 연주할 수 있다는군요.



vanBasco's Karaoke Player (미디 플레이어)
vanBasco's Karaoke Player : 클릭하면 확대


설명



* 화면 좌측 상단: 반바스코 가라오케 플레이어의 본체입니다. 지금 "You're So True"라고 미디의 곡명이 적혀 있습니다.
* 그 바로 아래의 빨간 글자는 '가사(Lyrics)'입니다. 미디 파일에 가사가 입력되어 있다면 이렇게 가사가 나옵니다. 가사가 없다면 아무것도 안 나옵니다.
* 피아노 건반이 있습니다. 미디 연주에 따라 자동으로 건반이 눌러집니다. 미디(MIDI)라는 파일은 일종의 악보이기 때문에 피아노 건반으로 음정을 표현할 수 있습니다. 피아노 연습에 도움이 될 것입니다.
* 그 아래의 "MIDI OUTPUT"이라고 된 상자: 연주되고 있는 미디 파일 속에, 현재 어떤 악기들이 들어 있고 어떻게 연주되는지 보여줍니다. 좌측 버튼으로 특정 악기를 켜고 끌 수 있습니다.

* 우측 상단의 Playlist 는 미디 파일을 하드에서 고르는 상자입니다. 반바스코 미디 플레이어를 설치하면 화면에 보이는 8개의 미디가 기본으로 포함되어 있습니다.
* 우측 하단의 "CONTROL"에서, 미디의 볼륨, 빠르기, 높낮이 등을 임시로 바꾸어서 연주할 수 있습니다. (변경 사항이 미디 파일에 저장은 되지 않습니다.)



장점



* 무료인 것이 역시 가장 큰 장점입니다. 예전에는 쉐어웨어였는데 몇 년 전부터 무료로 변경되었습니다.
* 인터페이스가 깔끔하고 아름답습니다. 별도의 스킨도 다운로드받을 수 있습니다.



단점



* 악기를 바꿀 수 없습니다. 악기를 바꾸어 가며 미디를 연주하면 재미있는데, 그럴 수가 없어 안타까웠습니다.
* 무료로 바뀐 후, 버전업이 거의 안됩니다.





설치법



다운받은 vkaraoke.exe 를 클릭하면 설치가 시작됩니다.

(1) Please choose your language (언어를 선택하세요) 라는 메시지가 나옵니다. 기본값이 영어(English)이고 '한국어'는 없기에 그냥 "다음" 버튼을 누릅니다.

(2) 프로그램에 대한 간단한 소개와 Click "다음(N)" to begin: 이라는 메시지가 나오는데, 역시 "다음" 버튼을 누릅니다.

(3) License Agreement (사용 약관) 에 동의하라는 말이 나오는데 I agree (동의합니다) 를 클릭.

(4) C:\Program Files\vanBasco's Karaoke Player 여기가 기본 설치 폴더인데, 저는
D:\Program Files\vanBasco's Karaoke Player
이렇게 D드라이브에 설치하도록 바꾸었습니다.

그리고
I want a shortcut on my Desktop (바탕 화면에 아이콘 만들기)
I want a shortcut in my Quick Launch Bar ('빠른 실행'에 아이콘 만들기)
위의 2가지 옵션이 있는데, 바탕화면에만 아이콘을 만드는 것이 좋습니다.

"다음" 버튼을 누릅니다.

(5) .mid (MIDI files) 이것은 미디파일을 클릭하면 반바스코 플레이어가 자동 실행될지 선택하는 것입니다. 미디 파일이 다른 프로그램에 연결되어 있지 않다면 체크해도 좋습니다.

automatically handle MIDI files in Internet Explore (웹사이트의 미디파일을 클릭할 때, 인터넷 익스플로러에서 반바스코 플레이어가 자동 실행될지 여부) 이것은 저의 경우에는 체크하지 않았습니다.

"마침" 버튼을 클릭합니다.



설치 후 실행하면, Tip of the Session (팁-간단한 도움말-보기) 이라는 상자가 뜨는데, Show Tips at startup (시작할 때마다 팁 보여주기)을 체크 해제하고, Close (닫기) 버튼을 누릅니다.




미디 파일의 악기를 바꾸어 듣거나, 간단히 미디를 편집할 때에는 SynthFont 라는 프리웨어가 좋더군요.


더 읽기: MUSIC

[QnA] 확장자 .lit (.LIT) 를 읽는 프로그램은? LIT 란 무슨 파일입니까?

.lit 라는 확장자를 가진 파일은. 전자책 파일입니다. 마이크로소프트 리더 Microsoft Reader 라는 무료 프로그램으로 읽을 수 있습니다.

lit 확장자의 전자책은 상당수가 '영문 소설'이고, 일부는 논픽션입니다. 물론 각종 사전일 수도 있습니다. 한글로 된 LIT 파일도 간혹 있지만, 대부분 영어로 되어 있더군요.

Literature (문학) 에서, 앞의 3글자만 딴 확장자일 것입니다.


그런데 가장 흔한 전자책의 포맷은 .pdf (PDF) 입니다. lit 는 드문 편입니다.



lit 포맷의 장점:
무료로 읽을 수 있는 영문 고전 소설이 아주 많습니다. 인쇄된 책과 비슷한 느낌을 주기에 전자책에 대한 거부감이 덜합니다. 헌책방 서가에 꽂힌 페이퍼백 소설책 같은 느낌을 줍니다.

lit 포맷의 단점:
그래픽에 약하더군요. 삽화가 많은 책에는 적합하지 않았습니다. 그리고 PDF 와 달리, 큰 판형의 전자책을 만들 수 없고, 크기가 고정되어 있었습니다.



관련 포스트: [마이크로소프트 무료 전자사전] 서반아어/이탈리아어/독어/프랑스어 <―> 영어

[배치 파일] echo 명령에서, 쌍따옴표, 꺾은 괄호(부등호) 등 특수문자 표현하기

윈도우 도스창의 echo 명령으로 특수 문자를 출력하는 방법입니다.

<, >, | 이런 문자는 echo 명령으로 출력할 수 없습니다. 왜냐하면 <, >, | 이런 기호들은 재지향에서 사용되는 특수문자이기 때문입니다.

이때는 어떤 특수문자 바로 앞에 캐럿 Caret 기호(^)를 붙이면 됩니다.



윈도우/DOS의 echo: 특수문자 출력 예제



echo ^>
echo ^<이것은 꺾은 괄호입니다^>
echo ^|

이것은 캐럿(^) 기호 자체를 출력하는 방법:
echo ^^



한계



한 가지 제약이 있는데
/?
이 문자열(슬래쉬+물음표)을 echo 로 나타내기는 힘듭니다. echo에 대한 도움말이 나와 버립니다.

echo "/?" 이렇게 따옴표를 붙이거나, 아니면 echo ABCD /?
이렇게 /? 앞에 어떤 문자열을 배치시키는 방법밖에 없었습니다.


업데이트
========
pinetree822님께서 알려주신 대로

echo./?

이렇게 하니 "슬래쉬+물음표"가 에코 명령으로 출력이 되는군요.
=========

Tuesday, May 30, 2006

배치 파일 (Batch File) 실행시에, 인수(파라미터; 옵션; 매개변수) 주기

dir 같은 명령에는 각종 옵션을 줄 수 있습니다. 가령 dir /a 에서, "/a" 는 숨겨진 파일 즉 히든 파일까지 다 출력하라는 옵션입니다. 배치 파일에도 이렇게 옵션(인수)을 줄 수 있습니다.

배치 파일에서의 인수는 퍼센트(%) 기호가 앞에 붙은 숫자입니다.

@echo off

echo %0
echo %1
echo %2


위의 코드를 0.bat 등의 이름으로 저장하고

0.bat foo bar

이렇게 foo bar 라는 인수 2개를 주어서 실행시키면

0.bat
foo
bar

이런 결과가 나옵니다.

%0 은 배치 파일의 이름 자체
%1 은 첫 번째 인수
%2 는 두 번째 인수를 의미합니다.

%9까지 가능합니다.

%* 는 "모든 인수"를 의미합니다. (이것은 윈도98에서는 적용되지 않고, 윈도우2000/XP 이상에서만 됩니다.)



이런 식으로 배치 파일이 인수를 인식할 수 있습니다.


그리고 다음과 같은 방법으로, 배치 파일의 옵션을 해석하여 실제 적용할 수 있습니다: "배치 파일의 옵션(인수; 파라미터) 해석하여 조건문 만들기 예제: 도움말(Help) 옵션 넣기"




더 읽기: BATCH

도스(DOS)/윈도우의, 배치 파일에서 echo off 란?

배치파일(Batch File)의 첫 부분에는 거의 모두

@echo off

이런 부분이 있습니다.


@echo off 는, 배치 파일이 명령들을 쓸데없이 '복창'하지 않도록 만들어서, 화면을 간결하게 하기 위한 명령입니다.



가령,
dir

이렇게 dir 명령 하나만 든 간단한 배치 파일을 만들어 0.bat 등의 이름으로 저장하고 실행하면

D:\Z>0.bat

D:\Z>dir
 D 드라이브의 볼륨: Foo
 볼륨 일련 번호: 2454-59D7

 D:\Z 디렉터리

2006-05-28  12:56p      <DIR>          .
2006-05-28  12:56p      <DIR>          ..
2006-05-28  12:56p                   3 0.bat
2006-05-27  05:26p                   0 0.htm
               2개 파일               3 바이트
               2 디렉터리  56,671,297,536 바이트 남음

D:\Z>


위와 같이 dir 명령이 불필요하게 화면에 출력됩니다. 현재 실행 중인 명령의 이름까지 나올 필요는 없습니다. 결과만 나오면 됩니다.



그러나 @echo off 를 붙이면
@echo off
dir


D:\Z>0.bat
 D 드라이브의 볼륨: Foo
 볼륨 일련 번호: 2454-59D7

 D:\Z 디렉터리

2006-05-28  12:57p      <DIR>          .
2006-05-28  12:57p      <DIR>          ..
2006-05-28  12:57p                  14 0.bat
2006-05-27  05:26p                   0 0.htm
               2개 파일              14 바이트
               2 디렉터리  56,671,297,536 바이트 남음

D:\Z>


이제 dir 이라는 글자는 나타나지 않고 dir의 결과만이 나오기에 화면이 간결해졌습니다.


배치 파일 안에는 수많은 명령어들이 있습니다. 배치 파일이 그 명령어들을 하나 실행시킬 때마다, 그 명령어들 자체도 화면에 출력한다면 산만해지게 됩니다. echo off 는 명령어의 결과만을 출력하라는 명령입니다.

그런데 echo off 자체도 하나의 명령이기 때문에, 이 echo off 명령 자체가 화면에 쓸데없이 출력됩니다. 배치 파일에서는, 어떤 명령어 앞에 골뱅이(@)를 하나 붙이면 그 명령어에 대해 '복창'하지 말라는 의미이기 때문에, @echo off 라고 하면 이제, 완벽하게 모든 복창을 금지시킬 수 있습니다.




@echo off 와 @echo on



배치 파일의 첫 줄에 항상 @echo off 를 추가하는 것이 좋습니다.

그런데 드문 경우지만, 명령어의 복창이 필요할 때가 있습니다.

그럴 때는 복창이 필요한 부분에 @echo on 을 간단히 추가하면 됩니다. (OFF가 아닌 ON 입니다.) 복창의 필요성이 없는 부분에서는 다시 @echo off 를 추가하면 됩니다.

즉 @echo off 와 @echo on 은, 배치 파일의 꼭 첫줄에 있지 않아도 되고, 필요한 부분에 마음껏 추가하여 에코를 켜고 끌 수 있습니다.




더 읽기: BATCH

배치 파일의 옵션(인수; 파라미터; 매개변수) 해석하여 조건문 만들기 예제: 도움말(Help) 옵션 넣기

@echo off

if "%1" == "/?" goto HELP

echo 윈도우의 버전을 보여주는 배치 파일입니다. ( 도움말: %0 ^/? )

ver

echo.

goto QUIT


:HELP
echo 이 배치 파일에 대한 도움말입니다.
echo "/?" 라는 옵션을 주어 실행시키면
echo 이 도움말이 나옵니다.
echo.
echo 그렇지 않으면 윈도우의 버전을 보여 준 후
echo 끝납니다.

:QUIT



%1 은 배치 파일의 첫 번째 옵션을 의미합니다.

if "%1" == "/?" goto HELP

이것은 첫번째 옵션이 /? 라면, "HELP"라는 라벨이 붙은 곳으로 점프하여, 도움말을 출력하라는 IF 조건문(판단문)입니다.





명령 프롬프트에서 실행한 결과:



위의 코드 박스에 있는 배치 파일 코드를 0.bat 이라는 이름으로 저장한 후 명령 프롬프트에서 실행한 결과입니다.


D:\Z>0.bat
윈도우의 버전을 보여주는 배치 파일입니다. ( 도움말: 0.bat /? )

Microsoft Windows 2000 [Version 5.00.2195]


D:\Z>
D:\Z>
D:\Z>
D:\Z>
D:\Z>
D:\Z>
D:\Z>
D:\Z>
D:\Z>
D:\Z>0.bat /?
이 배치 파일에 대한 도움말입니다.
"/?" 라는 옵션을 주어 실행시키면
이 도움말이 나옵니다.

그렇지 않으면 윈도우의 버전을 보여 준 후
끝납니다.
D:\Z>


윗부분은 옵션 없이 그냥 실행한 것, 아래 부분은 "/?" 라는 옵션을 주어 도움말을 출력하게 한 것입니다.




▶▶ 배치 파일 (Batch File) 실행시에, 인수(파라미터; 옵션) 주기

▶▶ 배치파일에서, 문자열 비교 판단 / 문자열이 동일한지 다른지 - Compare Strings in Batch File

BATCH

[동영상 편집] AVI / DivX(디빅) 에서, 특정 부분만 자르기 (Cut / Trim)

VirtualDubMod 라는 무료 프로그램으로 .avi 확장자를 가진 동영상을 간단히 편집할 수 있습니다. 디빅(DivX)도 avi 확장자를 가지고 있기 때문에 이 프로그램으로 자를 수 있습니다. 다음은, 긴 동영상에서 특정 부분만을 잘라내는(Trimming) 방법입니다.



        VirtualDubMod 다운로드:

VirtualDubMod 홈페이지에서 downloads 라는 곳을 클릭하면, VirtualDubMod 를 다운할 수 있습니다. 현재 버전은 VirtualDubMod 1.5.10.2 입니다. VirtualDubMod_1_5_10_2_All_inclusive.zip 라는 파일명을 클릭하면, 다운받을 수 있는 미러 사이트가 여러 개 나옵니다. 아무거나 고르면 됩니다.


Your download should begin shortly. If it does not, try
<...파일 주소...>
or choose a different mirror

"다운로드가 곧 시작될 것입니다. 만약 다운로드가 되지 않는다면, <...파일 주소...> 이 주소를 클릭하거나, 다른 미러 사이트를 선택해 보세요"라는 글귀가 나오며, 다운로드가 시작될 것입니다.


설치할 필요는 없고
\Program Files\VirtualDubMod
등의 폴더를 만든 후, 그 안에 파일을 풀어서 넣어주고 VirtualDubMod.exe 를 실행하면 됩니다.





동영상 자르기



(원본 파일의 이름을 0.avi 로 가정)


(1) 원본 avi 파일을 동영상 플레이어로 보면서, 어디서부터 어디까지 자를지 결정해야 합니다. 예를 들어, 몇 분 몇 초부터 몇 분 몇 초까지 자를지 정해야 합니다.

(2) VirtualDubMod.exe 로, 0.avi 를 불러옵니다. 난해한 에러 메시지가 나올 수 있는데 무시해도 좋습니다.

(3) VirtualDubMod 메뉴에서, Video / Direct stream copy 를 선택합니다.

(4) 마우스로 '시간 슬라이드'를 좌우로 조정하여, 프레임(Frame)을, 자르기 시작할 부분에 맞춥니다. 정밀 조정을 위해서는 좌우 화살표키를 누릅니다. 그런 후 키보드의 Home 키를 누릅니다.

(5) 역시 '시간 슬라이드'를 좌우로 조정하여, 자를 부분의 마지막 부분에 맞춥니다. 그런 후 키보드의 End 키를 누릅니다. 그러면 잘라야 할 부분이 '선택'됩니다.

(6) 풀다운 메뉴의 File/Save As를 선택합니다. 출력할 파일을 out.avi 등으로 이름을 지정하고 저장합니다.


자른 동영상을 보면, 시간이 정확하게 잘려지지 않고 오차가 있을 수도 있습니다. 그러면 위의 작업을 다시 하며 조정해야 합니다.



주의 사항:

* 원본을 손상시키지 않도록, 원본 파일의 등록정보에서 "읽기 전용" 속성을 주는 것이 좋습니다.
* VirtualDubMod 는 많이 쓰이긴 하지만, 완성도가 낮은 프로그램이라서 좀 쓰기가 까다롭습니다.

[QnA] 영문/일본어 사이트 서핑에 가장 좋은 글꼴(폰트)은? / 브라우저 글꼴 지정하기

※ IE(인터넷 익스플로러) 6을 기준으로


영문 사이트



영문 사이트를 서핑하면 기본 글꼴은 Times New Roman 인데 글씨도 작고 거칠어서 서핑이 힘들었습니다. (물론 해당 웹사이트에서 페이지에 폰트를 지정했다면 지정한 폰트로 나오지만, 폰트를 지정하지 않은 경우에는 이 기본 글꼴이 나옵니다.)

저의 경우, 브라우저에서 영문 사이트는 Georgia 체로 나오도록 했습니다.


브라우저 아이콘을 마우스 오른쪽 버튼으로 클릭하거나.
브라우저 메뉴: 도구 > 인터넷 옵션
으로 접근하여

인터넷 등록 정보 > 일반 > 글꼴 > 언어 스크립트 > 라틴어 기반 > 웹페이지 글꼴: Georgia
로 지정하면 됩니다.

'영어'라는 언어가 따로 없고, 영어를 포함한 모든 서유럽어가 '라틴어 기반'으로 표시되어 있습니다.

이렇게 지정하면 영문 글꼴이 Georgia 체로 나오는 것을 볼 수 있습니다. 시원하고 가독성이 높고 무엇보다도 인쇄체에 가까워서 거부감이 없습니다. 그러나 CSS의 font-family 등으로 특정 폰트를 지정한 페이지에서는, Georgia 대신 그 폰트가 나오게 됩니다. 그래서 이 팁은 아주 단순한 디자인의 영문 웹페이지에서만 적용이 가능합니다.




일본어 사이트



IE에서, 일본어 사이트를 위한 기본 글꼴은 MS PGothic 즉 고딕체입니다. 그런데 본문에는 고딕체를 사용하지 않는 데다가, 이 MS고딕의 모양이 별로 좋지 않습니다.

인터넷 등록 정보 > 일반 > 글꼴 > 언어 스크립트 > 일본어 > 웹페이지 글꼴: MS Mincho
로 지정하면, 가나와 한자가 명조체로 나오며 훨씬 더 가독성이 높아지고 인쇄체와 비슷해집니다. ※ MS Mincho: 여기서 Mincho 란 민초(民草)가 아니라, 명조(明朝; みんちょう)입니다.

일본어 사이트의 상당수는 가나와 한자에 특정 폰트를 지정하지 않기 때문에, 이 팁이 효과가 있습니다.




기타



영문이든 일본어이든 한글 사이트든, 일반 텍스트 글꼴 이라는 부분은 바꿀 필요가 없습니다. 이것은 웹페이지와는 상관이 없고, 브라우저에서, 일반 .txt 파일 등을 볼 때만 적용되는 것입니다.

[QnA] 아래아 한글2005에서 쓸, 본문용으로 좋은 영어 글꼴(폰트)은?

아래아한글2005 는 트루타입 폰트 즉 .TTF.TTC 폰트를 불러서 쓸 수 있습니다. 윈도우에 깔려 있는 영문 폰트를 쓰면 됩니다.

그런데 아래아 한글 2005는 영문 트루타입 폰트를 잘 다루지 못하는 것 같습니다. 같은 종류의 트루타입 글꼴을 적용해도 워드패드나 MS워드에서와는 상당히 다른 결과를 보였습니다. 특히 아주 짙은 볼드체처럼 나오는군요.


위의 문제를 감안하지 않는다면, 본문용으로 추천하고 싶은 영문 폰트는 Georgia 입니다. 가독성도 뛰어나고 모양도 품위가 있습니다. 특히 이탤릭체가 필요할 때 좋습니다. 가장 이탤릭체다운 이탤릭체를 보여주기 때문입니다. 윈도98에는 없기 때문에 윈도XP에서 복사해 오거나 해야 합니다. Georgia 체는 다음의 4개의 파일로 되어 있습니다:

georgia.ttf        Georgia
georgiab.ttf       Georgia Bold
georgiai.ttf       Georgia Italic
georgiaz.ttf       Georgia Bold Italic


일반적으로 이탤릭체를 만들 때는 보통의 폰트를 단순히 옆으로 찌그러뜨려서 이탤릭체를 만드는데, Georgia 체는 이탤릭 전용 폰트가 있기 때문에 품질이 아주 높습니다.

만약 고딕체나 볼드체가 필요하다면, Arial 이나 Tahoma에 볼드(진하게)를 적용시키는 것이 가장 무난합니다.



아래아 한글에서 영문 폰트 적용



글꼴 선택 상자 왼쪽에 대표 라고 되어 있으면 한글 글꼴만 리스트에 나옵니다. '대표'를 영문으로 바꿔야만 영문 글꼴이 목록에 나타납니다.




영문 폰트에 대한 여담



오래 전의 일이라서 잘 기억은 나지 않는데, 워드프로세서인 아래아한글을 만드는 (주)한글과컴퓨터에 어떤 사용자가 이의를 제기한 모양입니다. 왜 영문 폰트를 직접 만들 일이지 외국에서 사다 쓰느냐고. 그랬더니 한글과컴퓨터 즉 한컴에서 이런 답변을 했습니다: "외국인이 한글 폰트를 아무리 잘 만들어도 한국인이 보기에는 어색하듯이, 한국인이 영문 폰트를 아무리 잘 만들어도 본토인이 보기에는 어색하다. 그래서 수입해서 쓴다." 이런 요지였습니다.

위의 이야기를 참조해 보면, 아래아한글 고유의 폰트 포맷인 .HFT 에 포함된 영문 글자들은 수입된 폰트일 것 같습니다. 그러나 윈도우에 깔려 있는 트루타입 폰트보다는 어딘가 부자연스러웠습니다. 물론 현재는 아래아한글에서도 TTF 폰트를 마음껏 쓸 수 있느니 지금으로서는 별 의미는 없는 이야기입니다.

결론은 이렇습니다: 한글 폰트에 포함된 영문 폰트는 별로 좋지 않습니다. 되도록 오리지날(?) 영문 폰트로 영문을 작성하는 것이 자연스러울 것입니다.



더 읽기: 오피스

Monday, May 29, 2006

[QnA] 윈도우의 '명령 프롬프트'가, '도스창'인가요?

예, 그렇습니다. 그러나 엄밀한 의미에서의 도스창은 아닙니다. 왜냐하면 윈도우2000/XP 이상의 운영체제에서는 도스(DOS)가 없기 때문입니다. 그렇지만 명령 프롬프트에서 도스의 명령어들을 대부분 실행시킬 수 있고, 배치 파일도 실행 가능합니다.


윈도98 이하의 운영체제에 있는 도스창은 16비트이고, 윈도우2000/XP 이상의 명령 프롬프트는 32비트입니다. 모양은 거의 같지만, 내부적으로는 큰 차이가 있습니다.


도스용 고전게임이나 도스용 그래픽 프로그램은 윈도우2000/XP 등에서 거의 실행되지 않습니다. 왜냐하면 도스는 16비트 운영체제이고, 윈도우2000/XP 는 순수한 32비트 운영체제이기 때문입니다. 그리고 도스용 게임들은 대부분 아주 오래된 하드웨어(그래픽 카드 등)에서만 작동하기 때문입니다.

다만 윈도우2000/XP에 '도스박스 (DOSBox)'라는 공개 프로그램을 설치하여 그 안에서 도스용 고전게임을 실행하면 됩니다. 도스박스는, 16비트 도스는 물론, 오래된 하드웨어까지 흉내내 주기 때문에, 즉 에뮬레이션해 주기 때문에 옛날 게임들이 잘 돌아갑니다. (참조: "[도스박스/DOSBox] 윈도우XP에서, 고전게임 등 도스 프로그램 실행")





관련 포스트: 명령 프롬프트 [Command Processor] 란? [컴퓨터 초보자를 위한 강좌]

명령 프롬프트란? Command Processor [컴퓨터 초보자를 위한 강좌

오늘날의 PC에서 사용되는 운영체제는 그래픽 유저페이스 GUI 기반입니다. 즉 마우스로 아이콘을 클릭하여 무슨 일을 하는 것입니다.

예전에는 명령어들을 키보드로 쳐서 작업을 했습니다. '명령 프롬프트' 즉 코맨드 라인 인터페이스 CLI 기반이었습니다. 물론 불편했습니다. 그러나 GUI 가 항상 편리한 것은 아닙니다. 반복되는 단순 작업은 명령 프롬프트가 훨씬 더 편리합니다. 그래서 윈도우에도 명령 프롬프트가 들어 있습니다.


명령 프롬프트는 어디에 있나요?



명령 프롬프트 [Command Processor]
윈도우에서 명령 프롬프트를 찾아서 실행시킨 장면


위의 그림과 같이, 화면 좌측 하단의 시작 버튼을 누르고
모든 프로그램/보조 프로그램/명령 프롬프트 로 실행시킬 수 있습니다.

그림의, 상단 우측의 검은 화면이 바로 명령 프롬프트 입니다. (명령 프롬프트 제목줄을 마우스 오른쪽 버튼으로 클릭하면, 여러 가지 설정을 바꿀 수 있는 '속성' 메뉴가 나옵니다.)


위의 화면은 명령 프롬프트에서 dir 명령을 실행한 장면입니다. (dir 은 폴더에 들어 있는 파일들의 목록을 화면에 출력하는, 가장 기본적인 명령입니다)


※ 영문 윈도우에서는 명령 프롬프트가, 명령 프로세서 (Command Processor) 로 되어 있는 듯합니다. 명령 프롬프트라는 것의 정체는, cmd.exe 라는 실행 파일입니다. 도스의 COMMAND.COM 에 해당되는 파일이지만, cmd.exe 는 32비트이고 훨씬 더 강력합니다. 윈도우 폴더의 system32/ 폴더 속에 들어 있습니다.





윈도우 탐색기에서, 마우스로, 명령프롬프트(도스창) 간단히 실행하는법: ▶▶ 탐색기 폴더에서, 도스창 실행 레지스트리: '여기에 명령 프롬프트' Command Line Here Registry



▶▶ [QnA] 윈도우의 '명령 프롬프트'가, '도스창'인가요?

☞ BATCH(.BAT)/VBScript(.VBS)

☞ 윈도우(WINDOWS)

유닉스/리눅스(Linux)의, 파일 비교 명령: diff

"텍스트 파일 비교 유틸리티 WinDiff 소개 (마이크로소프트; 프리웨어)" 포스트에서 예로 들었던 이육사의 청포도라는 시를 diff 로 비교한 것입니다. (윈도우용 Win32 으로 컴파일된 diff.exe 임):

D:\Z>diff 0.txt 1.txt
5c5
<                           이육사
---
> 이육사
14d13
< 하늘 밑 푸른 바다가 가슴을 열고
18c17
< 靑袍를 입고 찾아온다고 했으니
---
> 청포를 입고 찾아온다고 했으니
23a23
> (-_-)

D:\Z>



WinDiff 와 같은 포맷입니다. 윈도우의 FC 명령의 결과보다 낫습니다. (십육진수로 보이는 이런 14d13 숫자가 무엇을 의미하는지는 잘 모르겠습니다-_- 변경 내용에 대한 구체적인 정보일 것 같습니다. 몇 행 몇 번째 문자가 변경되었다 뭐 이런 것.)


diff 의 도움말을 보기 위해서는

diff --help

이렇게 해야 합니다. (윈도우나 도스에서는 "/?" 옵션으로 도움말을 출력하지만, 유닉스/리눅스에서는 "--help" 나 "-h" 가 도움말이 나오는 옵션입니다.)




D:\Z>diff --help
Usage: diff [OPTION]... FILES
Compare files line by line.

  -i  --ignore-case  Ignore case differences in file contents.
  --ignore-file-name-case  Ignore case when comparing file names.
  --no-ignore-file-name-case  Consider case when comparing file names.
  -E  --ignore-tab-expansion  Ignore changes due to tab expansion.
  -b  --ignore-space-change  Ignore changes in the amount of white space.
  -w  --ignore-all-space  Ignore all white space.
  -B  --ignore-blank-lines  Ignore changes whose lines are all blank.
  -I RE  --ignore-matching-lines=RE  Ignore changes whose lines all match RE.
  --strip-trailing-cr  Strip trailing carriage return on input.
  --binary  Read and write data in binary mode.
  -a  --text  Treat all files as text.

  -c  -C NUM  --context[=NUM]  Output NUM (default 3) lines of copied context.
  -u  -U NUM  --unified[=NUM]  Output NUM (default 3) lines of unified context.
    --label LABEL  Use LABEL instead of file name.
    -p  --show-c-function  Show which C function each change is in.
    -F RE  --show-function-line=RE  Show the most recent line matching RE.
  -q  --brief  Output only whether files differ.
  -e  --ed  Output an ed script.
  --normal  Output a normal diff.
  -n  --rcs  Output an RCS format diff.
  -y  --side-by-side  Output in two columns.
    -W NUM  --width=NUM  Output at most NUM (default 130) print columns.
    --left-column  Output only the left column of common lines.
    --suppress-common-lines  Do not output common lines.
  -D NAME  --ifdef=NAME  Output merged file to show `#ifdef NAME' diffs.
  --GTYPE-group-format=GFMT  Similar, but format GTYPE input groups with GFMT.
  --line-format=LFMT  Similar, but format all input lines with LFMT.
  --LTYPE-line-format=LFMT  Similar, but format LTYPE input lines with LFMT.
    LTYPE is `old', `new', or `unchanged'.  GTYPE is LTYPE or `changed'.
    GFMT may contain:
      %<  lines from FILE1
      %>  lines from FILE2
      %=  lines common to FILE1 and FILE2
      %[-][WIDTH][.[PREC]]{doxX}LETTER  printf-style spec for LETTER
        LETTERs are as follows for new group, lower case for old group:
          F  first line number
          L  last line number
          N  number of lines = L-F+1
          E  F-1
          M  L+1
    LFMT may contain:
      %L  contents of line
      %l  contents of line, excluding any trailing newline
      %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number
    Either GFMT or LFMT may contain:
      %%  %
      %c'C'  the single character C
      %c'\OOO'  the character with octal code OOO

  -l  --paginate  Pass the output through `pr' to paginate it.
  -t  --expand-tabs  Expand tabs to spaces in output.
  -T  --initial-tab  Make tabs line up by prepending a tab.
  --tabsize=NUM  Tab stops are every NUM (default 8) print columns.

  -r  --recursive  Recursively compare any subdirectories found.
  -N  --new-file  Treat absent files as empty.
  --unidirectional-new-file  Treat absent first files as empty.
  -s  --report-identical-files  Report when two files are the same.
  -x PAT  --exclude=PAT  Exclude files that match PAT.
  -X FILE  --exclude-from=FILE  Exclude files that match any pattern in FILE.
  -S FILE  --starting-file=FILE  Start with FILE when comparing directories.
  --from-file=FILE1  Compare FILE1 to all operands.  FILE1 can be a directory.
  --to-file=FILE2  Compare all operands to FILE2.  FILE2 can be a directory.

  --horizon-lines=NUM  Keep NUM lines of the common prefix and suffix.
  -d  --minimal  Try hard to find a smaller set of changes.
  --speed-large-files  Assume large files and many scattered small changes.

  -v  --version  Output version info.
  --help  Output this help.

FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'.
If --from-file or --to-file is given, there are no restrictions on FILES.
If a FILE is `-', read standard input.
Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.

Report bugs to <bug-gnu-utils@gnu.org>.

D:\Z>


너무 옵션이 많아서 부담스럽습니다.

비교 과정에서, 공백을 무시(Ignore all white space)하는 옵션은 -w 입니다.



관련 게시물:
리눅스 명령어를 윈도우에서 사용하기; 시그윈(Cygwin) 없이 Win32로; GnuWin32

텍스트 파일 비교 유틸리티 WinDiff 소개 (마이크로소프트; 프리웨어)

텍스트 파일을 다루다 보면, 파일을 비교해야 할 일이 많습니다. 일일이 눈으로 비교하면 실수할 수도 있고 힘들기 때문에, 파일 비교 유틸리티 Compare Utility 가 필수적입니다.

울트라에디트(UltraEdit)에 있는 파일 비교 기능을 다년간 사용해 왔지만, 몇 년 전부터 그것이 UltraCompare 라는 상용 프로그램으로 독립화되어 버리고, 이제는 데모 버전으로만 파일 비교 기능이 들어 있었습니다. 그리고 그 울트라컴페어(UltraCompare)라는 상용프로그램도 별로 좋지가 않았습니다.

공개 프로그램 중에서 찾아봤습니다.

유닉스/리눅스의 Diff 명령을, GUI로 구현한 것이 WinDiff 인데 무료이고 마이크로소프트에서 만든 것입니다. 그러나 일반에는 공개되지 않고 플랫폼SDK (Platform SDK) 안에 들어 있었습니다. 그래서 플랫폼SDK를 설치해서 그 안에서 WinDiff 파일들을 뽑아내어야 합니다. ※ 비주얼 스튜디오를 설치하신 분은 그 안에서 한번 찾아보시기 바랍니다.

GUtils.Dll
WinDiff.Exe
WinDiff.Hlp

위의 파일 3개만 있으면 됩니다. 위의 파일을 아무 폴더에 집어넣고 WinDiff.Exe 를 실행하면 됩니다.




WinDiff 로 파일 비교 실습



디렉토리 비교도 할 수 있지만, 여기서는 파일 비교만 다루겠습니다. (이육사 시인의 시 '청포도'를 원본 파일로 삼았습니다.)


원본 파일을 0.txt
수정을 가한 파일을 1.txt
로 가정합니다.

File(파일)/Compare Files (파일 비교) 로 위의 두 파일을 불러옵니다.

만약 완전히 동일한 파일이라면 identical (동일) 이라고 나오며, 더 이상 비교할 수 없습니다.

다른 부분이 있는 파일이라면 빨간 글씨로 뭐라고 나옵니다. 그 빨간 글씨를 클릭하면 다음과 같이 비교가 됩니다:


파일 비교 유틸리티: WinDiff

자동으로, 비교된 결과가 나왔습니다
(원래의 폰트가 너무 작아서, 위의 스냅샷은 돋움체, 10포인트로 바꾸어 준 후 찍은 것입니다)


아까 원본 파일에 있던, "이육사"란 이름 앞에 있는 공백을, 수정한 파일에서는 모두 지웠었기 때문에, 원본에 있던 행이 현재 빨갛게 칠해져 있고, 새 파일의 행은 노랗게 표현되어 있습니다.*

아까 원본 파일에 있던, "하늘 밑 푸른 바다가 가슴을 열고" 하는 행을 지웠었기 때문에, 현재 빨갛게 칠해져 있습니다.

아까 원본 파일에 있던 "靑袍"라는 한자를 새 파일에서는 "청포"로 바꾸어 주었습니다. 치환된 행이 있다는 사실을 보여주고 있습니다.

아까 새 파일에, "(-_-)"라는 이모티콘을 추가했었습니다. 이육사 시인이 이모티콘을 썼을 리는 없겠지요. 노란색으로서 뭔가가 추가되었다는 표시를 해주고 있습니다.

즉, 파일의 삭제된 부분, 변경된 부분, 추가된 부분을 WinDiff 가 정확히 보여주고 있습니다.


* Options(옵션)/Ignore Blanks (공백 무시)에 체크하면, 공백(스페이스, 탭)의 변경을 무시할 수 있습니다.

물론 파일 비교 프로그램이란, 이런 간단한 파일을 비교할 때 쓰는 것이 아니라, 수백 수천 수만 줄짜리 복잡한 소스 코드 등의 변경 사항을 찾아내기 위해 사용하는 것입니다.



윈도우의 FC 명령으로 파일 비교



윈도우 안에도 FC 라는 파일 비교 명령이 있긴 있습니다. ("윈도우 도스창에서의, 파일 비교 명령은? ; 텍스트 파일 / 이진 파일 비교" 참고)

이것은 FC 로 위의 청포도라는 시를 비교한 것입니다:

D:\Z>fc 0.txt 1.txt
파일을 비교합니다: 0.txt - 1.TXT
***** 0.txt

이육사

***** 1.TXT

이육사

*****

***** 0.txt

하늘 밑 푸른 바다가 가슴을 열고
흰 돛단배가 곱게 밀려서 오면,
***** 1.TXT

흰 돛단배가 곱게 밀려서 오면,
*****

***** 0.txt
내가 바라는 손님은 고달픈 몸으로
靑袍를 입고 찾아온다고 했으니

***** 1.TXT
내가 바라는 손님은 고달픈 몸으로
청포를 입고 찾아온다고 했으니

*****

***** 0.txt
아이야, 우리 식탁엔 은쟁반에
하이얀 모시 수건을 마련해 두렴
***** 1.TXT
아이야, 우리 식탁엔 은쟁반에
(-_-)
하이얀 모시 수건을 마련해 두렴
*****


D:\Z>


그런데 FC 는 알아보기도 힘들고, 버그도 좀 있는 것 같고 해서 별로 쓰고 싶지 않습니다.




관련 게시물: 유닉스/리눅스(Linux)의, 파일 비교 명령: diff


더 읽기: 소프트웨어

Saturday, May 27, 2006

[3ds Max] 도스용 3D Studio R4: 추억의 스냅샷 10장

3D Studio R4 라는 프로그램은, 도스용이라서 지금의 윈도우 환경에서는 실행조차 되지 않습니다. 3ds Max 가 있는데 굳이 그것을 필요도 없습니다. 그렇지만 '3D 스튜디오'에는 '3ds 맥스'에서는 볼 수 없는 독특한 매력이 있었습니다.


3D Studio

이런 화면에서 3D 오브젝트를 편집했습니다. 그리운 화면입니다.




3D Studio

선박을 모델링하는 장면입니다. 사실적인 모델링은 아니고 간단한 애니메이션용입니다. 지금 잘 기억은 나지 않지만, 빨간 부분이 선택된 영역입니다.




3D Studio

오브젝트를 정렬하는 대화상자입니다. 현재의 3ds Max 의 그것과 모양은 비슷하지만, 훨씬 단순합니다.




3D Studio

그래픽 파일로 출력하기 위한 대화상자로 기억합니다. 도스에서는 멀티미디어 지원이 거의 없었고, 또 당시에는 그래픽 포맷에 대한 제약도 많았습니다. JPG/JPEG 사진을 모니터에 표현할 수 있는 정도로도 상당한 고급PC로 통했습니다.




3D Studio

오브젝트를 둥글게 원형으로 배열시키는 대화상자입니다. 인터페이스의 색감이 아주 아름답습니다.




3D Studio

요즘의 윈도우 환경에서는 비디오 카드의 종류나 상표를 따지는 프로그램은 없지만, 도스 시절에는 아주 까다로워서, 특정 회사의 특정 품종의 비디오 카드가 아니면 아예 실행되지 않는 프로그램이나 게임이 많았습니다. 그래서 표준으로 정한 것이 VESA (베사) 카드였습니다. 3D Studio 를 설치하면, 비디오 카드의 호환성 문제 때문에 참 어려움이 많았습니다.




3D Studio

요즘의 윈도우 환경에서는 흔한 인터페이스이지만, 도스 시절에는 이런 슬라이드 대화상자가 상당히 첨단적인 것이었습니다.




3D Studio

2차원 도형들을 만들고 편집하던 곳. 도스 시절에는 메모리가 많아 봤자 16메가였고, 32메가 단 사람은 기네스북에 오를 정도였기 때문에, 2D 편집은 이렇게 별도의 창에서 했습니다. 현재의 3ds Max 에서는 2D·3D·애니메이션을 가리지 않고, 모든 작업을 한 화면에서 합니다.




3D Studio

재질을 편집하던 매터리얼 에디터입니다. 다른 오브젝트 편집창은 기본적으로 16색 모드였는데, 이것은 256색 모드였습니다.




3D Studio

파일 열기/저장 대화상자가 상당히 멋있었습니다. 유닉스용 3D 프로그램의 대화상자를 모방했을 겁니다. 그리고 3D Studio 가 무려 300만원짜리 소프트웨어였으니까, 인터페이스도 세련될 수밖에 없었을 겁니다.






더 읽기: 3ds Max

chkdsk /F 옵션으로, 부팅 때 하드 디스크 검사하는 배치 파일 - Batch

윈도우에 내장된, 디스크 검사 프로그램인 chkdsk 의 도움말은 이렇습니다:

D:\Z>chkdsk /?
디스크를 검사하고 상태를 화면에 표시합니다.


CHKDSK [볼륨:[[경로]파일 이름]] [/F] [/V] [/R] [/X] [/I] [/C][/L[:크기]]


  볼륨          검사할 탑재 포인트나 볼륨 이름, 드라이브 문자를
                ":"을 포함하여 지정합니다.
  파일이름      검사할 파일 이름을 지정합니다. (FAT 전용)
  /F            디스크에 있는 오류를 고칩니다.
  /V            FAT 또는 FAT32에서는 디스크에 있는 모든 파일의
                전체 경로와 이름을 표시합니다.
                NTFS에서는 자세한 메시지를 표시합니다.
  /R            손상된 섹터를 찾아서 읽을 수 있는 정보를 복구합니다.
                (/F 포함)
  /L:크기       로그 파일 크기를 지정된 크기 만큼의 KB로 변경합니다.
                크기가 지정되지 않으면 현재 크기를 표시합니다.
                (NTFS 전용)
  /X            필요하면 우선 볼륨을 분리하도록 합니다.
                그러면 볼륨에 대한 모든 핸들을 사용할 수 없습니다.
                (NTFS 전용) (/F 포함)
  /I            색인 항목 확인을 건너뜁니다. (NTFS 전용)
  /C            폴더 구조에서 사이클 항목 확인을 건너뜁니다. (NTFS 전용)

/I 또는 /C 스위치는 지정한 볼륨의 일부에 대한 검사를 건너뛰므로
CHKDSK에 사용되는 시간을 줄일 수 있습니다.

D:\Z>



chkdsk 로 디스크 검사를 하면, /F 옵션을 붙이라는 경고문이 자꾸 나옵니다. /F 옵션을 붙이지 않아도 기본적인 에러 수정은 되지만, 심각한 문제가 있다면 고칠 수 없는 것으로 알고 있습니다.

현재 사용하는 하드에 대해서는 /F 옵션으로 검사할 수 없기에, 다음번 부팅시에 검사하도록 예약해 두어야 합니다. (윈도우를 부팅할 때마다 검사하는 것이 아니라 단 1회만.) 그런데 모든 하드를 부팅 시에 검사하려면 모든 하드에 chkdsk /F 이런 명령을 각각 실행해 주어야 하기에 불편합니다. 이 배치 파일은 그런 과정을 한 번에 처리하도록 만든 것입니다.


FAT32 로 포맷된 하드는 파일 테이블의 구조가 단순하기 때문에 이럴 필요가 없을 것입니다. NTFS로 포맷된 하드나 파티션만을 이 배치 파일 속에 포함시켰습니다. 만약 D: 가 없거나 NTFS가 아니라면 D: 부분을 배치 파일에서 지우고, NTFS로 된 E: 가 있다면 포함시켜야 합니다.

@echo off

C:
echo C:
cd \
chkdsk /F
echo ================================================================================
echo.

D:
echo D:
cd \
chkdsk /F

pause



위의 코드를 Check Disks on Boot.bat 등의 이름으로 하드에 저장한 후 마우스로 클릭하여 실행시킵니다.





배치 파일을 실행한 결과:



C:
파일 시스템 유형은 NTFS입니다.
현재 드라이브를 잠글 수 없습니다.

다른 프로세스가 볼륨을 사용하고 있으므로 CHKDSK를
실행할 수 없습니다. 다음에 시스템이 다시 시작할 때
이 볼륨을 검사하도록 하시겠습니까(Y/N)? y

다음에 시스템을 다시 시작할 때 이 볼륨을 검사합니다.
================================================================================


D:
파일 시스템 유형은 NTFS입니다.
현재 드라이브를 잠글 수 없습니다.

다른 프로세스가 볼륨을 사용 중이기 때문에 Chkdsk를 실행할 수 없습니다.
이 볼륨을 우선 분리하면 Chkdsk를 실행할 수 있을 것입니다.
그러면 이 볼륨에 대해 열린 모든 핸들을 사용할 수 없습니다.
이 볼륨에서 분리하도록 하시겠습니까(Y/N)? y

볼륨이 시스템 드라이브이거나 볼륨에 활성 페이징 파일이 있기 때문에
Chkdsk가 볼륨을 분리할 수 없습니다. 다음에 시스템을 다시 시작할 때
이 볼륨을 확인하도록 예약하시겠습니까(Y/N)? y

다음에 시스템을 다시 시작할 때 이 볼륨을 검사합니다.
계속하려면 아무 키나 누르십시오 . . .



보시다시피 복잡한 메시지가 나옵니다. 모두 y 를 선택하시면 됩니다. 다음 번에, 윈도우를 부팅할 때에 부팅 화면 대신에, 디스크 검사 화면이 나올 것인데, 이 배치 파일의 설정에 따른 정상적인 화면이니 전혀 놀라지 마시길 바랍니다. 검사가 끝나면 자동으로 부팅이 됩니다. 윈도우가 실행된 상태에서는 할 수 없는 종류의 검사를 하고 치료까지 하는 것입니다.



▶▶ 모든 하드디스크(HDD)를 한꺼번에 검사하는 배치(Batch) 파일

1달에 1번 정도는 하드 디스크 검사를 [컴퓨터 초보자를 위한 강좌]

도스(DOS) 시절에는 "노턴 디스크 닥터 Norton Disk Doctor" 라는 프로그램이 필수적이었습니다. 하드나 플로피에 에러가 많이 나서 고쳐야 하는 일이 비일비재했기 때문입니다. 요즘의 하드는 튼튼하고, 플로피도 쓰지 않기 때문에(워드프로세서 자격증 시험에서는 요즘에도 플로피에 답안을 작성하는가 보더군요^^) 디스크 에러에 대한 경각심이 많이 사라졌습니다.

그러나 하드에 물리적이든 논리적이든 에러가 생기면, 귀중한 자료가 다 날아가 버릴 수도 있기 때문에 신경을 많이 써야 합니다.


윈도우2000이나 XP에는 디스크 닥터와 비슷한 프로그램이 내장되어 있습니다. 1달에 1번 정도는 이것으로 하드를 검사해 보는 것이 좋습니다.



하드 표면 전체 검사



(1) 탐색기 등에서, C: 나 D: 등의 드라이브 문자를, 마우스 오른쪽 버튼으로 클릭하면 "등록 정보" 또는 "속성" 메뉴가 나옵니다. 그것을 선택합니다.

(2) 등록정보 창에서, 도구 탭으로 갑니다.

(3) 오류 검사 항목에서, 지금 검사 버튼을 누릅니다.

(4) 불량 섹터 검사 및 복구 시도 라는 옵션에 체크하고 시작 버튼을 누릅니다.


드라이브 1개의 검사에 40분 정도는 걸립니다. 디스크 검사 도중에는, 하드를 과격하게 작동시키는 프로그램은 사용하지 않는 것이 좋습니다. 메모장으로 소설을 읽거나, MP3 정도를 듣는 것은 괜찮습니다.




위의 검사 방법은 하드의 물리적 상태를 주로 검사하는 것입니다.

하드에는 논리적 에러가 더 많이 발생합니다. 특히 컴퓨터가 다운이 되었을 때 그럴 경우가 많습니다. 다음의 방법으로 논리적 에러를 검사할 수 있습니다: "모든 하드디스크(HDD)를 한꺼번에 검사하는 배치(Batch) 파일"





관련 게시물: [QnA] 하드 디스크에서 물리적 에러가 발생했는데요

[VMware] 게스트OS (윈도우XP / 윈도우2000) 에 필요한 최소 메모리 용량은?

윈도우XP: 256메가
윈도우2000: 128메가

윈도우XP에 메모리를 128메가만 주면, 아주 느리게 부팅이 됩니다. 게스트 XP에는 256메가를 주어야만 최소한의 실용성을 확보할 수 있습니다.

어제 윈도우XP(게스트)에서 128메가만 주고 윈도-업데이트를 하니 무려 4시간이 넘게 걸렸습니다. 그런데 256메가를 주고 다시 해보니 30분이 걸렸습니다.

윈도우2000에 256메가를 주면 훨훨 날아다닙니다.

윈도우98에는 128메가면 충분했습니다.



제가 가진 메모리가 512메가뿐이기 때문에, 게스트 OS에 256메가 이상을 주기는 사실상 불가능했습니다.

윈도우XP는 윈도우2000보다 적어도 100메가의 메모리를 더 필요로 했습니다.

XP는 아직도 그럭저럭 돌리겠는데, 윈도우 비스타를 게스트OS로 깔려면 최소한 512메가를 주어야 한다고 알고 있습니다.






참고로 저의 호스트OS는 즉 진짜OS는 윈도우2000입니다. 윈도우2000에다가 VMware를 깔아서 쓰고 있는데,

윈도우XP가 호스트OS이고, 그 안에다 게스트OS로 윈도우XP를 깐다면 더 불리합니다. 윈도우XP라는 운영체제 자체가 워낙 메모리를 많이 먹기 때문입니다.





▶▶ [VMware/가상 PC] 소프트웨어로 또 한 대의 PC를 만들어 보자 !

▶▶ VMware 에, 가상 하드 추가하고 FDISK 하기

▶▶ [QnA] VMware 에서, 가상 하드디스크가 인식이 안돼요 / 가상 하드의 실제 위치

▶▶ 윈도우XP에 필요한 메모리 용량 - 최소한/권장 용량 - Memory Requirements

☞ WINDOWS

모든 하드디스크(HDD)를 한꺼번에 검사하는 배치(Batch) 파일

※ 윈도우2000/XP용 배치 파일입니다.


하드디스크의 논리적 구조는 언제라도 깨어질 수 있습니다. 특히 컴퓨터가 다운(먹통)되었을 때 그렇습니다. 그래서 chkdsk 라는 하드디스크 검사 프로그램을 적어도 보름에 한 번 정도는 해주어야 합니다.

그런데 이 배치 파일을 사용하면 위의 작업을 좀더 간단하게 할 수 있습니다. 이 배치 파일을 한 번 클릭하는 것으로, 모든 하드를 한꺼번에 검사할 수 있습니다.

컴퓨터에
C: D: E:
3개의 하드(또는 파티션)가 있다고 가정합니다. 만약 여러분의 PC에 D: 나 E: 드라이버가 없다면 아래의 코드에서 D: 나 E: 부분을 지워야 합니다.

@echo off

color f

echo C:
chkdsk c:
echo ERRORLEVEL=%ERRORLEVEL%
echo ================================================================================
echo.

echo D:
chkdsk d:
echo ERRORLEVEL=%ERRORLEVEL%
echo ================================================================================
echo.

echo E:
chkdsk e:
echo ERRORLEVEL=%ERRORLEVEL%
echo.




pause > nul



위의 코드를 Check Disks.bat 등의 적당한 이름으로 바탕화면 등에 저장한 후, 마우스로 클릭하면, 명령 프롬프트 창이 뜨며, 하드디스크에 대한 검사가 즉시 실시됩니다.




코드에 대한 설명:



color f
명령 프롬프트 창은, 검은 색 바탕에 회색 글자가 기본입니다. 좀더 글자가 선명히 보이도록 글자를 하얀색으로 바꾸는 명령어입니다.


echo C:
화면에 "C:" 라는 문자열을 단순히 출력하는 것입니다. 현재 어떤 드라이브를 검사하는지 표시하는 것입니다.

chkdsk c:
이것은 이 배치 파일의 핵심입니다. chkdsk 라는 디스크 검사 프로그램을 호출합니다. chkdsk 는 윈도우에 기본으로 설치되어 있습니다.

echo ERRORLEVEL=%ERRORLEVEL%
chkdsk 라는 프로그램을 비롯한 거의 모든 프로그램은, 성공적으로 끝나면 0을, 문제가 있으면 0이 아닌 값을 반환하며 끝납니다. chkdsk 가 어떤 값을 반환하며 끝났는지는 알아보는 것입니다.

ERRORLEVEL=0 이라면 아무 문제가 없는 것입니다. 그런데 2나 3을 반환하는 경우가 있습이다. 제 경험상으로 ERRORLEVEL=2 라면 심각하지 않은 문제가 있는 것이고 ERRORLEVEL=3 이라면 약간 심각한 문제가 있는 것입니다. 이때는 3이 아닌 숫자가 나올 때까지 디스크 검사를 여러 번 반복해야 했습니다. 그러나 걱정할 정도의 문제는 아닙니다.

echo.
화면에 빈 줄을 하나 출력하는 명령입니다.

pause > nul
사용자가 아무 키나 누를 때까지 기다리고 있으라는 명령입니다. 디스크 검사가 끝나자마자 명령 프롬프트 화면이 닫혀 버리면 결과를 확인할 수 없기 때문에 이렇게 대기 명령을 주었습니다. 그리고 원래 pause 명령을 사용하면 "계속하려면 아무 키나 누르십시오 . . ." 라는 문자열이 나오는데 화면을 간결하게 하기 위해 "> nul" 로 재지향하여 이 문자열이 나오지 않도록 하였습니다.





배치 파일 실행 결과:



C:
파일 시스템 유형은 NTFS입니다.
볼륨 레이블은 Foo입니다.

경고! F 매개 변수가 지정되지 않았습니다.
CHKDSK를 읽기 전용 모드로 실행합니다.

CHKDSK에서 파일을 확인합니다. (1/3 단계)
파일 확인 작업을 완료했습니다.
CHKDSK에서 색인을 확인합니다. (2/3 단계)
색인 확인 작업을 완료했습니다.
CHKDSK에서 보안 설명자를 확인합니다. (3/3 단계)
보안 설명자를 확인했습니다.

전체 디스크 공간:    8385898KB
   1920188KB (10228개 파일)
색인 1078개:       3652KB
잘못된 섹터:          0KB
시스템 사용:      61230KB
로그 파일이      43984KB가 되었습니다.
사용 가능한 디스크 공간:    6400828KB

각 할당 단위 크기:       4096바이트
디스크의 전체 할당 단위 개수:    2096474개
디스크에서 사용 가능한 할당 단위 개수:    1600207개
ERRORLEVEL=2
================================================================================


D:
파일 시스템 유형은 NTFS입니다.
볼륨 레이블은 Bar입니다.

경고! F 매개 변수가 지정되지 않았습니다.
CHKDSK를 읽기 전용 모드로 실행합니다.

CHKDSK에서 파일을 확인합니다. (1/3 단계)
파일 확인 작업을 완료했습니다.
CHKDSK에서 색인을 확인합니다. (2/3 단계)
색인 확인 작업을 완료했습니다.
CHKDSK에서 보안 설명자를 확인합니다. (3/3 단계)
보안 설명자를 확인했습니다.

전체 디스크 공간:  100438348KB
  43506632KB (20613개 파일)
색인 1510개:       7660KB
잘못된 섹터:          0KB
시스템 사용:      95740KB
로그 파일이      65536KB가 되었습니다.
사용 가능한 디스크 공간:   56828316KB

각 할당 단위 크기:       4096바이트
디스크의 전체 할당 단위 개수:   25109587개
디스크에서 사용 가능한 할당 단위 개수:   14207079개
ERRORLEVEL=2
================================================================================


E:
파일 시스템 유형은 FAT32입니다.
FooBar 볼륨을 2005-12-02 오후 2:15에 만들었습니다.
볼륨 일련 번호는 273D-5EC1입니다.
파일과 폴더를 확인하는 중입니다...
파일과 폴더를 확인했습니다.
Windows에서 파일 시스템에 문제가 없음을 확인했습니다.
전체 디스크 공간:     8,369,532KB
숨김 파일 3개:            12KB
폴더 1개:             4KB
      445,252KB (3개 파일)
사용 가능한 공간:     7,924,260KB

각 할당 단위:         4,096바이트
디스크의 전체 할당 단위 개수:     2,092,383개
디스크에서 사용 가능한 할당 단위 개수:     1,981,065개
ERRORLEVEL=0



위와 같은 결과가 명령 프롬프트 창에 나타납니다.

위에서 말하는 "볼륨"이라는 것은, 하드 혹은 하드의 파티션을 말합니다. 쉽게 말해서 C: D: E: 같은 드라이브가 볼륨입니다.

NTFS 볼륨에서는 ERRORLEVEL=2 가 나오는 것이 보통이었습니다.



단, 이 검사는 하드의 표면 전체를 검사하지는 않습니다. 파일의 정보가 담긴 영역만을 검사합니다. 그래서 빨리 끝나는 것입니다.


하드 표면의 전체 검사: "1달에 1번 정도는 하드 디스크 검사를 [컴퓨터 초보자를 위한 강좌]"





관련 포스트: chkdsk /F 옵션으로, 부팅 때 하드 디스크 검사하는 배치 파일 - Batch

더 읽기: WINDOWS

Friday, May 26, 2006

빅토리녹스(일명 맥가이버 칼)의 뻰치(플라이어 Plier) 활용: 유리병 재활용 때...

오늘 까스활명수-_- 유리병을 재활용 상자에 버리려고 보니까, 알루미늄 뚜껑의 밑부분이 완전히 떨어지지 않고, 마치 손오공의 머리테처럼 남아 있더군요.

아무래도 유리병을 녹여서 재활용할 때 문제가 될 것 같아서 떼어내어야 했습니다. 그런데 손으로는 떼어지지도 구부려지지도 않았습니다.

그래서 빅토리녹스의 뻰치로 집어서 조금 구부리니 쉽게 떨어져 나갔습니다.


빅토리녹스에 여러가지로 편리한 용도가 많았습니다.




2007-02-08 업데이트

요즘 케이블 TV에서 맥가이버가 재방송되고 있더군요.

그런데 맥가이버가 가지고 있는 것은, 보통 많이 팔리는 "장교용 나이프"가 아니라, 작은 "포켓용 나이프"일 것입니다.

좀 무겁긴 하지만 장교용 나이프가 좋습니다. 포켓용은 도구가 너무 빈약합니다.



▶▶ [리뷰] 빅토리녹스 Victorinox : Swiss Army Knife (일명 맥가이버 칼)

☞ 생활

구글 통계(Google Analytics) 초대장/초대 코드(Invitation Code)는 어디서 어떻게 받나요? [QnA]

구글 통계 홈페이지에 가시면

Google Analytics is offered by invitation only. Request an invitation. (구글 통계는 초대 형식으로만 가입이 가능합니다. 초대 신청을 하세요) 이라는 곳이 있습니다. 또는 Get Your Invitation (초대장을 받으세요)이라는 곳도 있습니다. 같은 곳입니다.

그곳을 클릭하시면 이름(Name)과 이메일 주소(Email) 를 입력하는 칸이 나옵니다.

실명이 아니어도 됩니다. 아무 이름이나 넣되 되도록 영문 이름으로 넣어야 될 것입니다. 홍길동이라면 Gil Dong 정도로 넣으시면 됩니다. 이메일 주소는 정확해야 합니다.

그런 후 Submit (제출) 버튼을 누르시면 됩니다.


2~4개월 기다리셔야 합니다. 신청자들이 수없이 많이 밀려 있기 때문에, 구글이 즉시 초대장을 보내드릴 수 없습니다.


아무튼 몇 달 기다리시면 어느날
Google Analytics Invitation Code (구글 통계 초대 코드) 라는 제목의 이메일이 도착합니다. 그곳의 링크만 클릭하시면 가입이 됩니다.




구글 통계에 한글판이 있나요?



예, 한글화가 잘 되어 있습니다. 그러나 처음에 가입하면 영문판으로 되어 있을 가능성이 높습니다.

My Account (내 계정)라는 곳의 Language(언어)에서 "한국어"를 선택하시고, Save Changes (변경 사항 저장)를 누르시면, 구글 통계가 한글판이 됩니다.



구글 통계는 무료인가요?



예, 100% 무료입니다.




'홈페이지 방문객 카운터'가 '구글 통계(Google Analytics)'인가요?



예, 그런데 보통의 카운터보다 좀더 전문적인 것입니다. 개인 홈페이지에서도 사용할 수 있지만, 주로 중소기업에 적합한, 방문객 통계 툴입니다.





관련 포스트:
구글 통계 (Google Analytics) 초대장 오늘 받다 / 짧은 사용기

[QnA] 행서체 (行書) / 궁서체 / 붓글씨 한자 폰트는?

행서체(行書體) 한자 폰트



정자인 해서(楷書)를 조금 흘려서 빠르게 쓴 것이, 행서(行書)입니다. 초서(草書)의 요소를 약간 가미한 것으로서, 실제 붓글씨를 쓸 때에는 가장 실용적인 서체입니다. (빠르기로 치면 초서가 가장 빠르지만, 다산 정약용도 목민심서에서 언급했듯이 초서라는 것은 한문을 잘 아는 사람에게도 상당히 난해합니다.)

일본어 한자 폰트 중의 행서체
DHPGyoSho-Lt
DFGyoSho-Lt & DHPGyoSho-Lt.ttc

※ 위의 그림에서 위쪽에 있는 부분만 행서체입니다. 밑에 있는 부분은 '에도칸테류'라는 일본식 서체입니다.

이 정도라면 행서에 속한다고 볼 수 있을 것입니다. 일본어 폰트에 있는 것인데, 한글 폰트 중에서는 행서체 한자가 없더군요.



궁서체 / 붓글씨 한자 폰트



윈도우에 기본적으로 깔려 있는 궁서체 폰트에는, 궁서체 한자가 들어 있지 않습니다. 그냥 명조체이더군요.

한글 한자 폰트 - 휴먼옛체

아래아한글 등의 워드프로세서 설치CD 안에 보면 휴먼옛체 라는 글꼴이 있습니다. 예서체에 가까운 폰트이긴 하지만, 휴먼옛체의 한자 폰트가 한글 궁서체와 그럭저럭 어울릴 것입니다.


그런데 위의 행서체 한자 폰트나 휴먼옛체나, 윈도에 기본으로 설치되어 있는 것이 아니기 때문에, HTML에 직접 사용할 수 없습니다. 그림으로 만들어서 적용해야 합니다.




관련 게시물:

[QnA] 한자 폰트(글꼴) 있는 곳 / 좋은 한자 폰트는?

한자(한문) 예서체 폰트(글꼴) 소개

좋은/특이한 한글 폰트(글꼴)들 소개

[VBScript-VBS] 하드디스크 남은 용량을, 퍼센트로 표시하는, 비주얼 베이직 스크립트

하드디스크 등록정보를 보면, 남은 용량(사용 가능한 용량)과 함께 파이 그래프가 나오는데, 남은 용량 비율이 퍼센트로 나오지 않아서 아주 불편합니다. 윈도우2000은 물론 윈도우XP에서도 나오지 않았습니다.

마이크로소프트라는 회사 내에는, 어떻게 하면 사용자들을 불편하게 할까 하고 궁리하는 부서가 따로 있는 것 같습니다. 아무리 생각해 봐도 그런 결론밖에는 나오지 않았습니다.

그래서,
비주얼 베이직 스크립트를 사용해서 간단하게, 남은 용량을 퍼센트로 표시하는 유틸리티를 만들어 보았습니다.

컴퓨터에 물리적 하드 혹은 논리적 하드(파티션)가 몇 개 있는지 자동으로 파악하여, 모든 하드의 용량 정보를 표시합니다.



''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
'                            DiskFree v1.0
'
'                               (c)2005
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

   Option Explicit

   Const K = 1024

   Main




Sub Main

   Const DriveTypeRemovable = 1
   Const DriveTypeFixed     = 2
   Const DriveTypeNetwork   = 3
   Const DriveTypeCDROM     = 4
   Const DriveTypeRAMDisk   = 5
   Dim i, fso, Str, objDriveList

   Set fso = CreateObject("Scripting.FileSystemObject")
   Set objDriveList = fso.Drives

   For Each i in objDriveList
       If i.DriveType = DriveTypeFixed Then
          Str = Str & myDiskFreeCalc(i)
       End If
   Next

   MsgBox Str,,"DiskFree"

End Sub




Function myDiskFreeCalc(strDrivePath)

   Dim fso, objDrive, Str
   Dim TotalSizeBytes, TotalSizeGB
   Dim DiskUsedBytes, DiskUsedGB
   Dim DiskFreeBytes, DiskFreeGB
   Dim DiskFreePercentage

   Set fso = CreateObject("Scripting.FileSystemObject")
   Set objDrive = fso.GetDrive(fso.GetDriveName(strDrivePath))

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
   TotalSizeBytes = FormatNumber(objDrive.TotalSize, 0)
      TotalSizeGB = FormatNumber(TotalSizeBytes / (K * K * K), 2)

    DiskFreeBytes = FormatNumber(objDrive.FreeSpace, 0)
       DiskFreeGB = FormatNumber(DiskFreeBytes / (K * K * K), 2)

    DiskUsedBytes = FormatNumber( TotalSizeBytes - DiskFreeBytes, 0)
       DiskUsedGB = FormatNumber((TotalSizeBytes - DiskFreeBytes) / (K * K * K), 2)

    DiskFreePercentage = FormatNumber( (DiskFreeBytes / TotalSizeBytes) * 100, 2)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

   Str = "[" & UCase(strDrivePath) & "] " & DiskFreePercentage & "% free" _
         & vbCrLf

   Str = Str & "TotalSize: " & TotalSizeGB & " GB" & vbCrLf
   Str = Str & "Disk Used: " & DiskUsedGB & " GB" & vbCrLf
   Str = Str & "Disk Free: " & DiskFreeGB & " GB" & vbCrLf & vbCrLf

   myDiskFreeCalc = Str

End Function




위의 코드를 DiskFree.vbs 등의 이름으로 하드에 저장하고 클릭하면 다음과 같은 창이 나오며, 하드 용량에 대한 정보가 표시됩니다. 요즘 하드는 최소한 수십 기가가 넘기 때문에, GB기가 바이트로 용량을 표시했습니다. 1024MB(메가바이트)가 1GB입니다:


하드디스크 용량 보기 VBScript




왼쪽 위의 창은 윈도우2000에서 이 스크립트를 실행시킨 화면입니다. 하드가 C: D: E: 세 개이기 때문에 3개가 모두 나왔습니다.

오른쪽의 작은 창은 윈도우XP에서 실행시킨 것입니다. XP가 깔린 PC는 지금 C드라이브 하나만 붙어 있기 때문에 하나만 나타나고 있습니다.

맨아래쪽 그림은 위의 코드가 든 파일을 바탕화면에 놓고 마우스로 클릭하여 실행시키는 장면입니다.


※ VBScript 는 비주얼 베이직 컴파일러나 오피스가 없어도 실행됩니다. 비주얼 베이직 자체와는 관련이 없고, 서로 독립적인 언어입니다.




▶▶ 윈도우XP] 하드 디스크 남은 용량, 드라이브 사이즈 보는 방법; Windows HDD Disk Free Size



HTML] title(타이틀;말풍선) 속성과, img 태그의 alt 속성의, 차이점

HTML 태그의 title 속성은, 설명(Advisory Information)이나 도움말이 든, 말풍선을 만드는 속성입니다. 참조: "[HTML] 웹페이지에서 마우스 툴팁(Tooltip; 말풍선) 태그(Tag)"


alt 속성은 img 태그 안에서만 쓰입니다. 즉 JPG/GIF 등의 그림에 관련된 속성(Attribute)입니다. 그림이 서버에서 지워졌거나, 또는 인터넷 종량제 등으로 인해 그림을 일부러 표시하지 않도록 브라우저를 설정한 경우 등, 그림을 표현할 수 없는 경우가 있습니다. 이때는 그림이 있어야 할 자리를 텅 비워 두는 것보다는 글자들을 대신 채워 넣는 것이 좋습니다. 바로 alt 속성 안에 들어 있는 글자들이 그림 대신으로 (Text Alternative) 출력되는 것입니다.


이것이 alt 속성의 사용법입니다:

<img src="그림 주소" alt="그림이 없을 때 나올 설명" />




브라우저에 따라 주의할 점



인터넷 익스플로러에서는 alt 속성도 말풍선을 출력합니다.

<img src="그림 주소" alt="그림이 없을 때 나올 설명" />

즉 위와 같이만 해주어도 alt 속성의 내용이 말풍선으로 나옵니다. 그러나 이것은 표준이 아닌 것으로 알고 있습니다. 파이어폭스에서는 alt 속성으로 말풍선을 출력하지 않고 title 속성으로만 말풍선을 출력할 수 있습니다. 따라서 그림에 말풍선으로 설명을 추가할 때는 title 속성을 사용해야 합니다.


<img src="그림 주소" alt="그림이 없을 때 나올 설명" title="말풍선에 나올 설명" />

이렇게 설명을 이중으로 해주는 것이 정석입니다. 물론 설명이 같을 수도 있고 다를 수도 있습니다. 그리고 title 속성은 선택적이지만 alt 속성은 사실상 필수적인 매우 중요한 속성입니다. 그림에는 반드시 alt 속성으로 설명을 추가하는 것이 좋습니다. (그러나 alt 속성을 추가하지 않는다고 해서 에러가 나는 것은 아닙니다.)


외국에서는 인터넷 요금이 비싸서 그림이나 사진이 나오지 않고 글만 나오게 해서 서핑하는 네티즌들이 많습니다. 이때 alt 속성이 도움이 됩니다. 물론 한국에서는 종량제가 실시되지 않기에 큰 의미는 없지만, 구글 같은 검색엔진에서는 그림의 alt 속성을 중요하게 여기고 인덱스합니다. 따라서 그림에 alt 속성으로 설명을 추가하면 여러모로 도움이 됩니다.




▶▶ [HTML-CSS] 그림/사진 태그인 img 태그의 속성

▶▶ HTML title 태그, 페이지 제목 넣기; 타이틀 Tag

울트라에디트(UltraEdit)를, 위지위그 HTML 에디터로 사용하기 [HTML-CSS]

프롤로그(?)



어제 랄라라님의 말씀을 듣고 오랜만에 위지위그(WYSIWYG) HTML 에디터에 대해 고민해 보았습니다. 그러고 보니 거의 4년 넘게 한 번도 위지위그 에디터에 대해 생각해 본 적이 없는 것 같습니다. (위지위그 HTML 에디터란, 태그를 직접 입력하여 웹페이지를 만드는 에디터가 아니라, 워드프로세서처럼 비주얼하게 편집하는 에디터입니다. What You See Is What You Get 의 첫글자를 딴 것입니다.)

이 블로거닷컴도 그렇지만, 웹페이지를 만든다는 일이 참 힘듭니다. 그냥 글쓰기도 힘든데 태그까지 붙여 가며 글을 써야 하니 그럴 수밖에 없습니다. 개인 홈페이지가 자꾸 줄어들고, 모두 포털로 몰려가는 이유 중의 하나일 것입니다.


저도 위지위그 에디터를 찾아다닌 적이 있었습니다. 우선 MS워드로 페이지를 작성한 후 HTML파일로 저장하는 방법을 시도해 보았습니다. 그런데 MS워드가 모든 문단에다가 동일한 CSS를 반복하여 적용했기에, HTML 파일의 크기가 엄청났습니다. 그래서 쓰기가 곤란했습니다. 아래아한글로도 시도해 보았는데 결과가 비슷했던 것으로 기억합니다. 원래 HTML/CSS라는 것은 사람이 직접 태그를 적어 가며 작성하게끔 만들어져 있습니다. 그래서 기계로 자동화하여 작성하는 것은 힘들었습니다.

그런 후 '나모 웹에디터 Namo WebEditor'를 써 보았는데, 초창기 버전이라서 그렇기도 하겠지만 기능이 아주 부족했습니다. CSS(스타일 시트)도 거의 지원되지 않고, 지원된다 하더라도 비효율적으로 CSS가 적용되었습니다. (드림위버 Dreamweaver 가 최고의 위지위그 에디터라는 이야기를 들었는데 실제 써 보지는 못했습니다.)

마지막으로, MS오피스*에 있는 프론트페이지 FrontPage 를 사용해 보았습니다. 프론트페이지는 그리 좋은 평가를 받지 못하는 소프트웨어이지만, 제게는 도움이 되었습니다. 프론트페이지로 여러가지 테스트를 해 보면서 HTML/CSS 에 대해서 조금씩 공부를 하게 되었습니다. 그러나 실제로 웹페이지 작성에 사용하기에는 무리였습니다. 나모 에디터와 마찬가지로, 미묘한 작업은 불가능했고 결과가 투박했습니다.

* 에디션에 따라서 프론트페이지가 들어 있지 않을 수도 있음

텍스트 에디터를 사용하여 수작업으로 태그를 붙여가며 작성하는 것이 최선의 방법이라는 결론을 얻었습니다.




울트라에디터를 위지위그 HTML 에디터로



텍스트 에디터는 여러 가지가 있지만, 제가 오랫동안 울트라에디트를 사용해 왔기에 울트라에디트를 중심으로 설명하겠습니다. 다른 에디터에서도 마찬가지입니다.

웹페이지를 직접 작성할 때 우선 가장 힘든 것이 타이핑입니다. 태그를 외우고 정확한 철자로 적어주는 작업을 무한 반복해야 하기 때문입니다. 울트라에디터 템플릿 등을 사용하여 이 과정을 단순화시켰습니다. (블로거닷컴의 템플릿과는 다른 것입니다)



울트라에디트에 HTML 태그 템플릿을 추가하는 장면
울트라에디트에 HTML 태그 템플릿을 추가하는 장면: 클릭하면 확대

울트라에디트 메뉴의
Advanced (고급) > Display/Modify Templates (템플릿 표시/수정) 에다가, 자주 쓰는 태그들을 집어넣었습니다.

그림과 같이 하면 이제 Alt+1 만 누르면 <a href=""></a> 이런 태그가 자동으로 찍혀 나오게 됩니다. 태그를 암기하여 직접 적어주는 고통에서 어느 정도 해방되었습니다.



또한, 자주 쓰는 태그들의 집합을 Note.Templates.htm 이런 파일로 만들어서 울트라에디트에 항상 로딩시켜 놓았습니다. (그림에서 분홍색 바탕에 있는 문자열들이 그것.) 태그들의 집합이 필요할 경우에는 타이핑하는 것이 아니라 Note.Templates.htm 이 파일에서 카피해서 쓰는 것입니다.





위지위그 비슷한 효과 내기



(하드에 0.html 파일이 있다고 가정)

(1) 0.html 을 울트라에디터로 불러옵니다.
(2) 동시에 0.html 을 브라우저로도 불러옵니다.
(3) 0.html 을 울트라에디터로 편집합니다.
(4) 브라우저에서 F5키를 눌러 0.html 의 화면을 갱신한 후, 결과를 살펴봅니다.
(5) 만족스러운 결과가 나올 때까지 위의 작업을 반복합니다.

(7) 울트라에디터에서 Ctrl+A 키로 0.html 의 내용을 '모두 선택'한 후, Ctrl+C 로 카피합니다.
(8) 블로거닷컴의 대시보드로 가서, 온라인 HTML 편집기를 열고 그 안에다 Ctrl+V 로 '붙여넣기'를 합니다.


제가 블로그에 글을 올리는 방법은 이것입니다.




결론



물론 이런 방법이 궁극적인 해결책은 될 수 없습니다. 태그를 전혀 모르는 분들도 HTML 문서를 마음대로 작성할 수 있는 솔루션이 나와야 할 것입니다. 그러나 현재의 위지위그 에디터 기술로는 제대로된 웹페이지 작성이 사실상 불가능합니다. HTML태그와 CSS의 조합이 무한대이고, 브라우저의 종류와 버전에 따른 차이도 크기 때문에, 페이지 작성의 자동화가 아직은 요원한 일이라고 생각됩니다.




더 읽기: HTML/CSS
더 읽기: TEXT EDITOR

Thursday, May 25, 2006

[HTML] 웹페이지에서 마우스 툴팁(Tooltip; 말풍선) 태그(Tag)

화면의 어떤 요소에 마우스 커서를 가져가면 작은 창이 뜨며, 설명이나 간단한 도움말을 보여주는 것을 "툴팁(Tooltip)"이라고 합니다. 쉽게, 말풍선으로 부르기도 합니다.

HTML에서는 title 속성으로 말풍선을 만듭니다. 사용법은 다음과 같습니다:



텍스트 링크에 말풍선 붙이기



테스트:
여기로 마우스 커서를

코드:
<a href="http://www.google.co.kr/" title="말풍선입니다">여기로 마우스 커서를</a>






이미지에 말풍선 붙이기



테스트:


코드:
<img src="http://www.google.co.kr/logos/Logo_60wht.gif" title="말풍선입니다" />






이미지 링크에 말풍선 붙이기



테스트:


코드:
<a href="http://www.google.co.kr/" title="말풍선입니다"><img src="http://www.google.co.kr/logos/Logo_60wht.gif" title="말풍선입니다" /></a>






문단 등 기타 요소에 말풍선 붙이기



<p></p> 나 <span></span> 이나 <div></div> 태그 등 거의 모든 HTML 태그에 타이틀 속성을 추가할 수 있습니다.

테스트:

갑자기 차 소리가 나더니, 내 곁으로 버스가 지나가고 있다. 단지 입구의 정류장을 거쳐 온 버스인 듯하다. 지나가는 버스의 차창 안에서 눈빛이 나를 보고 있다. 나와 저 눈빛은 아무런 관련이 없다. 그것은 아파트 단지도 마찬가지이다. 만(萬)에 하나, 관련이 있다고 해도 그것은 이를테면, '뙤약볕이 걸어가는 한낮'과 '풀잎 속의 한 떨기 어둠'보다도 더 먼 관련이다.



코드:

<p title="말풍선입니다">갑자기 차 소리가 나더니, 내 곁으로 버스가 지나가고 있다. 단지 입구의 정류장을 거쳐 온 버스인 듯하다. 지나가는 버스의 차창 안에서 눈빛이 나를 보고 있다. 나와 저 눈빛은 아무런 관련이 없다. 그것은 아파트 단지도 마찬가지이다. 만(萬)에 하나, 관련이 있다고 해도 그것은 이를테면, '뙤약볕이 걸어가는 한낮'과 '풀잎 속의 한 떨기 어둠'보다도 더 먼 관련이다.</p>





참고 게시물:
[HTML] title(타이틀;말풍선) 속성과, img 태그의 alt 속성의, 차이점


더 읽기: HTML/CSS

Wednesday, May 24, 2006

[QnA] 포토샵에서, PSD 는 무엇인가요? / .psd 는 무엇에 쓰는 파일입니까? - Photoshop

포토샵(Adobe Photoshop)의 기본 저장 형식이 PSD 입니다. 확장자.psd 입니다. PSD 는 Photoshop Document (포토샵 문서) 의 약자라고 알고 있습니다.

※ 아래아한글의 기본 문서 형식이 .HWP 듯이, 포토샵은 .PSD 가 기본 형식입니다.

포토샵으로 사진이나 그림을 편집하여 하드에 저장하면 기본적으로 PSD 형식으로 저장됩니다. 그러나 사진을 웹사이트에 올린다든지 할 때에는 JPG나 GIF 로 저장해야만 합니다.


PSD 형식의 장점



* 포토샵의 거의 모든 기능들을 (가령 레이어, 채널 등) PSD 파일에 그대로 저장할 수 있습니다.

* JPG와 달리, 손실형 압축을 하지 않기 때문에 여러 번 저장하고 불러오기를 반복해도 화질이 전혀 손상되지 않습니다.

* 특수한 모드의 사진을 저장할 수 있습니다. 가령 듀오톤 모드 등




PSD 형식의 단점



* 손실형 압축을 하지 않기 때문에 용량이 큽니다. JPG로 100KB에 불과한 사진도, PSD 형식으로 저장하면 3~5메가가 넘을 수 있습니다.

* 읽을 수 있는 프로그램이 적습니다. 포토샵 외에, PSD 파일을 직접 읽을 수 있는 소프트웨어는 ACDSee 나 PicaView, 3ds Max 등에 지나지 않습니다. 설령 읽을 수 있다 하더라도, PSD의 모든 레이어를 인식하지는 못하기에 완벽히 읽을 수는 없습니다. 웹브라우저는 PSD를 전혀 읽을 수 없습니다.



PSD 형식의 활용



PSD 는 편집용이나 인쇄용에 적합한 포맷입니다. 그리고 아주 중요한 그림(가령 고문서나 미술작품을 촬영한 사진)을 영구 보관할 때 적합합니다.

사진의 편집이 다 끝났으면 JPG로 변환하여 하드에 저장하고, PSD 파일은 지우는 것이 보통입니다.





더 읽기: 포토샵

피드버너(FeedBurner)의 RSS 피드 갱신: 'Ping' 과 'Resync Now' 에 대한 사용기

피드버너의 피드는 30분마다 자동으로 갱신이 되지만, 즉시 갱신시켜야 할 때가 많았습니다. 포스트에 큰 오류가 있어서 급히 고친 경우 등등... 피드버너에서는 피드(Feed)를 강제로 갱신시키는 방법이 2가지로 제공되고 있었습니다:


Ping 으로 피드 갱신



피드버너에서는 이 방법을 추천하더군요.

http://www.feedburner.com/fb/a/ping

위의 주소에 나오는 입력창에 자신의 블로그 주소를 넣고, "Ping FeedBurner" 버튼을 누르면 갱신이 되었습니다. 그런데 Ping 으로 피드를 갱신해 주는 것은 lunamoth님께서 말씀하신 대로, 문제가 있었습니다. 하루에 1~2번만 사용해도 Your Ping resulted in an Error "Exceeded Access Limits - Try again Later" (에러가 났습니다. 사용 한도를 초과했습니다. 나중에 다시 시도하세요) 이런 메시지가 나왔습니다.

물론 몇 분 후에 다시 시도하니 Successfully pinged (성공적으로 핑이 되었습니다) 이렇게 되긴 했지만, 역시 핑은 문제가 있었습니다.


Hint: Bookmark this page after hitting the "Ping FeedBurner" button and use that bookmark as a handy way to update your feed from your bookmarks menu! This form uses FeedBurner's underlying Ping and Extended Ping XML-RPC API.

핑 페이지에 보니까 이런 힌트(Hint)가 있더군요. 입력창에 주소를 넣고, 갱신을 한 직후의 페이지에 북마크를 하고, 그 북마크를 통해 핑 페이지에 접근하면, 다시 블로그 주소를 입력하지 않아도 되었습니다.





Resync Now 로 피드 갱신



피드버너에 로그인한 후, My Feeds 에 들어가서 Troubleshootize(문제 해결) 탭에, Resync Now (지금 동기화) 라는 것이 있습니다. 이 Resync Now 를 이용하면 핑과 달리 무슨 제한 에러 같은 것도 없고, 갱신이 항상 잘 되었습니다.

핑보다 훨씬 더 강력한 것이라는 설명이 있고, 핑으로 갱신이 안 될 경우에 '최후의 수단으로서(as a last resort)' 쓰라고 해서 조금 부담스러웠습니다. 특히 Nuclear(핵) 옵션이라는 설명이 있어서, 뭔가가 다 날아가 버릴 듯한 공포감마저도 조금 주었습니다.

The Nuclear Option: "Resyncing" your feed

As a last resort with a regular feed or a podcast, you can resync your feed. You should only resync if your feed is more than 1 hour out-of-date and pinging FeedBurner does not update it or your podcast files are not being turned into enclosures by our SmartCast service.

Resync takes the following actions:

Clears our cached version and refreshes its content from your Original Feed
Creates podcast enclosures for items that did not previously have them and contain links to podcast content
Reports any feed formatting problems encountered during the resync

Resync Now



그래서 우선 핑(Ping)으로 피드를 갱신해 보고, 안되면 리싱크(Resync)로 갱신을 하고 그런 식으로 조심스럽게 쓰고 있습니다.



더 읽기: RSS

[윈앰프/Winamp] SP복각판 MP3 들을 때 귀가 따갑지 않도록 이퀄라이저 조절

이퀄라이저



MP3 파일 중에 귀가 따가운 것이 가끔 있습니다. 오래된 음반 특히 SP(유성기) 복각판을 MP3로 만들었을 때 그렇습니다. 윈앰프 이퀄라이저를 조절하면 귀가 덜 따갑게 되더군요.

어떤 주파수의 소리가 귀를 따갑게 하는지 몰라서 시행착오를 많이 겪은 끝에 다음과 같은 설정이 얻어졌습니다. 예상과 달리, 고음역이 아닌 중음역에서 자극적인 소리가 많이 들렸습니다.

SP복각판을 위한 윈앰프 이퀄라이저 조정




사운드 카드의 문제



'사블 Audio PCI' 라는 값싼 사운드 카드로 SP복각판을 들을 때보다, 사블 라이브 Sound Blaster Live! 로 들었을 때, 귀가 따가운 소리가 조금 감소했습니다. 사블 라이브가 예전에는 상당히 비싼 카드였는데, 요즘에는 오디지가 주종이다 보니, 사블 라이브는 헐값으로 팔더군요. 2~3년 전에 5만원 주고 샀습니다.




※ 이퀄라이저를 조절할 때는 윈앰프에 스킨이 없는 것이 좋습니다. 아무리 좋은 스킨도 기본 스킨처럼 정밀하지는 않았습니다.


관련 포스트: [윈앰프-Winamp-MP3] 이퀄라이저(Equalizer)를 조절하여 고음질로


더 읽기: MUSIC

[QnA] 울트라에디트(UltraEdit)에서, ue_english.gip / dictam.gip 등의 .GIP 파일은 무엇인가요?

울트라에디터의 .gip 파일은, 설치에 필요한 파일일 뿐입니다. 구체적으로 말하자면 스펠링 사전입니다.

가령 울트라에디트 영문판(UltraEdit-32 English Version: 12.10)은

uedit32.zip

이런 ZIP 파일로 압축되어 있는데 이것을 풀면

uesetup.exe
dictam.gip
ue_english.gip

이런 3개 파일이 풀려나옵니다. uesetup.exe 파일을 클릭하면 울트라에디트 설치가 시작됩니다. 나머지 gip 파일들은 울트라에디트 설치 프로그램이 내부적으로만 사용하는 것입니다. 설치가 끝난 후에는 위의 3개 파일을 하드에서 지워야 합니다.




질문: dictam.gip / ue_english.gip 파일이 없어요ㅠㅠ


울트라에디터 사이트에서, 울트라에디터 설치 파일을 다운받으시면 됩니다. 그 안에 들어 있습니다: ▶▶ [QnA] 울트라에디트(울트라에디터) 다운로드 하는 곳?



☞ 텍스트 에디터

[윈앰프-Winamp-MP3] 이퀄라이저(Equalizer)를 조절하여 고음질로

가운데 칸이 '이퀄라이저'



가운데 칸이 이퀄라이저(Equalizer)입니다. 진짜 오디오에 있는 이퀄라이저와 같이, 각 음역별로 음량을 조절하여 자신이 선호하는 또는 자신의 환경에 맞는 음질을 만들어내는 것입니다.

위의 그림은, 제가 사용하는 파나소닉 이어폰에 최적화시킨 설정입니다. 고음은 강하게 저음은 보통으로 나오도록 했습니다. 소니 이어폰은 별로 그렇지 않았는데, 파나소닉 이어폰은 저음이 지나치게 풍부한 면이 있어서 그렇게 보정을 해 주었습니다.


이 설정을 PRESETS 버튼의 Load/From EQF 와 Save/To EQF 로, 불러오거나 하드에 저장할 수 있습니다.

그런데 이 설정에 앞서 사운드 카드의 고음/저음을 우선 조절해 주는 것이 좋습니다: "[사운드카드(사블)] 고음역 강화하여 음질/해상도 좋게 - Sound Card" 참조




※ 이퀄라이저를 조절할 때는 윈앰프에 스킨이 없는 것이 좋습니다. 아무리 좋은 스킨도 기본 스킨처럼 정밀하지는 않았습니다.


더 읽기: MUSIC

[사운드카드(사블)] 고음역 강화하여 음질/해상도 좋게 - Sound Card

사운드 카드들은 고음역을 약하게 설정해 놓아서, 음악의 세부가 전혀 들리지 않고 웅웅거리는 소리가 나는 경우가 많습니다. 제가 사용해 본 카드들은 다 그렇더군요. 라디오의 경우에는 트레블(Treble)을 올리면 되는데, 사운드 카드에도 트레블(Treble)에 해당하는 것이 있습니다.


(Sound Blaster Live! 5.1 을 기준으로 설명: 우선 하드웨어인 Sound Blaster (사운드블라스터) 를 PC에 장착하고, 해당되는 드라이버를 윈도우에 설치해야 합니다.)


윈도우 볼륨 조절창 - 고급 버튼



(1) 위쪽 대화상자는 윈도우의 '볼륨 조절창'입니다. 제어판/사운드 및 멀티미디어/오디오/볼륨으로 실행할 수 있습니다. 메뉴에서, 옵션/고급 컨트롤에 체크하면 고급이라는 버튼이 생깁니다. 고급 버튼을 클릭하면, 아래쪽 창이 나타나게 됩니다. (오디지 Sound Blaster Audigy 보급판 등의 값싼 사운드 카드에는 고급 버튼이 없을 수도 있음*)

(2) 저음은 중간쯤으로 놔두고, 고음을 최대로 올리고, '닫기'를 선택합니다.


이러면, 음악이 보다 선명하게 들리게 됩니다. 고음을 최대로 올리면 고음만 선명해지는 것이 아니라 중저음의 해상도도 높아집니다.

그렇지만 이것으로 충분하지는 않고, 음악 플레이어 가령 윈앰프 같은 MP3플레이어의 이퀄라이저도 조절해 주어야 합니다: "[윈앰프-Winamp-MP3] 이퀄라이저(Equalizer)를 조절하여 고음질로" 참조



* 사블 Audio PCI 라는 저가형 사운드 카드를 쓴 적이 있었습니다. 그것은 제이씨현 홈페이지에서 무슨 파일을 다운받아야만 고급 버튼이 생겼습니다. 그래서 불편했는데 사블 라이브는 기본으로 '고급 버튼'이 있었습니다. (오늘 보니 이제는 제이씨현에서 사운드 카드를 취급하지 않는군요.)





더 읽기: MUSIC

Tuesday, May 23, 2006

[C언어-C프로그래밍] 복잡한 명령행 도움말을, printf() 함수 단 1개로 구현하기

가령 윈도우의 명령 프롬프트에서
dir /?
라고 하면 dir 명령에 대한 도움말이 다음과 같이 나옵니다:


D:\Z>dir /?
디렉터리에 있는 파일과 하위 디렉터리 목록을 보여줍니다.

DIR [드라이브:][경로][파일 이름] [/A[[:]특성]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]정렬 순서]] [/P] [/Q] [/S] [/T[[:]시간 필드]] [/W] [/X] [/4]

  [드라이브:][경로][파일 이름]
              나타낼 드라이브, 디렉터리 및/또는 파일을 지정합니다.

  /A          지정된 특성을 가진 파일을 보여줍니다.
  특성        D  디렉터리                   R  읽기 전용 파일
              H  숨김 파일                  A  기록 파일
              S  시스템 파일                -  부정을 뜻하는 접두사
  /B          최소 형식을 사용합니다 (머리말 정보나 요약 없음).
  /C          파일 크기에 1000단위로 분리 기호를 보여줍니다. 이것은 기본값
              입니다. 분리 기호를 표시하지 않으려면 /-C를 사용하십시오.
  /D          /W와 같으나 세로로 배열하여 보여줍니다.
  /L          소문자를 사용합니다.
  /N          파일 이름이 제일 오른쪽에 오도록 새로운 긴 목록 형식을
              사용합니다.
  /O          파일을 정렬된 순서로 보여줍니다.
  정렬순서    N  이름순(문자 순서)    S  크기순(작은 것 먼저)
              E  확장명순(문자 순서)  D  날짜/시간순(가장 이전 것 먼저)
              G  그룹 디렉터리 먼저         -  순서를 반대로 하는 접두 기호
  /P          정보가 한 화면에 꽉 차면 잠깐 멈춥니다.
  /Q          파일 소유자를 보여 줍니다.
  /S          지정한 디렉터리와 하위 디렉터리를 포함하여 보여줍니다.
  /T          정렬에 사용할 시간 필드를 지정합니다.
  시간필드   C  작성한 시간
              A  마지막 액세스한 시간
              W  마지막 기록한 시간
  /W          이름만 가로로 배열하여 보여줍니다.
  /X          8.3 파일 이름이 아닌 파일에 대한 짧은 이름을 보여줍니다.
              이 형식은 긴 이름 앞에 짧은 이름이 추가된 것으로 /N 형식과
              같습니다. 짧은 이름이 없으면 공백을 보여줍니다.
  /4          4자리수 연도를 표시합니다.

스위치를 DIRCMD 환경 변수로 미리 설정할 수 있습니다. 하이픈(-)을
스위치 앞에 접두 기호로 주면 미리 설정된 스위치에 우선합니다. (예, /-W)


D:\Z>



그런데 이런 도움말은 printf() 함수나 puts() 함수를, 다음과 같이 각 행별로 나열하여, 표현하는 것이 일반적인 것 같습니다.
printf(...
printf(...
printf(...
printf(...
...

C언어에서도, 펄(Perl)처럼 도움말을 좀 간단하게 표현하는 방법이 없는가 하고 생각해 본 끝에, 다음과 같은 방법을 찾아내었습니다. printf() 함수 1개로 모든 도움말을 한꺼번에 출력하는 것입니다. help() 함수 안의 첫부분에 있는 printf()가 그것입니다:

#include <stdio.h>
#include <stdlib.h>

int help(void);

#define THIS_PROGRAM_VERSION "1.0"
char this_program_name[] = "FOO";


int main(int argc, char *argv[]) {

   if (argc == 1) help();
   puts(argv[1]);

   return 0;
}


int help(void) {
   printf("\n"
      "%s " THIS_PROGRAM_VERSION "\n"
      "\n"
      "Set Console Letter Color (Microsoft COLOR command compatible)\n"
      "\n\n"
      "Usage   : %s < Foreground Color >\n"
      "          %s < Background Color + Foreground Color >\n\n"
      "Example : %s f  :: Bright White\n"
      "          %s 1e :: Bright Yellow on Blue\n"
      "\n\n"
      "\t0 = Black (Invisible)               8 = Gray (Dark Gray)\n"
      "\t1 = Blue                            9 = Light Blue\n"
      "\t2 = Green                           A = Light Green\n"
      "\t3 = Aqua (Cyan)                     B = Light Aqua (Light Cyan)\n"
      "\t4 = Red                             C = Light Red\n"
      "\t5 = Purple (Magenta)                D = Light Purple (Light Magenta)\n"
      "\t6 = Yellow                          E = Light Yellow\n"
      "\t7 = White (Gray: System Default)    F = Bright White\n"
      "\n"
      , this_program_name,
        this_program_name, this_program_name,
        this_program_name, this_program_name
      );

   exit(EXIT_FAILURE);
}


참고로, 위의 소스는 제가 만들던 C프로그램([C언어] COLOR 명령 확장: 명령프롬프트 글자색 변경 유틸리티 setclr.exe 만들기)의 일부입니다. 위의 도움말의 내용 자체는 이 포스트와 상관이 없습니다.


"\n" 는 다음 줄로 행갈이 하라는 의미이고
"\t" 는 탭(공백 8개에 해당하는 긴 공백)을 의미합니다.


이 소스를 0.c 등의 적당한 이름으로 저장한 후, <비주얼 C>로 컴파일하여 실행시키면,

옵션이 하나도 없을 때는 위의 도움말이 다음과 같이 나옵니다:

D:\Z>0

FOO 1.0

Set Console Letter Color (Microsoft COLOR command compatible)


Usage   : FOO < Foreground Color >
          FOO < Background Color + Foreground Color >

Example : FOO f  :: Bright White
          FOO 1e :: Bright Yellow on Blue


        0 = Black (Invisible)               8 = Gray (Dark Gray)
        1 = Blue                            9 = Light Blue
        2 = Green                           A = Light Green
        3 = Aqua (Cyan)                     B = Light Aqua (Light Cyan)
        4 = Red                             C = Light Red
        5 = Purple (Magenta)                D = Light Purple (Light Magenta)
        6 = Yellow                          E = Light Yellow
        7 = White (Gray: System Default)    F = Bright White


D:\Z>






만약 옵션이 있을 때는 그 옵션 자체를 다음과 같이 화면에 출력하고, 도움말은 나오지 않습니다:

D:\Z>0 mwultong
mwultong

D:\Z>






더 읽기: C/C++

[C언어] 비주얼C로, 파일의 CRC32 값 구하기 (빠르고 메모리 점유 없이)

제가 몇 년 전에 외국 사이트에서 CRC32 계산 코드를 구했는데, 실제 쓰려고 보니까 실용성에 문제가 있었습니다. 파일을 메모리에 모두 읽어들인 후에 계산하는 것이었습니다. 그래서 만약 700메가짜리 CD 이미지 파일의 CRC32를 구하려면 메모리가 700메가나 필요했습니다.

그래서 메모리에 로딩하지 않고 파일을 조금 조금씩 읽어서 계산하도록 만든 것이 아래에 소개하는 코드입니다. 버퍼로서 불과 32768 바이트만 필요합니다. 사실상 메모리를 전혀 요구하지 않는 것입니다. (삼성 이건희 회장의 얼굴이 파랗게 질릴 수도 있겠군요^^)



속도

어셈블리로 만들어진 CRC32 계산 프로그램의 속도와 같았습니다. 비주얼C/C++가 그만큼 최적화를 잘 해준다는 의미일 것입니다.



호환성

ZIP 과 RAR 의 CRC32 계산 값과 동일합니다.



사용법

컴파일하면 getCRC.exe 라는 파일이 만들어집니다. 명령 프롬프트 창에서,
getCRC <파일 이름>
이런 형식으로 사용하시면 됩니다.

파일 이름에 공백이 들어 있다면 쌍따옴표로 둘러싸 주어야 합니다. 그렇지 않으면 파일을 찾지 못하고 에러(Cannot open input file)를 출력합니다:
D:\Z>getcrc "Merriam-Webster Collegiate's Dictionary.iso"
A745B2FE: Merriam-Webster Collegiate's Dictionary.iso

D:\Z>getcrc Merriam-Webster Collegiate's Dictionary.iso
Cannot open input file.

D:\Z>




다음의 소스 파일 2개를
getCRC.cpp // 프로그램 본체
CRC32.cpp // CRC32 알고리즘 라이브러리
같은 디렉토리에 넣고

cl getCRC.cpp

이런 명령으로 컴파일하면 됩니다.



다음 창은 cl getCRC.cpp 로 컴파일함과 동시에, 컴파일된 파일에 옵션을 주어 한꺼번에 실행시키는 장면입니다.

D:\Z>cl getCRC.cpp && getCRC 0.htm
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.

getCRC.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:getCRC.exe
getCRC.obj
24531DE5: 0.htm
D:\Z>


0.htm 이라는 파일의 CRC32 값인 24531DE5 가 즉시 계산되었습니다.




소스 코드: getCRC.cpp



#include <stdio.h>
#include <stdlib.h>
#include "CRC32.cpp"

void help(void);
void error(int);


int main(int argc, char *argv[]) {
  FILE *in;

  if (argc == 1) help();
  if( (in = fopen(argv[1], "rb")) == NULL) error(1);

  printf("%08lX: %s\n", getFileCRC(in), argv[1]);

  fcloseall();
  return 0;
}



void help(void) {
  printf("\n\tGet the CRC32 of a given file\n\n\tUsage: this_program_name <file_name>\n");
  exit(1);
}


void error(int number) {
  switch (number) {
    case 1 : fputs("Cannot open input file.\n", stderr); break;
  }
  exit(number);
}





소스 코드: CRC32.cpp


업데이트(Update): 마조리카님께서 지적해 주신대로, 코드의 불합리한 부분을 제거하고 최적화시켰습니다: (New Version) ▶▶ C언어] CRC32 구하기 버전업 (코드 최적화): CRC32.cpp

(Old Version:)
unsigned long getFileCRC(FILE *);
unsigned long calcCRC (const unsigned char *, signed long, unsigned long);
void makeCRCtable(unsigned long *, unsigned long);


unsigned long getFileCRC(FILE *s) {
  unsigned char buf [32768];
  unsigned long CRC = 0;

  size_t len;
  while ( (len = fread(buf, 1, sizeof(buf), s)) != NULL )
    CRC = calcCRC(buf, (unsigned long) len, CRC);

  return CRC;
}


unsigned long calcCRC(const unsigned char *mem, signed long size, unsigned long CRC) {
  unsigned long table[256];

  CRC = ~CRC;
  makeCRCtable(table, 0xEDB88320);

  while(size--)
    CRC = table[(CRC ^ *(mem++)) & 0xFF] ^ (CRC >> 8);

  return ~CRC;
}


void makeCRCtable(unsigned long *table, unsigned long id) {
  unsigned long i, j, k;

  for(i = 0; i < 256; ++i) {
    k = i;
    for(j = 0; j < 8; ++j) {
      if (k & 1) k = (k >> 1) ^ id;
      else k >>= 1;
    }
    table[i] = k;
  }
}








벤치마크

4NT의 timer 명령으로 위의 프로그램의 속도를 측정해 보았습니다 (4NT가 설치되어 있어야 함):

[1] D:\Warehouse\My Virtual Machines>timer & getcrc "Windows 2000 Professional + MSO [v5.5].zip" & timer
Timer 1 on:  3:37:29p
6B517356: Windows 2000 Professional + MSO [v5.5].zip
Timer 1 off:  3:37:49p  Elapsed: 0:00:19.83

[0] D:\Warehouse\My Virtual Machines>


782MB (820,136,835 바이트) 라는 큰 파일인데도, 불과 20초가 걸렸습니다. 엄청난 속도입니다.




▶▶ [QnA] ZIP 이나 RAR 파일의, CRC32 란 무엇입니까? / 'CRC 에러'란? / CRC 값을 어떻게 구하나요?








추가 사항:

"Windows 작업 관리자"로 보면, 700메가짜리 파일을 읽을 때에도 getCRC.exe 가 메모리를 고작 644KB 만 차지합니다. 1메가도 채 안되는 것입니다.

[C언어/기초] fopen() 과 fprintf() 함수의 에러 검사 코드

아래에 있는 C언어 소스는 "[C언어] 출력을 파일로 저장할 때는 printf() 가 아닌 fprintf() 함수를"에 있는 간단한 예제에, "에러 검사"를 추가한 버전입니다:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
  FILE *out;


  if ( (out = fopen("test.txt", "w")) == NULL) {
    fprintf(stderr, "Error! Cannot open file...\n");
    exit(1);
   }

  if (fprintf(out, "하하하하 %d\nABCD", 1 + 1) == EOF) {
    fputs("Error! Cannot write file...\n", stderr);
    exit(2);
  }

  fcloseall(); // 모든 파일 한꺼번에 닫기
  return 0; // 성공했으니 제로를 반환하며 끝냄
}



fopen() 함수에서 에러가 날 개연성이 가장 높기 때문에 반드시 에러 검사를 해야 합니다. fopen()이 파일 열기에 실패하면 NULL 을 반환합니다.



에러가 나면 에러 메시지를 화면에 출력하는데, fprintf(stderr, "Error! Cannot open file...\n"); 에서 stderr 는 "표준 에러 출력"을 의미하는 가상 파일입니다.

그냥 printf() 함수 등으로 화면에 에러 메시지를 출력하면 곤란합니다. 왜냐하면 재지향을 하고 있을 때에는 에러 메시지가 보이지 않게 되어 버리기 때문입니다. stderr 는 재지향이 되지 않기 때문에, stderr 로 출력하면 항상 에러 메시지가 잘 보이게 됩니다.

즉 fprintf(stderr, ... 라는 것은 파일로 출력하는 것이 아니라 화면으로 출력하는 것입니다.



exit() 함수는, 모든 파일을 닫고, 프로그램을 완전히 끝내는 동시에, 시스템에 에러 코드를 반환하는 함수입니다.

모든 프로그램은, 성공적으로 끝나면 0(제로)를 반환하며 끝내고, 그렇지 않으면 "0이 아닌 정수"를 반환하며 끝내야 합니다.

fputs() 함수는 fprintf() 함수의 좀더 간단하고 빠른 버전입니다.





테스트



에러 검사 코드를 작성했으면, 일부러 에러를 내어서, 에러 검사 코드가 잘 작동하는지 알아보아야 합니다.

test.txt 라는 출력 결과 파일을 "읽기 전용"으로 만든 후, foo.exe 를 다시 실행시키면

D:\Z>foo.exe
Error! Cannot open file...

D:\Z>


이렇게 에러 메시지가 나와야 정상입니다.


그런데 fprintf(out, ... 이 부분에서 인위적으로 에러를 일으키는 방법은 찾지 못했습니다. 하드 디스크에 문제가 있을 때에만 fprintf(out, ... 에서 에러가 만들어질 것입니다.



[C언어] 출력을 파일로 저장할 때는 printf() 가 아닌 fprintf() 함수를

printf() 함수는 출력을 stdout 즉 '명령 프롬프트 화면'으로만 보냅니다. 따라서 재지향을 사용하지 않는 한, 파일로 저장할 수는 없습니다.

이때는 fprintf() 함수를 쓰면 됩니다. 결과를 파일로 출력하기 위한 특별한 printf() 함수입니다.


#include <stdio.h>

void main(void) {
  FILE *out;


  out = fopen("test.txt", "w"); // 출력을 저장할 파일을 만들어서 열기

  fprintf(out, "하하하하 %d\nABCD", 1 + 1); // 출력을 파일로 저장

  fclose(out); // 파일을 열었으면 반드시 닫아 주어야 합니다

}



※ 이것은 윈도 프로그램이 아니라 콘솔 프로그램 즉 '명령 프롬프트용 프로그램'이기 때문에 명령 프롬프트에서 컴파일하는 것이 좋습니다.
※ 최대한 쉽게 표현하기 위해 위의 소스에는 에러 검사 코드를 넣지 않았습니다. "[C언어/기초] fopen() 과 fprintf() 함수의 에러 검사 코드" 에 에러 검사 코드를 추가한 버전이 있습니다.

위의 소스를 foo.c 등의 이름으로 저장하고 컴파일하면 test.txt 라는 파일이 생길 겁니다.

D:\Z>cl foo.c & foo
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.

foo.c
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:foo.exe
foo.obj
D:\Z>



※ 위의 창에서 "cl foo.c & foo" 의 & 기호는 컴파일한 후, 생성된 foo.exe라는 파일을 실행시키라는 의미입니다. C언어와는 관계없고, 명령 프롬프트 창에서 제공하는 특수 기호입니다. 2개 이상의 명령어을 한 줄에 적는 방법입니다.


test.txt 파일을 메모장 등으로 열어 보시면

하하하하 2
ABCD


이렇게 fprintf() 함수의 출력 결과가 파일에 적혀 있을 것입니다.



참고로, fopen("test.txt", "w") 에서 "w" 는 파일 열기 모드를 가리키는데, 파일을 "텍스트 모드로" 그리고 "쓰기(writing) 모드"로 열고, 만약 같은 이름의 파일이 이미 있다면 덮어쓰라는 의미입니다. 이러면 이미 있던 파일의 내용은 허공으로 사라집니다.

무슨 파일이든 파일을 한 번 열었으면 꼭 닫아주어야 합니다. 그렇지 않으면 파일이 깨질 수도 있고, 파일이 지워지지 않을 수도 있고 여러가지 문제가 생길 수 있습니다.


그리고 텍스트 파일 읽기 쓰기 작업을 주로 하신다면, C보다는 펄(Perl)이 더 적당합니다. 펄은 텍스트 파일 다루기 전용 언어라고 할 수도 있을 정도로 강력한 기능들이 많습니다.




더 읽기: C/C++

비주얼 베이직 스크립트 (VBS / VBScript) 의 기초: 간단한 메시지 박스 예제

우선, 윈도우의 명령 프롬프트에서 cscript 라고 쳤을 때 다음과 같은 내용이 나옵니다. 버전이 5.6 미만이라면 윈도 업데이트 사이트로 가서 윈도를 최신 상태로 업데이트 하셔야 합니다.

D:\Z>cscript
Microsoft (R) Windows Script Host 버전 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Usage: CScript 스크립트 이름.확장자 [옵션...] [인수...]

옵션:
 //B         배치 모드: 스크립트 오류와 프롬프트를 표시하지 않습니다.
 //D          디버깅을 사용 가능하게 합니다.
 //E:engine  스크립트 실행에 엔진을 사용합니다.
 //H:CScript 기본 스크립트 호스트를 CScript.exe로 변경합니다.
 //H:WScript 기본 스크립트 호스트를 WScript.exe(기본값)로 변경합니다.
 //I         상호 작용 모드(기본값, //B와 반대 경우)
 //Job:xxxx  WSF 작업을 수행합니다.
 //Logo      로고(기본값)를 표시합니다.
 //Nologo    로고를 표시하지 않습니다. 즉, 실행 시에 배너가 표시되지 않습니다.
 //S         현재 명령줄 옵션을 지금 사용자에 대하여 저장합니다.
 //T:nn      다음 시간 내에 타임 아웃: 스크립트 실행에 허용된 최대 시간입니다.
 //X          디버거에서 스크립트 실행합니다.
 //U         콘솔에서 리디렉션 I/O로 유니코드를 사용합니다.

D:\Z>





비주얼 베이직 스크립트로, 간단한 메시지 박스 만들기



' 이 줄은 주석이라서 무시됨
' 베이직에서는 홑따옴표가 주석임

MsgBox "비주얼 베이직 스크립트 테스트" & Chr(13) & "...문자열..." & Chr(13) & "이렇게 행갈이 할 수도 있습니다", vbYesNoCancel + vbQuestion + vbDefaultButton2 + vbSystemModal, "이것은 제목줄"


위의 코드를 0.vbs 등의 이름으로 하드에 저장한 후, 파일을 마우스로 클릭하여 실행시키면

비주얼베이직 스크립트의 메시지 박스


이런 대화상자가 나옵니다.




코드 설명



& 기호로 각 문자열들을 하나로 결합합니다.

Chr(13) 은 엔터키를 의미하며, 다음 줄로 행갈이할 때 사용됩니다.

+ 기호는 인수들을 하나로 결합하는 것입니다.

vbYesNoCancel 이라는 것은, 대화상자에, "Yes" "No" "Cancel" 3가지 버튼을 표시하라는 의미입니다.

vbQuestion 은, 대화상자에 "물음표 아이콘"을 표시하라는 의미입니다.

vbDefaultButton2 는, 2번째 버튼을 기본 버튼으로 만들라는 의미입니다.

vbSystemModal 은, 다른 작업보다, 이 대화상자에 우선적으로 응답하라는 의미입니다. 긴급하거나 순서가 중요한 작업을 할 때 사용됩니다.

맨 끝에 있는 인수는 이 대화상자의 제목줄에 들어갈 문자열입니다.





▶▶ Excel/엑셀] MsgBox, Yes No Cancel 버튼 대화상자 만든 후, 결과 값 처리

▶▶ [QnA] VBS (VBScript) 란? / VBS 는 바이러스 파일인가요?

☞ BATCH(.BAT)/VBScript(.VBS)

[QnA] VBS (VBScript) 란? / VBS 는 바이러스 파일인가요?

당나귀 등의 P2P 프로그램에서 다운받은 .vbs 파일이라면 100%가 바이러스입니다. 파일 이름 끝에 .vbs 라는 확장자가 붙어 있다면 절대 다운로드 받으면 안됩니다. 만약 그런 파일을 받아서 실행시키면 여러분의 컴퓨터만 끝장이 나는 것이 아니라 다른 사람들의 컴퓨터까지 피해를 주게 됩니다.



VBS (VBScript) 란?



그렇다고 해서 VBS 라는 포맷 자체가 바이러스는 아닙니다. 정상적인 프로그래밍 언어이지만, 이것을 악용하는 사람들이 있기 때문에 문제가 되는 것입니다.

마이크로소프트 비주얼 베이직 스크립팅 에디션의 약자입니다: Microsoft Visual Basic Scripting Edition (VBScript)


배치 파일 (*.bat) 대용으로 사용할 수 있는 스크립팅 언어이며, 비주얼 베이직 (Visual Basic) 문법으로 되어 있습니다. 이 VBScript 를 사용해서 각종 단순 작업들을 자동화할 수 있습니다.

배치 파일은 명령 프롬프트 창에서 주로 사용하는 것이라, 윈도우 GUI를 조작하기는 힘듭니다. 이때 VBS를 사용하면 편리합니다.



VBS (VBScript) 설치법과 다운로드?



VBS는 이미 윈도우에 포함되어 있기에 별도로 설치할 필요는 없습니다. 다만 최신 버전(v5.6)이 아니면, 윈도 업데이트 사이트에서 윈도를 업데이트하시면 됩니다.





관련 게시물:

비주얼 베이직 스크립트 (VBS / VBScript) 의 기초: 간단한 메시지 박스 예제

Monday, May 22, 2006

웹페이지(HTML)를 그림과 함께 통째로 저장하기

html 저장: 인터넷 익스플로러(IE)로 저장하기



상단 메뉴의
파일 > 다른 이름으로 저장
을 선택하시면 됩니다.

옵션:

모든 웹 페이지(*.htm;*.html) 라는 옵션은, 별도의 하위 폴더를 만들어서 그림 파일들을 모두 그 안에 저장합니다.

웹 페이지 보관 파일(*.mht) 이라는 옵션도 있는데, 웹페이지 파일 즉 HTML파일과 그림파일(*.jpg;*.gif)들을 모두 하나로 합쳐서 하나의 파일로 저장하기에 편리하지만, 나중에 이 .MHT 파일이 열리지 않는 경우가 많기에 별로 권하고 싶지 않습니다.


그러나 인터넷 익스플로러(IE)로는 복잡한 웹페이지를 저장할 수 없습니다. 파이어폭스로 저장하시는 것이 좋습니다.



html 저장: 파이어폭스(Mozilla Firefox)로 저장하기



Ctrl+S 키를 누르면 저장이 됩니다. 즉 Ctrl 키를 누르면서 S키를 누르는 것입니다. 그림 파일들은 별도의 하위 폴더에 저장됩니다. 플래시 파일 (.swf) 까지 저장이 되더군요. 복잡한 페이지라도 에러 없이 저장이 잘 되었습니다.




주의 사항



웹페이지가 완벽히 저장되었는지 확인하기 위해서는, 우선 브라우저의 캐쉬 파일을 완전히 비운 후, 존알람(ZoneAlarm) 등의 방화벽에서 인터넷 회선을 차단하고, 하드에 저장된 웹페이지를 다시 확인해야 합니다. 이때 잘 보이지 않는 경우가 많습니다. 웹페이지에 포함된 자바스크립트가 문제를 일으키거나, 중요한 파일이 제대로 다운되지 않았기 때문입니다. 이때는 저장된 HTML 파일의 자바스크립트에 주석을 붙여서 무력화시키거나, 그림 파일 폴더를 뒤져서 그림이 제대로 받아졌는지 확인해야 합니다.


▶▶ HTML 웹 디렉토리의 파일들을 한꺼번에 다운로드 받는 법은? [QnA]


<< Home

Categories
Some Recent Posts
Monthly Archives
Top