Windows 를 사용하면서 많은 사람들이 Powershell 이라는 툴이 있는지 조차도 모르는 것 같더군요. 계속해서 말씀을 드리지만 Windows 에서 Powershell 을 사용하면 정말 다양한 작업들을 자동화 할 수가 있고~ 그만큼 생산성 향상 되는 것을 느끼실 수가 있을 겁니다.

저는 집에서 Windows 7 PC 한대와 Windows 10 PC 를 한대 사용하고 있는데~ Windows 7 PC Powershell 에서 아래와 같이 타이핑 해서 버전을 확인해 보니~ 2.0 버전이었습니다.

$PSVersionTable

그래서 Windows 7 Powershell 을 업데이트 하는 방법에 대해서 검색을 해 보니 오늘 아래 주소에서 확인할 수가 있었습니다.

https://www.microsoft.com/en-us/download/details.aspx?id=54616

Download 버튼을 누르고~ 아래와 같이 다운로드할 프로그램을 선택하고 설치해 주시면 됩니다.

다 설치를 했으면 윈도우를 재부팅하고~ Powershell 을 다시 실행 시키면 아래와 같이 5.1 버전으로 업데이트가 된 것을 확인할 수 있습니다.

아래 포스팅에서 Windows cmd 창과 관련된 다양한 명령어들에 대해서 소개한 적이 있는데~

https://iamaman.tistory.com/1241

https://iamaman.tistory.com/831

Windows command 창의 내용을 클립보드에 복사 하기 위해서 clip 이라는 명령어를 사용하곤 했습니다. 그런데 Powershell 5.1 버전으로 업데이트 하고 나서 Powershell 에서 clipboard 의 내용을 가져 올 때는 Get-Clipboard 클립보드에 Powershell 의 내용을 복사 할 때는 Set-Clipboard 라는 명령어를 사용할 수가 있었습니다.

Windows Powershell 이 계속해서 발전하는 모습이 정말 보기 좋네요~ 앞으로 세상은 극단적인 생산성 향상의 시대가 될 것이라고 생각을 합니다. Windows Powershell 과 함께 생산성에 있어서 앞서 나가시기 바랍니다.



Windows 환경에서 Powershell 을 사용하면 정말 다양한 PC 작업들을 자동 할 수 있습니다. 저는 업무를 비롯해 집에서 영화나 음악 파일 관리를 할 때도 Powershell 스크립트를 자주 사용합니다.

그런데 오래 걸리는 작업이 있다면 Powershell 스크립트가 실행되는 시간을 알고 싶은 경우가 종종 있습니다. 그래서 오늘은 Powershell 다른 스크립트 실행 시간을 측정하는 방법에 대해서 소개하려 합니다.

코드는 아래와 같이 굉장히 간단하고 측정하고자하는 스크립트 위아래에 Get-Date commandlets 을 넣어서 그 차이를 계산 하는 방법입니다.



위 Powershell 코드에서 시간 차이를 담고 있는 $timeSpan 변수를 찍어 보면 아래와 같이 다양한 시간 간격에 대해서 표시할 수 있습니다. 위 코드에서는 TotalSeconds 변수를 사용하여 초 단위로 표시를 했습니다.




요즘은 많은 분들이 동영상을 다운로드 받아서 보실겁니다. 그런데 동영상 중에는 아래와 같이 챕터가 설정되어 있는 경우가 많이 있습니다. 저는 Windows 컴퓨터에서 동영상을 시청 할 때 주로 팟플레이어를 많이 사용하고 책갈피 기능을 사용하곤 합니다. 아시겠지만 책갈피 기능은 동영상에서 표시해놓고 싶은 부분을 체크 해 놓는 기능입니다. 책갈피는 할 수도 있고 삭제할 수도 있습니다. 그런데 위에서 얘기했던 챕터는 팟플레이어에서 삭제가 되지 않더군요.

그래서 오늘은 mkv 파일에 설정된 귀찮은 챕터를 삭제하는 방법에 대해서 소개하려 합니다. 동영상에 표시된 챕터를 삭제하기 위해서 mkvtoolnix 라는 프로그램을 다운로드 받았습니다. mkvtoolnix 은 아래 주소에서 다운로드 할 수 있습니다.

https://mkvtoolnix.download/downloads.html

위 주소에서 아래 그림과 같이 자신의 컴퓨터 운영체제를 선택해 주시면 설치 할 수 있는 바이너리 파일을 받을 수 있는 링크가 나타납니다.

저는 현재 윈도우 64비트 운영체제를 사용하고 있어서 아래 주소에서 윈도우 바이너리 파일을 다운로드 받았습니다. 인스톨 버전과 포터블 버전이 있으니 기호에 따라 선택하시면 될 것 같습니다.

https://www.fosshub.com/MKVToolNix.html

Windows 에서 Chocolatey 를 사용하시는 분들은 아래 명령어로 mkvtoolnix 를 간단하게 설치하실 수도 있습니다.

choco install mkvtoolnix -y

설치가 다 끝났으면 mkvtoolnix 를 실행하고~ 아래와 같이 챕터 편집기를 선택합니다.

그리고 위 그림에 나와 있는 바와 같이 편집할 동영상을 drag & drop 하면 편집할 동영상의 챕터가 열리는 것을 확인할 수 있습니다.

챕터를 지우기 위해서 아래와 같이 메뉴의 챕터 편집기 -> “기존의 Matroska 파일에서 챕터 삭제” 를 눌러주고 저장해 줍니다.

챕터가 삭제된 동영상을 다시 실행해서 확인해 보면 아래와 같이 예전에 보이던 챕터가 삭제된 것을 확인할 수 있습니다.

그럼 이제 즐거운 동영상 시청 하시기 바랍니다.



  1. ㅇㅇ 2019.10.05 23:19

    감사합니다~ 덕분에 거슬리던거 깔끔하게 지웠네요

    • 남성 2019.10.05 23:21 신고

      넵~ 도움되었다니 다행이네요. 방문해 주셔서 감사합니다. ^^

회사에서 집에 있는 컴퓨터에 접속을 할 때 어떻게 접속 하시나요? 우리나라에서는 대부분의 분들이 Windows 를 사용하실 되고 Windows 원격접속을 사용하실 걸로 생각을 합니다. 그런데 아래 포스팅에서도 소개를 했었지만 요즘은 브라우저만 있으면 원격접속을 할 수 있는 시대가 되었습니다. 컴퓨터에 크롬 브라우저를 설치하시고 아래 포스팅에서 소개한대로 원격 액세스를 설정하시면 됩니다.

https://iamaman.tistory.com/2373

저는 회사에서 집 컴퓨터에 접속을 할 때 “Chrome 원격 데스크톱” 을 매우 유용하게 사용하고 있습니다. 그래서 오늘도 집 컴퓨터에 원격접속을 하기 위해서 “Chrome 원격 데스크톱” 에 들어가 보니~ 이제는 “Chrome 원격 데스크톱” 웹앱이 나왔더군요.

https://remotedesktop.google.com/access

이전에는 크롬 브라우저에서 “Chrome 원격 데스크톱” 확장 프로그램을 설치해야만 “Chrome 원격 데스크톱” 사용이 가능 했었는데 이제는 어느 브라우저에서든~ 위 주소를 통해서 내가 설정한 컴퓨터에 원격접속을 할 수가 있습니다. 아래는 인터넷 익스플로러를 통해서 “Chrome 원격 데스크톱” 에 접속한 모습입니다.

물론 설명에 의하면 크롬 브라우저를 사용해야만 모든 기능을 다 사용할 수 있다고 하지만~ 브라우저만 있으면 내 컴퓨터가 아니어도 원격접속을 할 수 있으니 너무나 편리해진 것 같습니다.

아직은 베타 버전이라서 버그가 있을 수는 있겠지만~ 점점 더 좋아질 것이라고 생각하고~ 컴퓨팅 환경이 나날이 발전하는 것 같아서 너무 좋네요.

요즘은 많은 분들이 집에서 공유기를 사용하고 있고 원격 접속 설정을 하기 위해서 포트포워딩을 하는 등 갖가지 설정을 해야 됐는데 “Chrome 원격 데스크톱” 웹앱을 사용하면서 그럴 필요가 없어질 것 같습니다.



많은 분들이 많이 사용하고 있을 것 같은데~ Windows 탐색기에는 미리보기 기능이 있습니다. 파일을 열기 전에 미리 보기를 해서 자신이 원하는 파일을 확인하는 방법이죠.

