살아가는 이야기
PowerShell을 이용하여 Windows\System32 폴더에서 우연히 nano를 이용하여 텍스트 파일―hello.c(?)―을 만든 적이 있다. 그런데 성공적으로 저장하고 나서 해당 파일을 그 폴더 내에서 찾을 수 없다는 것을 알게 되었다. 이상하여 다시 nano를 실행해 보면 hello.c 내용은 그대로 적혀 있는 것을 알 수 있었다. 도대체 hello.c 파일은 어디에 저장되어 있는 것일까? 검색해 보니 해당 파일은 Windows\SysWOW64에 저장되어 있었다. 이유를 알 수 없어서 구글링해 보니 이는 윈도 시스템의 API 때문인 것으로 판명되었다. 윈도 시스템에는 GetSystemDirectory()라는 API가 있는데, 이 API를 이용하여 윈도 시스템 파일을 접근할 때, 시스템이 알아서..
LaTeX 문서 처리 중에 "There's no line here to end."란 오류가 발생하였다. 직역하면 "여기 끝낼 행이 없어요."라는 뜻이다. 이는 행이 아닌 곳에서 강제 줄바꿈(\\)을 수행하려고 할 때 발생한다. 즉, 다음과 같은 경우에 발생한다. \begin{itemize} \item Apple \item Google \end{itemize} \\ If the program provided, ... 위 LaTeX 소스를 보면 itemize 환경 바로 다음에 이중 역빗금(\\)으로 강제 줄바꿈을 수행하도록 하고 있다. 그러나 환경 다음에는 본래 새로운 행이 나타나므로, LaTeX은 "여기서 줄바꿈을 하는 것이 맞니?"라고 우회적으로 이야기하고 있는 것이다. 실수라면 다음과 같이 강제 줄바꿈..
'외'는 앞에서 말한 것 말고 다른 것을 뜻하는 의존 명사이다. 따라서 앞 말과 띄어 쓴다. 마찬가지로 이와 같은 뜻으로 쓰이는 '밖'도 역시 의존 명사이므로 앞 말과 띄어 쓴다. 그 외에도 여러 경우가 있다. 그 밖에도 여러 경우가 있다. 하지만 '밖'은 조사 '-밖에'의 일부로 사용되기도 한다. 이 경우에는 대개 앞의 말이 관형사가 아니라 '그 사람(he/she)'을 나타내는 일반 명사이다. 이 경우 '-밖에'는 앞 말에 붙여 쓴다. 그 일을 해결할 사람은 그밖에 없어. (O) (He is the only one to solve it.) 그 일을 해결할 사람은 그 밖에 없어. (X) 하지만 같은 의미로 사용된다고 하더라도 '외'는 붙여 쓰지 않는다. '외(外)'는 한자어로서 조사로 인정하지 않기 때문..
Windows가 PowerShell을 밀고 있지만, 사실 난 cmd를 더 자주 사용한다. PowerShell에는 여러 좋은 기능이 있지만, cmd를 사용하는 이유는 단 하나, "명령어가 간단"하기 때문이다. 사실 PowerShell의 명령어는 너무 길고 복잡하다. 미운 사람 고운데 없다고, 흔한 입력 재지정(input redirection)도 PowerShell에서는 제대로 되지 않는다. 예컨대 다음과 같이 인사하는 프로그램이 있을 때, 입력 재지정으로 수행되지는 않는다. 대신 PowerShell에서는 파이프로 입력 재지정과 같은 효과를 얻을 수 있다. type 대신 Get-Content 명령어를 사용해도 같은 효과이다. 출력을 보면 줄바꿈 문자(\n) 처리가 이상한 것을 볼 수 있는데, 이는 Windo..
한 번 쓴 글을 HTML로 만들어 웹에도 게시하고 docx로 만들어 책으로 쓰기도 하고 pdf로 만들어 친구에게 전송할 수 있다면 얼마나 좋을까? 이런 원대한 꿈에서 탄생한 프로그램이 있었으니 바로 pandoc이다. pandoc의 pan-은 '전체를 아우른다'는 뜻이 있으므로, pandoc 모든 문서(doc)를 다 아우른다는 뜻으로 명명한 것이 아닌가 싶다. pandoc은 아래 사이트에서 다운로드하여 설치할 수도 있지만 https://pandoc.org/installing.html 개인적으로는 choco(Chocolatey)를 이용하여 설치하는 것을 추천한다. choco는 Windows의 설치 관리자인데 ― 데비안의 apt나, 레드햇의 yum, 아치리눅스의 pacman과 유사함 ― choco 설치 방법은..
Sliverlight는 비디오 및 오디오 스트리밍을 위한 웹 브라우저 플러그인으로서 주로 Microsoft Internet Explorer에서 사용된다. Adobe의 플래시 비슷한 것이라고 생각하면 이해하기 쉽다. 사실 플래시에 대한 대항마로 개발된 것이기도 하다. 제어판의 「프로그램 및 기능(appwiz.cpl)」을 보면 자신도 모르게 다음과 같이 버젓이 설치되어 있음을 볼 수 있다. 2021년 10월부터 Silverlight 지원이 사라진다고 한다. https://support.microsoft.com/ko-kr/windows/silverlight-%EC%A7%80%EC%9B%90-%EC%A2%85%EB%A3%8C-0a3be3c7-bead-e203-2dfd-74f0a64f1788 그러므로 이제 거리낌..
일주일쯤 전에 Windows에서 프로그램 수행 시간을 재는 방법을 게시하였다. timeit이라는 유틸리티 프로그램을 이용하는 방식이었는데, timeit을 이용하려면 Windows 2003 Resource Kit을 설치해야 하는 번거로움이 있었다. 프로그램 설치가 귀찮다면 이미 Windows에 설치되어 있는 PowerShell을 이용하는 방법도 있다. PowerShell의 Measure-Command라는 명령어를 이용하면 프로그램 수행 속도를 잴 수 있다. 예컨대 다음과 같이 Measure-Command를 사용할 수 있다. Measure-Command { echo "Hello?" } 여러 메시지가 나오지만 출력의 맨 끝 행만 확인하면 된다. PowerShell을 사용할 때 단점은 입력 재지정(input r..
조사를 구별하는 것은 사실 매우 쉽다. 체언(명사, 대명사, 수사) 뒤에 나타나는 것은 대부분 조사이기 때문이다. 그래서 체언 뒤의 '만'은 조사로 붙여 쓰고 그 외에는 띄어 쓰면 된다. 하루 종일 공부만 했다. (조사 '만') 그럴 만도 하다. (의존 명사 '만') 그런데 간혹 체언 뒤에서 의존 명사가 되는 경우도 있는데, 이럴 때 '만'은 시간이나 횟수를 의미한다. 세 번 만에 합격했다. (의존 명사 '만') 십 년 만의 귀국이다. (의존 명사 '만') 이 경우에는 체언 뒤에 나옴에도 불구하고 띄어 써야 한다. 따라서 단순히 체언 뒤에 '만'이 나타난다고 해서 무조건 붙여 쓰면 안 된다. 시간을 나타내는 만을 구별하기 위해서는 이를 '후'로 바꾸어 보면 말이 되는 경우가 많다. 따라서 체언 뒤에 나타..