이제는 윈도우에서도 리눅스에서도 별도의 프로그램을 설치하지 않아도 문서나 이미지를 PDF 문서로 제작할 수 있다. PDF 프린터 드라이버를 사용하는 방법이다. 일반 프로그램처럼 인쇄를 수행하면 프린터를 통해서 종이로 출력하는 것이 아니라 PDF 문서를 만들어주는 것이다. 자료를 전달하거나 배포하는 데 있어 PDF 파일만큼 유용한 것이 없다. 본 글에서는 리눅스(우분투)에서 PDF 프린터 드라이버 설치하고 사용하는 과정을 간단히 다루고자 한다. sudo apt-get install cups-pdf주의, 'cups-pdf' 대신에 'printer-driver-cups-pdf' 패키지를 선택합니다 ca-certificates-mono cli-common ledit libfile-readbackwards-pe..
가상 머신에서 리눅스를 설치하거나, USB 부팅이 가능한 환경이라면 본 포스팅은 해당 사항이 없다. 요즘 대부분의 리눅스에서는 USB 메모리를 부팅 가능하도록 만들어서 시스템을 설치하므로 USB 부팅이 가능한 시스템이라면 리눅스 배포판의 가이드에 따라 시스템을 설치하면 된다. 예전 같으면 CD-ROM으로 부팅해서 시스템을 설치하기도 했지만 이제는 CD도 CD 드라이버도 골동품이 되어 버렸다. 시스템의 BIOS 설정에서 USB 부팅을 할 수 없고 CD-ROM 부팅도 불가능 하지만 인터넷이 가능한 환경이라면 오프 소스 도구를 통해서 리눅스 시스템을 간편하게 설치할 수 있다. 도구의 이름은 UNetbootin이고 홈페이지 주소는 http://unetbootin.github.io/이며, 소스 코드는 https:..
"DNP3 프로토콜에 대한 고찰"을 통해서 DNP3 프로토콜을 살펴보고 실제로 DNP3 맛보기를 해볼까 한다. 실제 장비가 있으면 더 실감 나겠지만 테스트와 스터디를 위한 것이므로 실제 장비처럼 동작하는 시뮬레이터를 찾아보았다. 문제는 라이브러리는 많은데 의외로 라이선스가 개방적인 시뮬레이터 프로그램은 찾기 어려웠다. 그래도 차선으로 제한적인 라이선스이지만 Freyr SCADA에서 배포하고 있는 무료 시뮬레이터를 사용하기로 했다. https://sourceforge.net/projects/dnp3-source-code-library/files/에서는 시뮬레이터와 윈도우 및 리눅스 SDK까지 한 번에 받을 수도 있고, https://sourceforge.net/projects/dnp3-outstation-..
"무료 백넷 개발 도구 야베(YABE)와의 만남"에서 백넷 프로토콜의 매력과 함께 야베 도구의 매력을 함께 경험했다면 이번에는 소스 코드도 배포하고 있는 야베를 빌드해 보기로 했다. Addon 프로그램을 추가로 만들 수도 있고 필요한 수정이나 기능 추가도 가능하니 미리 코드를 빌드해 보고자 한다. MIT 라이선스이니 개발과 배포에 있어 상당히 자유로운 측면이 있다. 솔루션 빌드이전에 필요한 것은 일단 비주얼스튜디오이고 시스템에 .NET Framework 4.8 개발자팩이 설치되어 있는지 확인해야 한다. 없다면 https://dotnet.microsoft.com/ko-kr/download/visual-studio-sdks?cid=getdotnetsdk를 참조한다. 야베의 소스코드 리포지토리는 서브버전(Su..
백넷(BACnet, Building Automation and Control Network) 프로토콜을 공부하고 조사하는 과정에서("BACnet에 대한 고찰" 참조) 소스포지에서 설치 파일과 소스 코드를 배포하고 있는 야베(YABE, Yet Another Bacnet Explorer)라는 백넷 관련 도구를 만날 수 있었다. 백넷에 접속하여 다양한 장비 정보를 직접 확인할 수도 있지만 무엇보다 매력적인 것은 C# 기반으로 다양한 예제 프로그램과 데모 프로그램을 함께 배포하고 있다는 것이었다. 이런 매력 때문일까 소스포지에서도 상당히 인기 있는 프로그램에 해당한다. 프로젝트 주소는 https://sourceforge.net/projects/yetanotherbacnetexplorer/이다. 야베 프로젝트 페..
"모드버스(Modbus) 응용 개발을 위한 준비" 글에서 모드버스 프로토콜과 응용 개발 과정, 그리고 연관된 시뮬레이터 프로그램을 다루었는데 그중의 하나가 RMMS(Radzio! Modbus Master Simulator)라는 프로그램이다. 프로그램 다운로드는 앞선 글을 참조한다. 일반적인 개발자에게는 쓸모가 없을 수도 있다. 보통 모드버스 슬레이브 서버를 장착하는 PLC 장비나 기타 임베디드 장비를 개발하는 경우에 장비가 원활하게 모드버스 서비스를 제공하는지 확인하는 용도로 활용할 수 있다. 다른 용도는 스카다 시스템이나 HMI 개발자가 프로그램 개발 전후로 실제 PLC나 시스템과 모드버스로 데이터가 정상적으로 전달되는지 확인하는 도구로 활용할 수도 있다. 개발 중인 스카다 시스템이나 HMI와 다른 도..
모드버스 슬레이브(Slave) 시뮬레이터 mod_RSsim 사용하기를 간단하게 메모해 두고자 한다. 모드버스 프로토콜에 대한 소개와 mod_RSsim 다운로드는 "모드버스(Modbus) 응용 개발을 위한 준비"를 참조하면 된다. 모드버스 슬레이브(Slave)라는 것은 모드버스 마스터의 요청에 따라 데이터를 전달하거나 저장하는 서버의 역할을 하는 노드로 PLC와 같은 장비들이 주로 모드버스 슬레이브의 역할을 수행한다. 이러한 장비가 없는 경우 또는 실제 장비에 영향을 주지 않는 안전한 테스트가 필요한 경우에 모드버스 슬레이브 시뮬레이터를 사용할 수 있다. ■ MODBUS TCP로 가동하기 모드버스 TCP 모드로 시뮬레이터를 가동하려면 우측 상단 "Prot:" 항목의 콤보 박스를 "MODBUS TCP/IP"..
리눅스의 yum이나 aptget 명령처럼 윈도우 환경에서 간편하게 필요한 도구를 설치할 수 있도록 해주는 것이 스쿱이다.("스쿱으로 크로스플랫폼 도구들을 간단하게 설치하기" 참조) 이번에는 스쿱으로 그래프를 그릴 때 사용하는 유용한 도구인 dot을 설치해서 사용해 볼까 한다. Graphviz는 그래프를 SVG, PDF, PNG 등의 파일 형태로 만들어 주는 여러 도구를 패키지로 위의 그림처럼 "scoop install grapviz"로 설치할 수 있다. 사건의 발생 순서나 작업 순서, 위치 관계나 노드 관계 등을 분석하기 위하여 노드 간의 상호 관계에 대한 기초 자료를 수집했다면 이것을 그래프로 표현하는 것이 직관적이면서도 효과적인 분석을 위한 자료를 생성하는 것이라 할 수 있다. graph MyGrp ..
아파치 웹서버나 PHP, 7-Zip과 같은 대표적인 크로스 플랫폼 도구들은 많은 경우 리눅스/유닉스 시스템에서 개발이 시작되어 이후 윈도우나 맥 OS 등으로 확산되는 경우가 많다. 통상 포팅이라는 과정을 거쳐서 윈도우 운영체제에서도 수행할 수 있게 되지만 각 프로그램마다 별도로 배포하는 패키지들은 라이브러리 중복의 문제, 설치/제거 과정의 복잡함 등의 문제를 여전히 가지고 있다. 윈도우에서 리눅스/유닉스의 응용 프로그램을 사용하려는 시도는 Cygwin과 MSYS로 거슬러 올라가는데 스쿱(Scoop)도 그 연장선에 있다고 하겠다. 파이썬의 경우 파이썬으로 만들어진 패키지들은 나름의 리포지토리에서 편리하게 설치할 수 있고, 우분투와 레드헷 계열의 리눅스에서는 apt-get이나 yum 도구로 필요한 도구를 간..
C언어를 배우고 실무에 적용하던 무렵 대기업 전자 회사에서 운영체제를 담당하는 한 개발자를 만난 적 있었다. 기반 기술이 있고 경험도 많다고 자신 만만해하던 때였다. 어깨너머로 그의 작업 광경을 구경하는데 내 눈앞에 신기한 모습이 펼쳐졌다. 어찌 보면 가장 원시적이라 할 수 있는 vi 에디터로 프로그램에서 발생한 문제를 찾아 가는데, 이리저리 코드의 호출 그래프를 따라 움직이는 것이 환상적이었다. 뭔가 단축키를 누르는 것 같은데 그 원리는 도통 알 수 없었다. 그 사람을 붙들고 물어보니 CTags란 도구를 활용해서 프로그램을 분석하여 태그 정보를 만들어 놓으면 vi(엄밀히 말하면 vim) 에디터에서 해당 정보를 기반으로 함수나 변수가 정의된 곳으로 이동시켜주는 원리였다. 물론 비주얼 스튜디오나 이클립스를..
특정 폴더나 해당 폴더를 포함한 하위 폴더 전체를 검색해서 특정 문자열을 가진 파일과 그 위치를 찾아내는 것은 개발자뿐만 아니라 일반 사용자들에게 종종 발생하는 필요이다. 예를 들어 인기 있는 APM(Apache, PHP, MySQL) 패키지인 XAMPP에서 특정한 값을 조회하거나 설정하는 모든 파일을 찾고 싶은 경우이다. 소스 코드가 될 수도 있고 설정 파일일 수도 있지만 전체 파일을 뒤져서 해당 값을 가지고 있는 파일을 모두 찾고 각 파일 내 라인 위치를 알려준다면 너무도 작업이 쉬워질 것이다. 물론 검색 결과를 선택하면 바로 해당 파일을 조회나 편집할 수 있으면 금상첨화일 것이다. 바로 이런 기능을 수행할 수 있는 것이 노트패드++의 "파일에서 찾기" 기능이다. 물론 이런 기능을 전문적으로 수행하는..
우리가 구글이나 네이버 검색창에 단어나 문장을 입력하여 검색하면 각 포털의 검색 엔진은 입력한 텍스트를 포함하고 있는 자료들을 뒤져서 입력한 문장에 가장 근접한 자료들을 결과로 내놓습니다. 그렇지만, 검색이란 기본적으로는 텍스트를 찾는 것이기 때문에 이미지 속에 있는 글자를 검색하기에는 한계가 있습니다(일부에서 OCR 기술을 이용해서 검색에 활용하는 기술이 적용되고는 있습니다). 또한, 파일이 프로그램 제작사의 입맛에 따라 별도의 형식으로 저장되어 순수 텍스트 형태가 아닌 이진 파일 형태라면 검색은 더욱 어려워 집니다. 포털 검색을 사례로 든것은 검색이라는 것이 텍스트 기반이라는 전제를 설명하기 위한 것이고, 텍스트 검색 과정에서 텍스트 중간 중간에 특수 문자가 끼어 있는 이진 파일(PDF문서등) 문제와..
리눅스나 유닉스 환경에서 개발해본 경험이 있는 개발자라면 grep 툴을 vim, ctags와 같은 도구와 더불어 개발자에게는 없어서는 안될 필수 도구로 뽑는데 대부분 이의가 없을 것입니다. grep은 특정 텍스트 스트링이나 텍스트 조합 형태(정규식 적용 스트링)를 포함하고 있는 파일을 검색하기 위한 도구로 예를들어, 소스 코드에서 #define으로 시작하는 모든 행을 추출 한다거나,function function_name( ) 형태로 기술되어진 모든 함수 정의 문장을 추출한다거나,변수명 aaa를 사용하는 모든 소스 코드명을 추출하는 등의 용도에 grep 도구를 사용할 수 있습니다. 그런데, 윈도우 환경에서 grep을 사용하려면 윈도우 환경에서 리눅스 콘솔 명령을 그대로 사용할 수 있도록 해주는 cygwi..
특정 서버에 자동으로 파일을 업로드하거나 서버에 있는 파일을 자동으로 다운로드하는 하는 일을 해야 하는 경우가 있습니다. 그것도 매일 혹은 주기적으로 반복해서 하는 작업이라면 실행 명령 하나로 접속, 로그인, 파일전송, 연결 해제 과정을 일괄적으로 실행할 수 있다면 업무 효율은 더욱 높아질 수 있을 것입니다. 리눅스나 유닉스 환경은 워낙 스크립트를 활용한 작업이 일반화되어 있어서 간편하지만 윈도우 환경에서는 약간의 준비가 필요합니다. 서버가 단순 FTP 서버인 경우에는 윈도우의 내장 FTP 클라이언트를 사용하고 서버가 SSH를 통한 보안 연결만을 지원하는 경우에는 PSFTP를 사용하여 자동 파일 전송하기를 사용하면 됩니다. ■ 일반 FTP 서버가 일반적인 FTP 서비스를 제공하는 경우에는 윈도우 자체적으..
오늘은 앞서 소개 했던 7-zip("기업에서도 사용할 수 있는 압축 프로그램 7-Zip" 참조)을 좀 더 유용하게 사용하는 방법을 다루고자 합니다. 통상 압축 파일을 풀려면 해당 압축 파일을 풀수 있는 프로그램을 설치해야 하는데(WinRAR, 알집, 빵집, 반디집, 7-zip...), 이런 압축 프로그램을 설치하지 않은 사용자를 위해 사용할 수 있는 방법이 SFX(Self-Extracting Archives) 형태로 파일을 만들어 전달하는 것입니다. SFX는 실행 프로그램 형태이기 때문에 별도의 프로그램을 설치하지 않아도 프로그램을 실행만 하면 압축을 스스로 풀어 줍니다. SFX 형태로 파일을 전달하는 것은 압축 파일 수신자의 프로그램 설치 수고를 덜어 주려는 의도도 있지만. *.7z, *.egg 처럼 ..
KVM이란 단어는 커널 기반 가상 머신(Kernel-based Virtual Machine)이란 의미도 있지만 통상 KVM 이라는 단어는 키보드, 비디오, 마우스(Keyboard, Video, Mouse)를 의미하는 것으로 KVM 스위치라고 하면 위의 그림처럼 하나의 키보드, 비디오, 마우스로 여러대의 컴퓨터를 사용할 수 있도록 스위칭해주는 장비로 각 컴퓨터와 KVM 스위치는 실제 케이블로 연결하고 KVM 스위치에 키보드, 비디오, 마우스를 연결해서 사용하는 구조입니다. 여러 컴퓨터를 옮겨 다니며 작업해야 하는 불편함을 하드웨어를 통해서 해결한 것입니다. KVM 소프트웨어는 KVM 스위치의 기능을 소프트웨어적으로 해결한 것으로 네트워크에 연결되어 있는 컴퓨터들을 하나의 작업 공간인 것처럼 사용할 수 있도..
데이터베이스를 학습하거나 PHP 기반으로 웹 프로그래밍을 학습하는 사람에게 가장 간편하고 용량도 최소한으로 사용하는 방법을 추천한다면 저는 XAMPP를 추천합니다. 윈도우, 리눅스, 맥 모두 지원하고 필요에 따라 설치 버전을 사용할 수도 있고 단순 압축 버전을 사용할 수도 있기 때문입니다. 게다가 워드프레스, 미디어위키, 줌라등 다양한 오프소스 패키지를 가단하게 설치할 수 있도록 준비되어 있기 때문에 웹서비스를 준비하는 사람이라면 정말 간편하게 시스템을 구축할 수 있습니다. ■ XAMPP 소개APM은 웹서버인 아파치(Apache)와 PHP, 그리고 오픈소스 DBMS인 MySQL을 의미하는 것으로 통상 웹서비스를 위해서 함께 설치하기 때문에 APM을 한번에 설치하는 다양한 패키지들이 존재합니다. 그중에 X..
기업에서도 무료로 사용할 수 있는 FreeCAD를("오픈소스 CAD 프로그램 - FreeCAD, stp, step 파일 열기" 참조) 더욱 편리하게 사용하려면 기존에 많이 사용하는 상용 프로그램의 파일을 읽거나 해당 파일로 저장할 수 있는 기능을 보유하는 것입니다. FreeCAD는 설계 프로그램의 강자인 AutoCAD의 파일 형식인 *.dwg 파일을 *.dxf 파일을 경유해서 읽거나 거꾸로 *.dxf를 경유해서 AutoCAD(*.dwg)파일로 저장할 수 있습니다. 이 기능을 위해서는 *.dwg *.dxf 파일간의 변환을 수행하는 프로그램과 FreeCAD에서 *.dxf를 읽을 수 있도록 지원하는 파이썬 라이브러리 설치가 필요합니다. ■ 파일 변환 프로그램 설치우선 *.dwg *.dxf 파일간의 변환 프로그..
십여년전에 오토캐드로 정면도, 평면도, 측면도를 가지고 컴퓨터로 옮기는 연습을 했던 기억이 떠오릅니다. CAD 프로그램은 사실 기업에서 사용하는 것이 보통이고 업무 프로그램으로 사용하기 때문에 이름 있는 상용 프로그램을 구입하는 것이 보통입니다. 대부분의 설계 프로그램에서 3D 모델링을 지원하는 것은 보통이고요. 그렇지만 늘상 CAD를 사용하는 것이 아닌 다음에야 어쩌다 한두번 사용하는 프로그램을 구입하는 것도 부담이고 그렇다고 어둠의 프로그램을 찾는 것도 바이러스나 기타 문제로 꺼림칙한 것도 사실입니다. 이런 경우에는 설계 파일을 작성한 쪽에 설계 파일을 표준 설계 파일로 달라고 하면 굳이 상용 프로그램을 설치하지 않더라도 설계 파일을 조회하거나 활용할 수 있습니다. 오픈소스로 소스 코드를 공개하고 있..
아두이노이든 임베디드 리눅스 시스템이든 많은 경우 *.img의 시스템 이미지를 배포하거나 빌드한 경우 임베디드 시스템에 적용하기 위해서는 SD 또는 MicroSD에 옮겨서 부팅하는 것이 간편합니다. 윈도우에서 간편하게 SD카드에 임베디드 시스템 이미지를 적용하는 과정을 메모해 둡니다. 이 작업을 위해서는 우선 SD 카드 또는 마이크로 SD 카드를 읽을 수 있는 카드 리더가 있어야 합니다. 컴퓨터에 SD 카드 또는 마이크로 SD 리더기가 없는 경우에는 USB에 꽂을 수 있는 카드 리더를 하나 장만해야 합니다. 또하나 준비할 것은 SD카드에 시스템 이미지를 저장해 주는 도구를 준비해야 하는데 오픈 소스로 무료로 사용할 수 있는 "Win32 Disk Imager"를 다운로드 받습니다. https://sourc..
사물인터넷(IOT, Internet of Things)에 대한 기술과 다양한 응용이 폭증하고 있는 시대에 살고 있지만 RS-232, RS-422, RS-485등의 직렬 통신(Serial communication) 방법은 다양한 시스템의 기저에서 여전히 그 활용도가 높습니다. 요즘 나오는 노트북에는 직렬 포트를 없애고 USB로 대체하고 있지만 "COM1"으로 지칭하던 직렬포트는 USB to Serial 컨버터를 통해서 다양한 장치나 센서와의 정보 전달 방식으로 사용하고 있습니다. 개발자의 입장에서는 통신속도나 사용자 프로토콜만 맞추어 주면 동기 또는 비동기 방식으로 장치와의 통신이 어렵지 않지만 새로운 장치를 붙이는 작업을 하다보면 전송한 데이터가 제대로 가는지 확인할 방법이 그다지 녹록치 않습니다. 값비..
개인사용자가 무료로 사용할 수 있는 국산 백신 V3 Lite. 개인이 무료로 사용할 수 있다니 좋다! 라고만 생각했는데 의외로 시스템에 부담을 주는 부분도 상당하고 가끔은 광고도 봐야하고, 최근에는 인터넷뱅킹때 자동 설치되는 Ahnlab Safe Transaction의 StSess.exe란 프로그램은 노트북을 끌때마다 튀어 나와서는 종료를 막아서기도 합니다. 노트북이 XP에 구형이라 할말은 별로 없지만 그래도 아직 내가 필요한 일에는 그 쓸모를 충분히 하고 있으므로 내 수준에 맞게 다른 무료 백신을 설치해 볼까 합니다. 참고로 게임도 없고 성인 사이트에도 가지 않으므로 악성 코드의 감염 가능성이 적다는 개인적인 배경하에 진행하는 것이므로 무작정 따라하는 것은 권장하지 않습니다. 우선 설치되어 있는 Ahn..
잘 사용하던 노트북이 "삐이익" 소리를 내더니 갑자기 전원이 나가버렸다. 1년전에도 비슷한 상황이 있어서 일단 비상 대처 방법으로 "노트북 다운 대처법 - 팬컨트롤 요령"에서도 언급한 팬 빨리 돌리기로 온도를 내려 주었습니다. 그렇지만 이방법은 비상대처법일 뿐이고 노트북 다운 현상 원인인 CPU 온도 상승의 주범을 찾아 해결해야만 합니다. 작년에는 노트북 쿨러도 달고 "PresentationFontCache가 CPU를 잡아먹는 이상 현상 해소 방법"에서 언급한 불필요한 CPU 점유 원인을 해소해서 그나마 마음놓고 컴퓨터를 사용했는데 다시 이런 현상을 맞이하고 보니 컴퓨터 청소를 다시 한번 해야 겠구나 하는 생각이 듭니다. 컴퓨터 청소라는게 걸레질 한다기 보다는 사용하지 않거나 불필요한 프로그램들이 CPU..
서브버전이나 깃(git)과 같은 형상 관리 도구를 사용하는 과정에서도 주기적으로 가장 최신 버전의 코드를 특정 브랜치나 태그에 반영하거나 거꾸로 브랜치로 진행하던 프로젝트를 트렁크(Trunk)에 반영해야 하는 작업이 종종 발생합니다. 형상 관리 도구를 사용하지 않는 경우에도 마찬가지로 동일 제품의 발전 과정에서 버전이 다른 특정한 프로젝트에 최신 코드를 반영하려는 필요는 항상 있기 마련입니다. 이런 작업을 편리하게 진행 할 수 있도록 도와주는 도구가 바로 윈머지(Winmerge, "파일 비교와 병합을 위한 윈머지(WinMerge) 사용하기" 참조) 입니다. 동일한 폴더 아래에 있는 경우라면 탐색기에서 비교하려는 두 폴더를 동시에 선택하고 컨텍스트 메뉴를 통해서 윈머지를 선택하면 두 폴더를 자동 비교 합니..
컴퓨터로 게임을 하지 않는 사람들의 공통점을 하나 꼽으라면 컴퓨터 교환 주기가 매우 길다는 것입니다. 고장날 일도 별로 없고 업그레이드에 대한 필요성도 거의 느낄 일이 없는 편입니다. 그래서 이들이 사용하는 컴퓨터에 장착되어 있는 CD나 DVD는 언제 빛을 쪼여 보았는지 까마득 하다는 것이 비슷한 현상일 것입니다. CD나 DVD를 구동시키거나 CD/DVD를 넣거나 빼는데 사용하는 모터를 너무 오랜기간 사용하지 않다보니 어쩌다 한번 사용하려다 보면 잘 동작하지 않는 경우도 허다합니다. 심지어 CD/DVD가 PC의 장애 원인이 되어서 CD/DVD의 전원과 인터페이스를 빼놓고 사용하는 경우도 있습니다. 컴퓨터에 CD/DVD 드라이브가 없거나 미디어가 아닌 *.ISO와 같은 파일을 가상의 CD/DVD로 구동시키..
귀챠니즘 때문에 또 한가지를 배운 오늘입니다. 집에 컴퓨터가 여러대 이다보니 아이들이 무언가를 물어보고 싶을 경우에는 이방 저방으로 출장 아닌 출장을 다녀야 하는 경우가 있습니다. 질문이 있으면 관련 내용을 들고 오면 될일이지만 컴퓨터 문제인 경우에는 어쩔수 없이 불려 가야 하기 때문에 간만에 집중해서 글이라도 쓰고 있을 때는 나도 모르게 짜증이 나는 경우도 있습니다. 그래서 생각해낸 것이 원격 데스크톱으로 내 컴퓨터에서 아이들 컴퓨터를 보면서 도와주면 좋겠다 싶어 컴퓨터의 아이피 주소를 알아서 오라고 했는데 막상 들어가려니 않되는 겁니다.원격에서 들어갈 대상 컴퓨터에 가서 "원격설정" 찾아보니 위의 그림에 있는 "원격 데스톱" 설정 항목 자체가 없는 것입니다. 이건 뭐야!하면서 검색해보니 원인은 윈도우..
윈도우 프로그램을 제작할 때는 많은 경우 비주얼스튜디오를 사용하거나 일부 개발자는 이클립스의 CDT 환경이나 RCP 환경을 사용하기도 합니다. 그런데, 동일한 소스코드를 가지고 윈도우 뿐만아니라 리눅스와 맥에서도 수행되는 크로스플랫폼 응용을 제작하는 경우 일부 오픈소스프로젝트들은 MinGW 환경을 사용하고 있습니다. 이번 글은 윈도우 환경에서 리눅스 명령을 사용할 수 있도록 해주는 MSys와 윈도우 응용 프로그램을 빌드하는 MinGW를 설치하고 프로젝트 빌드 과정에서 필요로 하는 다양한 라이브러리나 도구를 손쉽게 설치할 수 있도록 하는 mingw-get 도구를 설치하는 것까지 다루고자 합니다. GUI를 사용하는 크로스플랫폼 응용들은 통상 wxWidgets, QT, GTK등의 라이브러리를 사용하므로 이들 ..
윈도우나 리눅스에서 화면 캡처 키는 [Print Screen] 또는 [Prt sc]키를 사용합니다. [Print Screen]키를 누르면 현재 화면 전체를 이미지로 만들어서 클립보드에 저장해 줍니다. 클립보드에 이미지가 있기 때문에 워드같은 오피스 프로그램이나 페이트 닷넷("가볍고 빠른 이미지 편집툴 페인트닷넷" 참조) 같은 이미지 편집기에 그냥 붙여넣기 해서 간편하게 화면 캡처를 활용할 수 있습니다. Alt+[Print Screen]키를 누르면 화면 전체가 아니라 현재 창 만을 캡처 할 수 도 있습니다. 대부분의 화면 캡처는 이 정도만 있어도 문제가 없는데 시스템의 기본 캡처 기능으로는 현재의 마우스 포인터의 모양은 캡처가 되지 않는 단점이 있습니다. 물론 화면 동작도 캡처가 되지는 않습니다.그래서, ..
통상 프린터는 인쇄 용지에 텍스트나 그림을 출력하는 장비를 의미합니다. 요즘은 복합기를 많이 사용하다보니 프린터 한대로 인쇄도 하고 스캐너 기능도 제공할 뿐만아니라 두가지를 융합시켜 간단한 복사기 역할도 수행합니다. 모뎀을 장착해서 팩스 송수신도 가능합니다. 프린터와 컴퓨터간의 연결(인터페이스) 또한 예전같으면 병렬 포트나 직렬 포트가 전부 였지만 USB를 거쳐서 요즘은 유선/무선 랜을 통해서 프린터를 하나의 컴퓨터로 인식해서 사용할 수 있는 시대입니다. 이에 반해 가상 프린터(Virtual printer), 이미지 프린터(Image printer) 혹은 PDF 프린터는 장비의 실체, 즉 하드웨어가 존재하지 않는 프린터를 말합니다. 사용자가 이런 프린터로 인쇄를 하면 인쇄 용지에 출력하지 않고 이미지 파..
티스토리도 그렇지만 웹 포스팅 과정에서 사진 용량 제한으로 업로드가 않되는 경우를 만나면 사진 파일의 크기를 줄이면 되는 간단한 작업이지만, 자주하지 않는 작업이기 때문에 도구를 찾기도 귀챦고 짜증날 경우가 있습니다. 그래서, 포토샵의 일괄 변환(Batch conversion) 기능을 사용하거나 다양한 무료 프로그램을 사용해도 되지만 오픈 소스 도구가 있는지 찾아보았습니다. https://sourceforge.net/projects/s-photo/sPhoto라는 프로그램으로 위의 링크를 통해서 다운로드 받을 수 있습니다. GPL 2라이선스로 기업에서 사용해도 무방합니다. 소스 코드를 공개하고 있는 프로젝트로 최근까지 업데이트하고 있지만 개발자 입장에서는 아직 더 수정할 것이 있는지 파일명에 베타를 붙여 ..