굉장히 많은 파일 내에서 자신이 원하는 컨텐츠가 들어 있는 파일을 눈으로 확인하고 찾고 싶을 때 꼭 필요한 기능이라고 할 수 있습니다. 텍스트 파일을 비롯해서 이미지, 마이크로소프트 오피스 파일등 다양한 파일 형식에 대해서 미리 보기를 할 수가 있는데~ 이상하게 Windows Powershell 파일에 대해서는 미리 보기가 되지 않더군요. 그래서 검색을 조금 해보니 저와 같은 의구심을 가지고 있는 사람들이 많이 있었고 해결 방법 역시도 있었습니다.

Powershell 관련 파일 확장자는 ps1, psm1, psd1 이렇게 세 개인데~ 해당 파일들을 윈도우 미리보기가 되게 하기 위해서는 아래 주소의 레지스트리에 확장자 별로 키를 추가해야 되더군요.

HKEY_CURRENT_USER\Software\Classe

저한테는 너무 귀찮은 일이기 때문에 한 번에 해 주는 스크립트를 찾아 보니 역시나 있었습니다. 해당 스크립트는 제 gist 에 올려놨고~ 아래 스크립트를 다운로드 받아서 사용하면 됩니다.

git 을 사용 하시는 분이라면 아래 명령어를 통해서 다운로드 받을 수 있습니다.

git clone https://gist.github.com/ssgkd/06a57d14eeceaa28e0e1c9a8cab13a71

Powershell 을 관리자 권한으로 실행한 후에 다운로드 받은 Powershell 파일을 실행해 주면 아래와 같이 Powershell 파일에 미리보기가 가능한 것을 확인할 수 있습니다.



전자과 학생들은 회로이론을 많이들 듣게 되고 이런저런 이론과 함께 컴퓨터를 이용한 시뮬레이션 방법에 대해서 공부를 하게 됩니다. 저는 과거에 전자과 학부생 시절에 pspice 를 공부했던 경험이 있었는데 수업 시간에 이론을 듣고 피스파이스로 시뮬레이션을 해 보니 조금 더 이해가 잘 되는 것 같았습니다.

회사에 와서보니 pspice 는 orcad 에 들어있는 툴이었고 굉장히 비싸더군요. 그래서 무료로 사용할 수 있는 Circuit Simulation 툴을 검색하다보니 아래 포스팅에서 소개했던 Circuit Simulator 를 찾을 수 있었습니다.

https://iamaman.tistory.com/2626

Circuit Simulator 역시 충분히 훌륭한 프로그램이라는 생각이 들었고 학생들이 사용하기에 정말 부족함이 없는 프로그램이라고 생각을 합니다. 그런데 웹 브라우저에서 돌아가는 프로그램이다보니 인터넷이 안 되면 사용할 수 없다는 단점이 있었습니다. 그래서 설치형 무료 Circuit Simulation 프로그램을 검색해 보니~ Qucs(Quite Universal Circuit Simulator) 가 나오더군요.

qucs 는 아래 주소에서 다운로드 받을 수 있습니다.

http://qucs.sourceforge.net/download.html

각자 컴퓨터 OS에 맞는 버전을 다운로드 받으시면 됩니다.

저는 현재 Windows OS 를 사용하고 있어서 Windows 버전을 다운로드 받았습니다. 다운로드 링크를 클릭하면 아래 주소의 sourceforge 로 연결이 되고~

https://sourceforge.net/projects/qucs/files/qucs-binary/

현재 최신 버전은 0.0.19 버전이었습니다.

https://sourceforge.net/projects/qucs/files/qucs-binary/0.0.19/

qucs-0.0.19-win32-mingw482-asco-freehdl-adms.zip 파일을 다운로드 받고 압축을 해제하면 설치는 완료됩니다. 해당 폴더에서 qucs.bat 배치 파일을 실행하면 아래와 같이 Qucs(Quite Universal Circuit Simulator) 가 실행 됩니다.

요즘에는 너무나 많은 학습 자료들이 인터넷에 방대하게 있어서 새로운 프로그램을 공부하는게 정말 쉬운 거 같습니다. qucs 사용 방법에 대한 자료는 그리 많지는 않지만 유튜브를 검색해 보니 아래와 같은 동영상을 찾을 수 있었습니다. 영어를 잘하지는 못하지만 자막을 보면서 보다보니 사용방법이 그렇게 어렵지는 않더군요.

아직 0.0.19 버전 이만큼 많은 부분들이 개발되고 있는 거 같고~ 사실 위 동영상을 봤을 때 지금 기능도 굉장히 훌륭하다는 생각이 들었습니다. 대부분의 프로그램이 그렇듯이 F1 을 누르면 Qucs Help System 이 나타나고 Getting Started 를 보면서 연습을 해 본다면 금방 적응이 될 거 같더군요.

http://qucs.sourceforge.net/docs/tutorial/getstarted.pdf

Qucs Help System 을 확인하다 보니 octave 스크립트도 실행이 되는 거 같더군요. OCTAVE 연동 기능을 사용하기 위해서는 일단 OCTAVE 실행 파일 위치를 세팅 해 줘야 됩니다.

아래와 같이 File 메뉴에서 Application Settings 를 누르거나 단축키 Ctrl +, 를 누르면 Application Settings 창이 열리게 됩니다.

해당 창에서 아래와 같이 OCTAVE 실행 파일의 풀 패스를 적어 주면 됩니다.

당연히 OCTAVE 가 설치되어 있어야 되겠고~ OCTAVE 설치 와 관련된 내용은 아래 포스팅을 참조하시기 바랍니다.

https://iamaman.tistory.com/2760

OCTAVE 세팅을 다 완료한 이후에~ 프로젝트를 하나 만들고 그 안에 m 파일을 하나 만들었습니다. 메뉴얼에 설명하는대로 F2 를 누르니 아래와 같이 m 파일이 실행되더군요.

qucs 에서 OCTAVE 연동 기능은 생각해보니 굉장히 괜찮은 기능인 것 같습니다. Qucs(Quite Universal Circuit Simulator) 로 회로를 시뮬레이션하고 해당 결과에 대해서 m 파일로 분석을 할때 대단히 유용할 것 같네요. 앞으로 조금 더 많이 QUCS 를 활용하게 될 것 같네요~ ^^



Autohotkey 를 사용하여 처음에는 현재 활성화된 창에 대해서만 자동화를 주로 하지만 Autohotkey 에 어느 정도 익숙해지고 나면 비활성화 된 프로그램에 대해서 자동화를 하고 싶다는 생각이 들곤 합니다.

이런 목적으로 사용하는 Autohotkey 명령어는 ControlSend, ControlGet, ControlMove, PostMessage, SendMessage, ControlGetText 등이 있고 저는 주로 ControlSend 를 사용하여 비활성 창에 명령어를 던져 보고 ControlSend 로 되지 않는 경우 PostMessage/SendMessage 를 사용하곤 합니다.

PostMessage/SendMessage 명령어를 사용하기 위해서는 Windows 메시지를 알아야 되고 PostMessage/SendMessage 에 대한 사용법은 Autohotkey 메뉴얼을 보면 아래와 같이 튜토리얼도 확인할 수 있습니다.

https://autohotkey.com/docs/misc/SendMessage.htm

아래 페이지를 보니 한글로 된 자료도 있더군요. 사람이 번역을 한 건지 구글 번역과 같은 번역 프로그램을 사용한 건지는 잘 모르겠습니다. 영어가 부담스러운 분들은 한 번쯤 읽어보시기 바랍니다.

http://autohotkeykr.sourceforge.net/docs/misc/SendMessage.htm

어쨌든 위 튜토리얼에서는 Windows Spy 프로그램으로 Winspector Spy 를 알려주고 아래 주소에서 다운로드 받아서 사용할 수가 있습니다.

https://www.softpedia.com/get/Security/Security-Related/Winspector.shtml

뭐 정확하게 기억은 안 나지만 예전 경험으로는 Winspector Spy 를 사용하다가 뭔가 잘 안되서 사용을 안 하게 됐었는데~ 저는 요즘은 Winspector Spy 대신에 Window Detective 를 사용하고 있습니다. Window Detective 는 아래 주소에서 다운로드 받을 수 있고~ 설치 방법은 다운로드 받은 후에 실행 파일을 실행 하고 다음~ 다음만 누르면 되므로 굳이 설명 드리지 않겠습니다.

http://windowdetective.sourceforge.net/

오픈소스 프로그램을 검색하는 AlternativeTo 에서 Windows spy 프로그램들을 검색 해보니

Window Detective 가 조금 더 인기가 좋은 거 같아서~ 요즘은 Window Detective 를 주로 사용하게 되었습니다. AlternativeTo 는 유용한 프로그램들을 찾을 수 있는 굉장히 좋은 사이트로 AlternativeTo 에 대해 알고 싶은 분들은 아래 포스팅을 참조하시기 바랍니다.

https://iamaman.tistory.com/2123

Window Detective 를 설치한 후에 실행하면 아래와 같이 프로그램이 실행되는 것을 확인할 수 있고~ 특정 프로그램의 메시지를 확인하기 위해서는 “Pick window” 버튼을 드래그해서 메시지를 확인하고 싶은 창에 드랍하면 됩니다.

아래 그림은 PotPlayer 에 대해 Window Detective 를 사용하여 메시지를 확인하는 장면이고~ Window Detective 에서 오른쪽 클릭 한 후에 message 메뉴를 선택하면 PotPlayer 에 대한 메시지를 확인할 수 있게 됩니다.

아시다시피 윈도우 프로그램에는 정말 많은 메시지들이 있기 때문에 내가 원하는 메시지를 확인하는 것이 중요합니다. 위 그림에서 깔데기 모양을 선택하면 원하는 메시지들만 선택적으로 확인할 수 있습니다.

그럼 즐거운 Autohotkey 코딩 Life 되시기 바랍니다. ^^



최근에 임베디드 개발을 하면서 헥사 파일을 확인할 필요가 있어서 윈도우용 헥사파일 에디터를 검색을 해보니 오늘 포스팅 제목에서 소개한 HxD 가 검색이 되더군요. HxD 는 아쉽게도 윈도우 PC에서만 사용 가능한 프리웨어 입니다. 그래도 우리나라 PC 사용자의 대다수가 윈도우 운영체제를 사용하기 때문에 사실 많은 분들이 HxD 를 사용하실 거라고 생각합니다.

HxD 는 아래 주소에서 다운로드 가능 합니다.

https://mh-nexus.de/en/hxd/

위 주소에서 조금만 아래로 스크롤 해 보면 다운로드 링크가 나오고 자산의 운영체제에 따라 프로그램을 다운로드 하시면 됩니다.

윈도우 소프트웨어가 그렇듯이 HxD 역시도 다음 다음을 클릭하면 설치가 되고~ 아래 보시는 바와 같이 설치 버전과 포터블 버전을 선택할 수 있습니다.

저는 주로 윈도우를 사용하기는 하지만 리눅스도 가끔씩은 사용하는 편이라서 다른 운영체제에서 쓸 만한 헥사파일 에디터가 있나 검색을 해보니 Cross-platform 헥사 에디터로는 wxHexEditor 가 있고 아래 주소에서 다운로드 할 수 있었습니다. 자신의 PC 운영체제에 맞는 프로그램을 설치하시면 됩니다.

http://www.wxhexeditor.org/download.php

윈도우에서는 Notepad++ 도 많이 사용하는데 Notepad++ 플러그인이 있는지를 확인해 보니 HEX-Editor 라는 플러그인이 있는 것을 확인할 수 있었습니다. 요즘 Notepad++ 에는 플러그인 매니저가 기본으로 들어있지 않아서 아래 주소를 참조하여 플러그인 매니저를 설치하시고~

http://iamaman.tistory.com/2044

다음과 같이 HEX-Editor 플러그인을 설치하시면 됩니다.

찾아보니 헥사 파일을 확인할 수 있는 에디터로 정말 다양한 도구들이 있는 것을 확인할 수 있었습니다. 요즘은 오픈소스 또는 프리웨어 툴들이 너무나 좋아져서 개발을 하기에 정말 좋아진 세상인 것 같습니다.



아래 포스팅에서 윈도우에서 사용할 수 있는 OCR 툴로서 Tesseract-OCR 라는 툴에 대한 설치 및 간단한 사용 방법에 대해서 소개를 한 적이 있습니다. 오늘은 비슷하지만 조금 다른 특성을 가진 윈도우 OCR 툴인 Capture2Text 에 대해서 소개해 보려 합니다.

Capture2Text 의 홈페이지 주소는 아래와 같습니다. 아래 주소에서 Capture2Text 에 대한 소개를 확인해 보면 Capture2Text 는 설치가 필요 없는 portable 프로그램 이고, 구글 번역, TTS(Text to speech) 기능 등도 들어 있다고 합니다. 조그만 툴인것 같은데 굉장히 기능이 많은것 같습니다.

https://sourceforge.net/projects/capture2text/

설치가 필요 없기 때문에 위 주소에서 다운로드 버튼을 눌러서 다운로드 후에 압축을 해제하고 바로 사용하시면 됩니다. 제가 다운로드 해 보니 60메가 정도 되네요. 다운로드 버튼을 누르고 느긋하게 커피 한잔 하고 오시면 될 것 같습니다.

기본 언어로 한글도 포함되어 있기 때문에 특별히 추가적인 언어 설치를 할 필요는 없을 것 같지만 혹시나 추가적인 언어 설치가 필요하신 분들은 아래 주소에서 필요한 언어를 다운로드해서 Capture2Text 의 tessdata 폴더에 넣고 Capture2Text 를 재시작 하시면 됩니다.

https://sourceforge.net/projects/capture2text/files/Dictionaries/

저는 Chocolatey 를 통해 아래 명령어로 설치했고~

choco install capture2text

아래 폴더에 언어 파일이 설치된 것을 확인할 수 있었습니다.

C:\ProgramData\chocolatey\lib\capture2text\tools\Capture2Text_v4.5.1_64bit\tessdata

SourceForge.net 에서 다운로드 해서 설치 하신 분들은 아래 폴더에 언어 파일이 설치된 것을 확인할 수 있습니다.

Capture2Text_v4.6.0_64bit\Capture2Text\tessdata

설치 폴더를 확인해 보시면 아래와 같이 실행 파일이 두 개가 있는 것을 확인할 수가 있고~ 파일 이름을 보시면 아시겠지만 하나는 GUI 프로그램이고 하나는 CLI 프로그램 입니다.

Capture2Text.exe, Capture2Text_CLI.exe

Capture2Text.exe 를 실행하면 윈도우 작업표시줄에 프로그램이 실행 된 것을 확인할 수 있습니다.

해당 아이콘을 오른쪽 클릭해서 Settings 에 들어가보면 단축키를 확인할 수가 있는데 Win + Q 가 OCR 캡처를 시작하는 기본 단축키로 설정되어 있어서 Windows 10 의 Cortana 런치키와 충돌이 생기므로 저는 아래와 같이 Alt 를 같이 눌러주도록 설정을 했습니다.

기본 OCR 언어 설정은 영어로 되어 있고~ 캡처 하고 싶은 이미지 부분에 커서를 위치 시킨 후 위에서 설정한 Start OCR Capture 단축키를 누르면 캡처가 시작됩니다. 드래그 해서 범위를 설정해 주면 아래 화면에서 보시는 바와 같이 왼쪽 위편에 OCR 된 텍스트가 표시되고~ 드래그가 끝나면 캡쳐가 마무리 됩니다.

캡쳐가 마무리되면 인식된 텍스트가 클립보드에 들어가게 되고~ Ctrl + V 를 해서 붙여넣기를 하면 됩니다. 다른 언어를 인식하기 위해서는 아래와 같이 OCR 언어 설정을 변경해 준 후에 Start OCR Capture 과정을 진행하시면 됩니다.

테스트 해 본 결과 영어에 대한 인식은 대체적으로 잘 되는 것 같지만 한글에 대한 인식은 이전에 소개했던 Tesseract-OCR 에 비해 조금 떨어지는 것 같습니다. 

http://iamaman.tistory.com/2615


그래도 빠르게 캡처하면서 영어 이미지에 대해서 인식을 하는 경우에는 굉장히 좋은것 같고 캡처와 동시에 번역도 자동으로 되게 설정할 수 있기 때문에 OCR 후 바로 바로 번역하는 경우에는 정말 괜찮은 툴인것 같네요~



요즘 많은 분들이 알게 모르게 딥러닝 기술들을 실생활에서 사용을 하고 있습니다. 가장 가까이는 스마트폰을 통한 음성인식 기술들을 사용 하실 거고 번역 프로그램이나 SK T Map 등을 매우 자주 접하고 계실 거라고 생각합니다. OCR(Optical Character Recognition) 기술은 말 그대로 이미지로부터 글자를 인식하는 건데 예전부터 연구돼 왔지만 최근에 딥러닝 기술의 발달로 굉장히 빠르게 발전하고 있는 분야로 보입니다.

온라인에서 이미지로부터 텍스트를 추출하는 사이트로 아래와 같은 사이트들을 찾을 수가 있었습니다. OCR 툴을 설치할 필요 없이 빠르게 OCR 서비스만 이용하고 싶을 때 사용하시면 좋을 것 같습니다.

http://www.free-online-ocr.com/

https://www.onlineocr.net/

https://www.newocr.com/

위에서 소개한 웹사이트들을 사용하기 위해서는 이미지 파일을 업로드 해야 하는데 사정에 따라서 업로드가 안 되거나 업로드하기 곤란한 이미지가 있을 수 있습니다. 그럴 땐 어쩔 수 없이 OCR 툴을 설치해서 사용해야 하고 그래서 검색을 좀 해 보니 Tesseract-OCR 이라는 프로그램이 눈에 띄었습니다.

저는 현재 Windows 10 운영체제를 사용하고 있고 tesseract 윈도우 버전을 검색해 보니 아래 주소를 찾을 수 있었습니다.

https://github.com/UB-Mannheim/tesseract/wiki

아래 그림과 같이 3점대 버전이나 4점대의 베타버전 인스톨러를 다운로드 받아서 설치 하시면 됩니다.

저는 아래 그림과 같이 추가적인 스크립트, 언어 데이터를 체크를 해서 설치했습니다. 보통은 영어 한국어만 주로 사용하겠지만 기왕 설치하는거 그냥 다 설치 해 보자 하는 생각이 들어서 모두 다 설치하도록 체크를 했습니다.

저는 4점 대의 베타 버전을 다운로드 받아서 설치를 했는데 설치 중간에 없는 언어 파일들이 있더군요. 그런 파일들은 그냥 넘어가면서 설치를 완료 했습니다.

Tesseract-OCR 은 아래 폴더에 설치 되고~ 해당 주소를 path 환경 변수에 등록해 주셔야 아무 폴더에서나 Tesseract-OCR 을 사용할 수 있습니다. 설치하고 보니 64비트 프로그램을 설치 했는데 “Program Files (x86)“ 폴더에 설치 되는 것은 조금 특이하네요.

C:\Program Files (x86)\Tesseract-OCR

윈도우 환경변수 등록을 할 때는 아래 포스팅에서 소개했던 Rapid Environment Editor 를 사용해 보시기 바랍니다.

http://iamaman.tistory.com/1213

환경변수 등록까지를 마쳤으면~ 다음과 같이 cmd 창에서 Tesseract-OCR 을 사용할 수 있습니다.

위키백과의 한 부분을 캡처를 했고~ 해당 파일 이름은 PrtScrcapture_8.jpg 로 저장했습니다.

그리고 다음과 같이 tesseract 명령어를 사용했습니다. 한글을 인식하는 것이므로 -L 옵션에 kor 이라고 명시를 해 줬습니다.

tesseract PrtScrcapture_8.jpg test.txt -l kor

몇 초 지나서 test.txt 파일이 생성되고 확인해 보니~ 아래 그림과 같이 한글이 추출된 것을 확인할 수 있었습니다.

물론 이미지로부터의 한글 인식이 완벽한 것은 아니었지만 나름 볼 만한 수준이었던 걸로 보이고~ 위 캡처 내용을 보면 글자 색이 다른 부분이나 추가적인 이미지 등이 있는데 회색조로 변경하거나 하는 추가적인 이미지 처리를 한 후에 tesseract 를 사용하여 글자 인식을 한다면 조금 더 좋은 결과가 나오지 않을까 하는 생각이 들었습니다.



PC 를 사용하면서 드래그 앤 드롭 기능은 굉장히 많이 사용 할 거라고 생각을 합니다. 그런데 계속해서 계단 기능이 갑자기 안 되면 정말 짜증이 나죠. 저는 요즘 Windows 10 을 주로 사용하고 있는데 왜 그런지는 모르겠지만 드래그 앤 드롭 기능이 제대로 동작을 하지 않더군요.

가령 탐색기에서 파일을 선택하고 드래그해서 그림판에 드랍하면 그림판에 해당 그림 파일이 열려야 됩니다. 그런데 드래그 앤 드롭 기능이 안 되는 경우 그림판에서 그림을 편집 하기 위해서는 파일 -> 열기를 통해서 열어야 되더군요.

너무 귀찮아서 해결 방법을 좀 찾아보니 윈도우 레지스트리를 변경 하는 방법이 있더군요.

Win + R 을 눌러서 실행창을 열고 아래와 같이 regedit 라고 명령해 주면 레지스트리 편집기가 열립니다.

레지스트리 편집기에서 아래 주소를 찾아 줍니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

일일이 주소를 찾아서 들어가는게 귀찮으신 분들은 아래 그림과 같이 주소 표시줄에 위 주소를 복사 붙여넣기하면 됩니다.

다음으로 EnableLUA 값을 1 에서 0 으로 변경해 줍니다.

윈도우를 재부팅하고~

윈도우 탐색기에서 파일을 선택 후에 그림판에 드래그 앤 드랍을 해보니 정상적으로 동작하더군요.

윈도우 레지스트리는 잘못 건드리면 운영체제가 제대로 동작하지 않을 수 있습니다. 따라서 레지스트리 변경 시에는 반드시 주의해서 변경 하시기 바랍니다.



요즘 개인 방송들이 많이 발전을 하고 있고 유튜브를 비롯한 동영상 컨텐츠들이 성행하고 있습니다. 예전처럼 책이나 단순한 글을 통해서 컨텐츠를 접하는 것보다 동영상 컨텐츠를 통해서 접하는 것이 파급력이 큰 거 같고 컨텐츠 소비자 입장에서도 이해가 훨씬 더 잘 되는 것이 사실입니다.

이러한 동영상 건전지를 만들기 위해서 예전에는 Camtasia Studio 와 같은 상용 프로그램을 많이들 사용을 했었고 CamStudio 와 같은 프리 소프트웨어도 많이 사용을 했던 기억이 있습니다. 한동안은 PC 화면을 녹화 할 일이 거의 없어서 동영상 녹화 프로그램들을 별로 사용할 일이 없었는데 최근에 만들어 보고 싶은 컨텐츠가 있어서 동영상 녹화 프로그램을 찾다 보니 OBS(Open Broadcaster Software) 라는 프로그램을 알게 되었습니다.

OBS 는 아래 주소에서 다운로드 받을 수 있습니다.

https://obsproject.com/ko

아래 화면에서 보시는 바와 같이 사용자 컴퓨터에 맞는 프로그램을 다운로드 받아서 설치하시면 됩니다. 저는 현재 윈도우 컴퓨터를 사용하고 있어서 Windows 버전을 다운로드 받아서 설치를 했습니다. 현재 제가 다운로드 받은 버전은 22.0.2 버전입니다.

설치과정은 보통의 윈도우 프로그램들이 그렇듯이 다음 다음을 누르면 됩니다. 설치 과정은 특이 할게 없어서 설명할게 없네요. OBS 를 64비트 윈도우 환경에서 설치 시 아래 주소에 설치가 됩니다.

C:\Program Files\obs-studio

OBS 실행 파일을 bin 폴더에 설치가 되어 있고 64비트 윈도우 기준으로 path 는 아래와 같습니다.

C:\Program Files\obs-studio\bin\64bit\obs64.exe

Launchy 에서 Start Menu 에 있는 프로그램들을 자동으로 검색하기 때문에 설치만 하면 다음과 같이 Launchy 를 통해서 obs 라고 타이핑만 하면 쉽게 실행 시킬수 있습니다.

설치를 하고 OBS 를 실행시켜 보니 다음과 같은 화면이 나타나면 정상적으로 설치가 완료된 것입니다.

OBS 사용 방법에 대해서 검색을 해 보면 유튜브에 정말 많이 있습니다. 해당 동영상을 보면서 조금씩 익히면 금방 쉽게 사용할 수 있지 않을까 싶네요.



요즘 딥러닝 관련 책을 보면서 공부를 하고 있는데 형태소분석에 대해서 알게 됐고, 파이썬에서 KoNLPy 모듈을 사용하면 정태수 분석을 할 수 있다는 것을 알게 되었습니다.

KoNLPy 의 설치 방법은 아래 주소에서 확인할 수 있습니다.

http://konlpy.readthedocs.io/ko/v0.4.0/install/#id2

현재 저는 아나콘다로 파이썬을 설치한 상태고 자바는 이미 설치가 된 상태입니다.

따라서 KoNLPy 만 설치하면 돼 거라고 생각을 해서 아래와 같이 KoNLPy 를 설치했습니다.

현재 제 컴퓨터에 환경은 Windows 7 64비트 이고 파이썬 아나콘다 3.6 버전입니다.



pip install KoNLPy

다음으로 JPype1 를 설치해 하더군요. 아래 주소에서 제 컴퓨터에 맞는 버전을 설치하였습니다.

https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype

64비트 윈도우에 파이썬 3.6 버전이므로 JPype1‑0.6.3‑cp36‑cp36m‑win_amd64.whl 파일을 다운로드 해서 아래 명령어를 통해서 설치했습니다.

pip install JPype1‑0.6.3‑cp36‑cp36m‑win_amd64.whl

이제 잘 될 거라고 생각을 하고 아래 예제를 돌려보니~

from konlpy.tag import Twitter


if __name__ =='__main__':

    twitter = Twitter()

    malist = twitter.pos("형태소 분석 하고싶어요.", norm=True, stem=True)

    print(malist)


또 ~~ 에러가 나더군요. numpy 모듈 관련한 에러 같아서 검색을 조금 해 보니 최신 버전으로 업데이트 해야 되는 것 같더군요. 그래서 아래 명령어를 실행해서 numpy 를 업데이트 했습니다.

pip install numpy --upgrade

이제 다시 위 파이썬 코드를 돌려보니 아래와 같이 형태소 분석이 정상적으로 되는 것을 확인할 수 있었습니다.

[('형태소', 'Noun'), ('분석', 'Noun'), ('하다', 'Verb'), ('.', 'Punctuation')]

역시 소프트웨어 개발은 환경 설정 뻘짓이 반인것 같습니다.



Autohotkey 를 사용하여 특정 프로그램에 명령어를 날릴 때 send 명령어를 주로 사용 하곤 합니다. 그런데 send 명령어는 activation 된 창에만 명령어를 날립니다. 이렇게 되는 경우 send 명령어를 사용하는 중에는 사용자가 다른 작업을 할 수가 없습니다. 이러한 경우에 비활성창에 명령어를 실행 시키는 ControlSend 를 사용하면 다른 작업을 하면서 Autohotkey 를 사용하여 특정 프로그램을 자동 할 수 있습니다.

ControlSend 명령어에 대한 설명은 아래 주소의 메뉴얼을 확인하시기 바랍니다.

https://autohotkey.com/docs/commands/ControlSend.htm

저는 Synology NAS 를 사용하고 있고, Windows 운영체제에서 Synology NAS 에 접속하는 경우 putty 를 사용하는데 아래와 같은 Autohotkey 스크립트를 주로 사용하고 있습니다.

SetTitleMatchMode, 2

SetKeyDelay,-1,-1

ControlSend,,./mod_files.sh,PuTTY,

위 Autohotkey 코드는 PuTTY 에 ./mod_files.sh 를 타이핑 하도록 하는 명령어 입니다. 언뜻 봐서는 문제가 없어 보였는데 계속해서 실행시키다 보니 아래와 같은 문제가 있었습니다. 아래 그림에서 밑줄 친 부분을 보면 명령어가 다른 것을 확인할 수 있습니다. 결국엔 위 코드에서 ControlSend 명령어가 정확하게 동작하지 않는것을 알 수가 있습니다.

위 문제를 확인한 후에~ 내가 ControlSend 명령어를 잘못 썼나? 라는 생각을 했었는데 사실 문제는 SetKeyDelay 에 있었습니다. SetKeyDelay 명령어에서 -1 은 no delay 를 의미하고 첫 번째, 두 번째 아규먼트는 Delay, PressDuration 을 의미 합니다. 이 부분을 no delay 로 설정 하다 보니 문제가 발생한 것이었습니다. 그래서 해당 부분을 지우고 코드를 실행해 봤습니다.

SetTitleMatchMode, 2

ControlSend,,./mod_files.sh,PuTTY,

여러번 실행을 해 봤는데 한 번도 빠짐없이 명령어가 전달 되더군요.

ControlSend 를 사용하는 중에 혹시나 문제가 발생한다면 SetKeyDelay 를 의심 해 보시기 바랍니다.



아래 포스팅에서 sox 를 사용하여 스테레오를 모노로 바꾸는 예에 대해서 소개를 했었는데

http://iamaman.tistory.com/651

오늘은 sox 를 사용하여 Windows 커맨드라인에서 명령어로 녹음을 하는 방법에 대해서 소개하려합니다.

sox 는 아래 주소에서 다운로드 받을 수 있습니다. 현재 sox 의 최신 버전은 14.4.2 입니다.

https://sourceforge.net/projects/sox/files/sox/

저는 보통 이런 exe 프로그램을 사용할 때 zip 파일 버전을 다운로드해서 사용하는 편입니다. 압축을 해제 한 후에 path 환경변수에 해당 폴더를 설정해 주면 됩니다.

sox 를 사용하여 Windows 커맨드라인에서 녹음하기 위해서는 아래와 같이 명령어를 써 주면 됩니다.

sox -t waveaudio -d test.wav

or

sox -t waveaudio -d test.mp3

위 명령에 중에서 mp3 파일로 저장 하기 위해서는 추가적인 라이브러리들이 필요합니다. 해당 파일들은 아래 주소에서 다운로드 후에 sox 의 설치 폴더에 넣어 주면 됩니다.

http://iamaman.tistory.com/attachment/cfile30.uf@274984375263D02F1AFEEB.zip

위의 명령어를 사용하면 아래와 같이 녹음이 시작되고 녹음을 종료 하기 위해서는 Ctrl + C 를 눌러주면 abort 가 되면서 종료되고 현재의 폴더에 test.mp3 파일이 생성 됩니다.



Windows 10 에 리눅스를 설치 할 수 있다는 얘기를 들었다가 잊고 있었는데 최근에 시간도 나고 궁금해서 Windows 10 WSL(Windows Subsystem for Linux) 의 리눅스를 설치 해 봤습니다.

일단 WSL 사용을 위해서는 아래와 같이 Windows 기능에 들어가서 ‘Linux 용 Windows 하위시스템’ 체크를 해 줘야 됩니다. 확인을 한 후에 윈도우를 재부팅합니다.

이 설정은 Powershell 을 통해서도 가능한데 다음과 같이 명령어를 입력해 주면 됩니다.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

이 명령을 실행 후에는 똑같이 윈도우를 재부팅 합니다.

재부팅 후에 Microsoft Store 를 실행 하고 검색에 linux 라고 타이핑하면 아래와 같은 화면이 나타나는데, ‘Windows 에서 Linux 실행하기’를 선택합니다.

들어가 보면 Microsoft Store 에서 설치 가능한 리눅스 버전이 나옵니다. Ubuntu, SUSE 등이 나오는데 Kali Linux는 생소해서 오늘 한번 설치 해 봤습니다. Kali Linux 를 선택하고 들어가서 그냥 설치 버튼을 누르시면 설치가 됩니다. 다음과 같은 화면이 나오면 ID 를 설정해 주시고 password 를 설정해 주시면 됩니다.

cmd 나 Powershell 에서 kali 라고 명령하면 아래와 같이 Kali Linux 터미널이 실행 됩니다.

아래 주소에서 동영상을 확인해 보니 Kali Linux 에 xfce4 를 설치하고 원격접속을 통해서 UI 환경에서 작업을 할 수도 있더군요.

https://www.kali.org/news/kali-linux-in-the-windows-app-store/

Kali Linux 터미널에서 Windows 의 파일들은 /mnt 로 자동으로 마운트가 됩니다. 따라서 Windows 의 C:\ 에 접근하고 싶으면 Kali Linux 터미널에서 /mnt/c 로 접근하시면 됩니다. 예를 들어 ABC 사용자의 바탕화면에 접근하고 싶으면 /mnt/c/Users/ABC/Desktop 에 접근하시면 됩니다. 리눅스 터미널은 대소문자를 구별하기 때문에 c, d 는 소문자로 작성해 주셔야 됩니다.

다음으로 Kali Linux 에서 생생한 파일들은 Windows 에서 아래주소를 통해서 접근할 수 있었습니다.

%localappdata%\Packages\KaliLinux….\LocalState\rootfs

자신의 홈 폴더를 윈도우 바탕화면에 바로가기 등을 해 놓으면 편리하게 사용할 수 있을 것 같습니다.



최근에 Windows 7 에서 julia 를 다시 설치하고 패키지 관련 명령어들을 사용을 해보니 다음과 같은 에러가 발생을 했습니다. 위 제목에도 표시를 했지만 발생한 에러는 다음과 같습니다.

ERROR: GitError(Code:ECERTIFICATE, Class:OS, user cancelled certificate check: )

이렇게 에러가 날 때는 구글링 하면 되죠 뭐… 검색을 해보니 해결 방법으로 아래 페이지가 나왔습니다.

https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-a-default-secure-protocols-in

위 페이지에서 페이지를 조금만 내려 보시면 ~ 다음과 같이 Easy fix 라는 글자를 볼 수가 있습니다. Download 버튼을 눌러서 MicrosoftEasyFix51044.msi 파일을 다운로드 받아서 실행합니다. 이제 다 해결 됐습니다.

줄리아를 다시 실행하고 Pkg.update() 를 해 보니 정상적으로 동작을 하더군요.



아래 포스팅에서 Autohotkey 에서 Windows COM(Component Object Model) 을 사용한 사례에 대해서 소개를 한 적이 있습니다. Windows 컴퓨터 사용시 많이들 사용하는 Microsoft Office 제품을 사용할 때도 COM 을 사용하여 자동화를 할 수가 있습니다.

http://iamaman.tistory.com/1879

http://iamaman.tistory.com/461

http://iamaman.tistory.com/2001

http://iamaman.tistory.com/2021

Autohotkey 에서 COM 을 사용하기 위해서는 아래 메뉴얼 같이 COM object 를 만들어야 합니다.

https://autohotkey.com/docs/commands/ComObjCreate.htm

ComObjCreate의 입력값으로 CLSID 를 넣어줘야 하는데 CLSID 는 우리가 사용하고자 하는 COM 의 Program ID 입니다.

ComObject := ComObjCreate(CLSID [, IID])

탐색기 정보 등을 자동화 하고 싶으면 Shell.Application, Microsoft Word 를 자동화하고 싶으면 Word.application, Microsoft Powerpoint 를 자동화 하고 싶으면 PowerPoint.Application 을 넣어야 하는 식입니다.

COM 을 사용하기 위해서는 당연히 우리 컴퓨터에 사용할 수 있는 COM 이 어떤게 설치가 되어 있는지를 알아야 합니다. Microsoft Office 제품과 같이 우리가 설치한 경우에는 당연히 알 수 있겠지만 다른 프로그램들 같은 경우에는 어떤 이름을 사용해야 COM 을 사용할 수 있는 건지 잘 모르는 경우가 많습니다.

그래서 오늘은 Powershell 을 사용하여 우리 컴퓨터에 설치되어 있는 COM 을 검색하는 방법에 대해서 소개하려합니다. 해당 코드는 Powershell 코드이며 ‘개발자를 위한 Powershell’ 책의 예제에 있습니다.

책의 전체 소스 코드들은 아래 주소에서 다운로드 받을 수 있습니다.

https://github.com/dfinke/powershell-for-developers

그리고 아래 주소의 GetProgID 함수를 사용하면 우리 컴퓨터에 설치되어 있는 COM 을 검색할 수 있습니다.

https://github.com/dfinke/powershell-for-developers/blob/master/chapter10/GetProgID.ps1

Powershell 에서 다음과 같이 ps1 파일을 실행하면 되는데…..

.\GetProgID.ps1

내 컴퓨터에 몇 개의 COM 이 설치되어 있는지 확인을 해보려면 다음과 같이 명령어를 치면 됩니다. 제 컴퓨터에는 1800개 COM 이 있네요.

.\GetProgID.ps1 | measure


1800 개를 눈으로 확인하는 건 조금 불편 하니까 키워드로 검색하는 것이 좋습니다. 다음과 같이 word 를 검색해보면 Word.Application 뿐만 아니라 내가 잘 알지도 못하는 다양한 COM 들이 설치 되어 있다는 것을 알 수가 있습니다. 검색 되는 목록 중에서 Word.Application 을 사용 하면 되는 것이죠.

.\GetProgID.ps1 word


이베스트 xingAPI를 사용해서 시스템 트레이딩을 하시는 분들은 다음과 같이 검색해보시면 COM 이 나오는 것을 확인 하실수 있습니다. xingAPI 를 설치했으므로 검색이 되는 건 당연하겠죠.

.\GetProgID.ps1 XA_DataSet

.\GetProgID.ps1 XA_Session


저는 개인적으로 요즘 이베스트 xingAPI를 통해서 시스템 트레이딩을 조금씩 공부 해 보고 있는데, 컴퓨터 언어는 주로 파이썬을 사용하고 있습니다. 생각해보니 Autohotkey 나 Powershell 을 사용해서도 시스템 트레이딩이 가능할것도 같네요.



얼마 전 어떤분께서 Windows에서 광클릭으로 하는 스크립트를 궁금해 하시더군요. 아시는 분은 아시겠지만 Autohotkey 를 사용하면 이런 기능들은 매우 쉽게 만들 수가 있습니다. 질문하신 분은 아마도 게임을 하는데 사용하시는 것 같더군요.

어쨌든 Autohotkey 를 사용하여 광클릭으로 하는 스크립트는 아래와 같습니다. 마우스 왼쪽 버튼을 계속 누르고 있으면 해당 부분을 광클릭 하게 되는 코드입니다. Esc 를 누르면 해당 스크립트파일이 종료 됩니다.


~LButton::

while GetKeyState("LButton", "P")

{

Click

Sleep, 5

}

return


Esc::

ExitApp


sleep 를 안 넣으면 클릭이 너무 빨라서 렉에 걸린다고 하네요. 각자 용도에 맞게 sleep 시간을 조절해 보시기 바랍니다.



여러분들은 PC를 사용 해서 얼마나 반복적인 일들을 하시나요? 제가 회사에서 본 많은 분들은 반복적인 PC 작업을 하면서 해당 부분을 자동화 하려는 노력들을 잘 하지 않더군요. 저는 개인적으로 이런 부분들이 굉장히 답답하다고 생각하고 Autohotkey 와 같은 도구를 사용하여 반복 적인 작업들을 자동화 하는 것이 현대 사회의 경쟁력이라고 생각합니다. 제가 Autohotkey 를 사용한지는 거의 7~8년 정도 된 거 같네요. 지금은 Autohotkey 가 없으면 PC를사용하는게 싫다고 생각할 정도로 Autohotkey 를 좋아합니다.

요즘은 한가지 프로그램만을 사용하여 일을 하시는 분들은 별로 없을 거라고 생각을 합니다. 워드, 엑셀, 파워포인트 문서를 작성하면서 메모장을 사용하고 첨부할 그림을 수정하고 메일을 보내고 등등 한가지 작업을 하는데 다수의 프로그램들을 동시에 사용하는 경우가 많이 있습니다.

마이크로소프트 오피스 제품 한가지만 사용한다면 VBA 만 공부해서 사용하면 되겠지만, Windows 내의 다수의 프로그램을 복합적으로 사용한다면 VBA 만으로는 자동화를 하기가 힘듭니다. 이럴 때 유용하게 사용할 수 있는 윈도우 전용 스크립트 언어가 Autohotkey 입니다.

제 블로그를 방문 하시는 분들은 아시겠지만 저는 다음과 같이 오토핫키 와 관련된 포스팅을 종종 하고 있습니다.

http://iamaman.tistory.com/category/programming%20language/Autohotkey

그리고 거의 매일 오토핫키 업데이트 내역을 확인하는데 바로 어제 또 업데이트 됐더군요. 자주 업데이트가 되는 걸로 봐서 Autohotkey 프로젝트가 잘 관리가 되고 있는 것으로 보입니다.

https://autohotkey.com/download/

많은 분들이 오토핫키의 이미지 서치 기능을 사용하여 게임 매크로를 만드는데 사용하시는 걸로 보이는데~ 게임 자동화 이외에도 오토핫키는 정말 많은 것들을 할 수 있는 스크립트 언어입니다. 윈도우 사용시 하는 거의 대부분의 작업들을 자동화 할 수 있습니다.

저는 소프트웨어 개발자로 일하면서 제가 필요한 많은 툴들을 오토핫키를 사용하여 그때 그때 만들어서 사용하고 있고, 몇 년간 그렇게 하다 보니 생산성이 엄청나게 높아진 걸 느낄 수가 있습니다.

우리나라는 거의 대부분의 분들이 Windows 운영체제를 사용 하실 텐데 오토핫키를 적극적으로 사용해보시길 추천드립니다.



컴퓨터를 사용하다 보면 굉장히 다양한 불편한 점들이 있습니다. 이런 불편한 점들이 한 두 번에 그친다면 문제가 안되겠지만 반복적으로 일어난다면 문제가 될 것입니다. 오늘은 이러한 반복적인 불편함들을 오토핫키를 사용하여 해결하는 방법에 대해서 사례와 함께 소개해 보려 합니다.


저는 개인적으로 Synology NAS에 Git 서버를 설정한 후, 오토핫키 파일들을 Git을 사용하여 형상 관리를 하고 있습니다. Windows 에서 TortoiseGit 을 사용하고 있고 동기화를 하거나 커밋을 하는 경우 아래 그림과 같이 password 를 입력하라는 화면이 나옵니다.

TortoiseSVN 을 사용할 때는 password 를 쉽게 저장할 수 있었는데 TortoiseGit 사용하는 경우 암호를 저장하는 방법을 아직까지 잘 알지 못합니다. 그래서 임시방편으로 암호 입력창이 나오는 경우 오토핫키를 사용하여 자동으로 암호를 입력하도록 했습니다.


위 코드는 0.15 초마다 MonitorActiveWin Label 부분에 코드를 실행 시키는 Autohotkey 프로그램입니다. 코드를 보시면 아시겠지만 확인하는 시점에 TortoiseGit 암호입력창이 있으면 암호를 입력하고 Ok 버튼을 누르게 됩니다.

scite4autohotkey 설치시 같이 설치되는 ‘Active Window Info’ 와 같은 프로그램을 사용하여 내가 조작하고자 하는 컨트롤이 어떤 것인지를 확인할 수 있습니다. 위 코드에서는 Edit1 에 암호를 입력해 주고, Button1 버튼을 누른다는 것을 확인할 수 있습니다.


위 코드를 사용하기 위해서는 MyPassword 부분에 본인의 암호를 입력하고 실행하시면 됩니다.


추가적으로 위와 같이 무언가를 반복하는 코드는 컴퓨터가 시작하자마자 계속해서 실행 되도록 하는게 편리합니다. Windows 가 시작하자마자 프로그램이 실행되도록 하기 위하여 시작 프로그램 폴더(Windows 7 64 bit 기준)에 위의 Autohotkey 파일을 넣어두면 운영체제가 시작할 때마다 자동으로 실행이 되게 됩니다.


C:\Users\사용자계정\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup


컴퓨터는 현존하는 가장 발전된 형태의 반복 기계라는 걸 대부분의 분들은 아실 겁니다. 


저는 윈도우나 리눅스 등을 사용하는데 둘 다 명령어를 특정 시간 마다 반복하는 도구들이 있습니다. 


리눅스에서는 cron 이 있고 윈도우에서는 "예약 작업"이 있습니다. 


그 중에서 오늘은 윈도우 예약 작업에서 batch 파일을 최소화 상태로 실행하는 방법에 대해 소개하려 합니다. 


윈도우 버튼을 누르고 예약 이라고 치면 아래 그림과 같이 예약 작업이라는 프로그램이 검색 됩니다.

해당 프로그램을 실행하면 "작업 스케줄러" 라는 프로그램이 실행되며 정해진 시간에 주기적으로 예약 작업을 실핼 할 수 있죠. 


저는 주기적으로 실행하는 프로그램들은 batch 파일로 만들어서 해당 잡업을 예약 작업으로 실행하곤 합니다. 


그런데 예약 작업이 실행될때마다 batch 파일 화면이 보이게 되니까 불편한 감이 있더군요. 


그래서 batch 파일을 최소화 상태로 실행하는 방법을 찾아보니 아래 주소의 글이 나오더군요. 


https://www.computerhope.com/issues/ch000932.htm


Windows 작업 스케줄러에서 아래와 같이 설정하면 myfile.bat 파일을 최소화 된 상태로 실행하고 종료시 화면도 없어지게 할 수 있습니다. 


cmd.exe /c start /min myfile.bat ^& exit


실제 제가 설정해서 사용하는 모습은 다음과 같습니다.

실행한 프로그램/스크립트 부분에 아래와 같이 cmd.exe 를 설정하고 나머지 argument 들을 인수 추가 부분에 설정 합니다. 


이렇게 하면 배치 파일을 최소화된 상태로 주기적으로 실행하고 실행된 이후에는 자동으로 종료 되게 할 수 있습니다.



Windows 사용시 일반적인 텍스트 작업을 위한 에디터로 notepad++ 를 주로 사용하는데요~ 


notepad++ 는 사용법이 쉽기도 하고 플러그인 기능이 있어서 필요한 기능을 무한히 확장 할 수 있습니다.


저는 몇 가지 플러그인들을 사용하곤 하는데~ 오늘은 범용적인 plugin 중 Snippets 이라는 플러그인을 소개하려 합니다.


코딩 또는 텍스트 작업을 하다 보면 자주 사용하게 되는 코드 또는 글의 단위들이 있습니다. 


이런 단위들을 Snippets 이라고 합니다. 사전 검색을 해보면 "한 토막" 이라고 나올 겁니다.


이런 글의 토막들이 몇 줄 안된다면 상관 없지만 여러 줄 이고 조금 복잡하다면 외워서 사용하긴 불가능 하므로~ 글 토막들을 Snippets 으로 저장해 놓고 필요 할 때 마다 꺼내 쓴다면 편리 할 겁니다. 


Snippets 플러그인은 notepad++ Plugin Manager 에서 다음과 같이 간편하게 설치 할 수 있습니다.


저는 현재 Snippets 플러그인을 설치 했기 때문에 Installed 탭에 있지만 설치를 안하신 분들은 Available 탭에서 Snippets plugin 을 체크한 후에 설치하시면 됩니다.

설치를 하시면 다음과 같이 Snippets 아이콘과 메뉴가 생깁니다. 

다음으로 해당 아이콘을 누르거나 메뉴를 누르면 다음과 같은 Snippets 창이 뜨고~ 


해당 창에서 오른쪽 클릭을 해서 새로운 Snippets 을 만들거나 삽입하거나 지우거나 하는 Snippets 관리 작업을 할 수 있습니다.



요즘 크롤링에 관심을 갖게 되면서 PhantomJS 와 selenium 을 알게 되었습니다. 아~ 왜 이걸 이제 알았을까 하는 생각이 들 정도로 편리한 기능들이 엄청나게 많더군요. 

주간 메뉴를 다운로드 한다던가 등등 토렌트 파일을 자동으로 다운로드 받는다던가 등등 

반복적인 웹 작업들을 한번만 코딩 해 놓고 예약 작업에 설정해 놓고 주기적으로 돌리니 세상 편하더군요.

암튼 오늘은 Windows 환경에서 PhantomJS 를 다운로드 하고 설치하는 방법에 대해 소개하려 합니다. 

아래 주소에서 

http://phantomjs.org/download.html


다음과 같이 Windows 용 PhantomJS 를 다운로드 하고 사용하시는 적절한 폴더에 압축을 해제 합니다. 


다음으로 phantomjs-2.1.1-windows\bin 폴더의 전체 경로를 path 환경변수에 설정합니다. 

환경변수는 시스템 -> 고급 시스템 설정 -> 환경 변수 버튼 클릭을 통해 환경 변수 설정 창에 들어갈수 있습니다.

또는 아래 포스팅에서 소개했던 Rapid Environment Editor 와 같은 툴을 사용하면 편리하고~ 

http://iamaman.tistory.com/1213


이전에 자바 환경 변수를 설정할때도 소개 했지만 setx 명령어를 사용하면 정말 편리합니다. 저는 요즘 이 방법을 주로 사용 합니다.

http://iamaman.tistory.com/623


저의 경우 PhantomJS 의 bin 폴더의 경로는 다음과 같습니다. 

J:\utility\phantomjs-2.1.1-windows\bin


위에 주소를 환경 변수에 설정하기 위해 다음과 같이 명령어를 작성 합니다. 

setx path "J:\utility\phantomjs-2.1.1-windows\bin";"%path%" /m


이제 설정은 다 끝났습니다. 정상적으로 환경변수 설정이 됐는지 확인하려면 cmd 창에서 phantomjs.exe 라고 명령해 보면 아래 그림과 같이 PhantomJS 프롬프트가 실행되어야 합니다. 



Windows 환경에서 TensorFlow 설치를 위해 아래 공식 홈페이지와 
 

아래의 한글 페이지를 참조했다. 


Tensorflow 초기 버전에서는 Windows 에서 설치시 도커 이미지를 사용해서 설치하라고 했던것 같은데 요즘은 그냥 되나 보다.

위 페이지를 참조하여 아래와 같이 간단히 설치 할 수 있다. 


1. Anaconda  3 점대 최신 버전을 설치 한 후에(https://www.anaconda.com/download/)

2. Anaconda Prompt 를 실행시키고 아래 명령어를 통해 py35 라는 이름으로 Python 3.5 버전 환경을 설치한다. 해당 버전은 C:\Anaconda3\envs\py35 폴더에 설치 된다. Eclipse 등을 통해 코딩 할대는 해당 폴더에 있는 python.exe 파일을 interpreter 로 설정하면 된다. 

               conda create --no-shortcuts -n py35 python=3.5 anaconda

3. 아래 명령을 통해 py35 를 활성화 시킨 후에 

               activate py35

4. 아래 명령어를 통해 Tensorflow 를 설치한다. 

               pip install --ignore-installed --upgrade tensorflow
GPU 버전을 설치하고 싶다면 아래 명령어를 통해 설치한다. 
               pip install --ignore-installed --upgrade tensorflow-gpu
설치 메뉴얼을 확인해 보면 GPU 가 있더라도 일단 CPU 버전을 먼저 설치해 보라 추천한다.

5. ipython 실행한 후에 아래 명령어가 정상적으로 실행되면 Tensorflow 가 제대로 설치 된 것이다.

               import tensorflow as tf

ipython 에서 tf. 타이핑 후에 탭을 누르면 아래 그림과 같이 멤버 함수들의 리스트를 보여 줍니다.


위 페이지들 덕분에 생각보다 편하게 설치했네요.



Windows 사용시 CMD 의 경우 그 기능이 많이 미약한 듯 해서  CMD 창  대신에 아래 주소에서 소개 했었던 Clink 를 주로 사용합니다.


Command Window 에서 작업시 명령어 history 를 볼 수 있지만 지금까지 타이핑 했던 명령어들을 다 보고 싶거나 일부를 파일로 저장하고 싶은 경우가 있습니다. 

이럴때 Clink 에서는 아래 주소의 파일을 열어 보면 history 를 볼 수가 있습니다.

.\clink_0.4.4\profile\.history

Clink Default 셋팅에서는 Clink 종료시 history 가 한번 저장되게 되는데 계속 해서 저장하고 싶다면 

Clink 에서 다음과 같이 명령하고 Clink 를 재 실행하면 됩니다. 

clink set history_io 1

원래 대로 돌아오고 싶다면 다음과 같이 숫자 0 을 써 주고 재실행 하면 됩니다.

clink set history_io 0

clink  의 셋팅 파일은 아래 주소에 있는데 ~ 아래 셋팅파일에서  history_io 값을 변경해 줘도 됩니다. 

clink_0.4.4\profile\settings

위 내용 이외의 Clink  설정들은 아래 주소의 글을 확인해 보시기 바랍니다. 


저처럼 Clink 를 zip 파일 형태로 사용하지 않고 install 해서 사용하시는 분들은 아래 주소에 settings, .history 파일이 있을 겁니다. 

%LOCALAPPDATA%\clink



Python 사용시 jupyter 를 많이 사용하곤 하는데~

jupyter 를 사용하여 R, Julia 도 코딩 할 수 있더군요.

그래서 오늘은 Julia 를 jupyter notebook 에서 사용하기 위한 방법에 대해 알아보려 합니다.

일단 저 컴퓨터는 Windows 7 64 비트 이고 현재 anaconda 가 설치된 상태 입니다.

anaconda 를 설치하면 Python 과 함께 jupyter 가 설치 됩니다.

다음으로 아래 주소에서 julia 를 설치 합니다. 개발 OS 에 맞게 설치하시면 됩니다.


다음으로 jupyter 에서 julia 를 사용하기 위한 모듈인 IJulia 를 설치합니다. IJulia 설치 방법은 아래 주소 있더군요.


위 조수의 설치 방법 대로 julia 를 실행하고 아래 명령어를 타이핑 합니다.

Pkg.add("IJulia")

IJulia package 가 설치 완료 되면 아래 명령을 통해 IJulia 를 실행 할 수 있습니다.

using IJulia
notebook()

그런데 우리는 jupyter 를 사용할 것이므로 Windows Command Line 에서 jupyter notebook 이라는 명령어를 써 줍니다.


그럼 이렇게 브라우저가 뜨면서 jupyter가 실행 되고 Julia 를 선택 할 수 있습니다.


이런 설치가 부담 스러운 분들은 julia 홈페이지에서 소개하는대로 juliabox 를 사용 할 수도 있으니 참고하시기 바랍니다.


이제 간단하게 사용해 보죠~ 아래 주소에 julia 를 사용하여 그래프 그리는 예제들이 나와 있습니다.


아래 명령어를 통해 PyPlot package 를 설치하고~

Pkg.add("PyPlot") # Install a different backend

다음과 같이 코딩하고 Shift + Enter 를 눌러서 실행하면~

using Plots
plot(rand(5,5),linewidth=2,title="My Plot") # The same plotting command works

이런 결과가 나옵니다.



Windows 환경에서 간략하게 자동화를 하고 싶은 경우 저는 Powershell 보다는 batch 파일을 사용하곤 합니다.

batch 파일을 사용하다 보면 batch 파일 내에서 또 다른 batch 파일을 실행하고 싶은 경우가 있는데

이런 경우에는 call 이라는 키워드를 사용 합니다.

그냥 batch 파일 이름을 그대로 쓰면 현재의 스크립트는 더 이상 실행되지 않습니다.

아래 주소에 call 에 대해 이해하기 좋은 예가 있더군요.


Script-one.cmd 파일은 아래와 같고

REM --- Script-one.cmd ---
@echo off
echo Script one
call Script-two.cmd REM 또 다른 batch 파일 실행
echo Script one again
exit /b

Script-two.cmd 파일은 아래와 같은 경우

REM --- Script-two.cmd ---
@echo off
echo Script two
exit /b

Script-one.cmd 을 실행 시키면 중간에 Script-two.cmd 를 호출하게 됩니다.

그리고 Script-two.cmd 파일의 실행이 다 종료 되면 Script-one.cmd 의 나머지 부분들이 실행 됩니다.

결과는 다음과 같습니다.

>REM --- Script-one.cmd ---
Script one
Script two
Script one again



탐색기의 주소를 알고 싶은 경우 탐색기에서 ALT + D 를 누른 후에 주소 값을 복사 하면 됩니다. 

Autohotkey 로 탐색기의 주소를 알고 싶은 경우에도 위의 내용을 코딩해 주면 되겠죠. 


해당 내용은 아래와 같을 겁니다. 



send, !d
sleep, 1000
send ^c

그런데 클립보드를 사용하다 보면 이상하게 주소가 저장이 안 될 때가 있습니다. 

그래서 COM 을 사용해 보기로 했습니다. 

Autohotkey 에서 COM 을 사용하여 현재 열린 탐색기의 폴더 주소를 아는 방법은 아래와 같습니다.

#NoEnv
#SingleInstance force

#a::   ; Shortcut : WIN + A
hwnd := WinExist("A")
WinGetClass class, ahk_id %hwnd%

if (class="CabinetWClass" or class="ExploreWClass")
{

for window, in ComObjCreate("Shell.Application").Windows
{
try
{
if (window.hwnd==hwnd)
{
sel := window.LocationURL

sel := RegExReplace(sel,"file:///","")
foldername := RegExReplace(sel,"/","\")
foldername := RegExReplace(foldername,"%20"," ")

Clipboard:=foldername
MsgBox,,, % foldername,1

break
}
}
}
}
return

위 코드를 실행 시킨 후에 탐색기를 연 상태에서 WIN + A 를 누르면 아래와 같이 msgbox 가 1 초간 열렸다가 꺼지고 클립보드에 폴더의 주소가 저장 됩니다.




윈도우에서 리눅스 명령어를 사용하고 싶을때는 아래 포스팅에서 소개한 GOW 를 사용하거나~ Cygwin  등을 사용했었습니다. 



그런데 GOW 를 쓰다 보니 없는 명령어들이 좀 되더군요. 

그래서 최근에는 GnuWin32 를 사용합니다.

오늘은 GnuWin32 설치 방법에 대해 소개해 드리려 합니다.

     1. 일단 주소에서 GnuWin32 를 다운로드 합니다. 


다운로드 받은 GetGnuWin32-0.6.3.exe 파일을 실행하면 GetGnuWin32 폴더가 생성 되고~

     2. 해당 폴더 안에 들어가서 download.bat 파일을 더블클릭해서 실행 시킵니다.
         이건 시간이 좀 오래 걸리더군요. 그냥 명령어 실행 시켜 놓고 다른일 하시다 보면 끝납니다. 1~2시간 걸린거 같네요.

     3. 다음으로 아래 명령어를 통해 설치하고 싶은 폴더에 설치 합니다.

install D:\GnuWin32


     4. 마지막으로 path 환경 변수에 D:\GnuWin32 폴더를 등록하면 어떤 폴더에서던 GnuWin32 명령어를 사용 할 수 있습니다. 


정리하면 GnuWin32 다운로드 하고 압축을 푼 후에 설치 명령어는 아래와 같습니다.

cd /d .\GetGnuWin32
download.bat
install.bat  D:\GnuWin32
setx path "D:\GnuWin32\bin";%path% /m


+ Recent posts