2013년 30회 대회부터 정보 올림피아드 대회의 본선 개발 환경이 기존 비주얼스튜디오를 가지고 Visual C++ 이나 Visual Basic을 사용하던 것에서 혁명적인 변화가 있었습니다. 윈도우-비주얼스튜디오 환경에서 리눅스-이클립스 환경으로 Gnu C 컴파일러를 사용하는 것입니다. 리눅스를(우분투 12.04) 설치하고 개발 환경을 준비할 수도 있겠으나 필자는 이미 시스템이 준비되어 있는 가상 머신 이미지를 다운로드 받아 이후 환경을 설치했습니다. 가상 머신 종류가 여러개 있으나 오라클의 VirtualBox로 진행했습니다. 크기도 작고 좋았습니다. 우분투 12.04 이미지는 VirtualBox 사이트와 다른 여러곳에서 다운로드 받을 수 있습니다. 대표적인 링크로는 http://sourceforge.n..
하나의 VB .Net 프로그램이 동작하기 위해서 작은 규모의 프로그램이라면 프로그램 하나만으로도 충분하지만 화면을 여러개 만드는 경우 각 화면 마다 디자인 파일과 프로그램이 생기므로 여러개의 프로그램이 하나의 실행 프로그램을 구성합니다. 이렇게 여러 프로그램이 모여 하나의 구성 단위를 이룬 것을 프로젝트(Project)라 합니다. 그리고 하나 이상의 프로젝트가 모여서 솔루션(Solution)을 구성합니다. Express 버전에서는 하나의 솔루션에 한개의 프로젝트만 둘수 있도록 한 모양입니다만 아무튼 *.vb 프로그램이 모여서 프로젝트를(*.vbproj) 구성하고 프로젝트들이 모여서 *.sln이라는 솔루션을 구성합니다. 위의 그림은 비주얼 스튜디오 내부의 솔루션 탐색기를 본 모습으로 두개의 VB프로그램과 ..
컴퓨터 프로그램의 생성부터 실제 실행까지의 과정을 이해하는 것은 프로그래밍 세계의 기본기를 다져가며 성장할 수 있는 아주 중요한 단계입니다. 지금 다루고 있는 주제는 Visual Basic이지만 프로그래밍 언어는 CPU(중앙처리장치로 스마트폰등에 많이 사용하는 ARM부터 MIPS, PowerPC, 인텔 Atom, Celeron, Pentium등 다양한 CPU들이 존재합니다)가 이해할 수 있는 기계어(Machine Language)로 만들어지기 위한 첫번째 단계입니다. 복잡한 회로로 이루어진 CPU가 알아들을 수 있는 언어를 만든다니 쉽게 이해 할 수 없지만 아무튼 사람이 원하는 대로 기계를 동작키 위한 첫 단계가 비주얼 베이직과 같은 프로그래밍 언어입니다. VB외에도 C언어, Python, C#, Jav..
윈도우와 웹 브라우저 기반의 프로그램이 대부분인 현실에서 창도 없도 시커먼 도스 창 환경에 동작하는 콘솔 응용 프로그램이 무슨 소용이 있냐고 반문할지 모르겠지만 콘솔 응용 프로그램은 백 그라운드에서만 동작하는 프로그램을 작성하거나 간단한 유틸리티 성격의 도구를 만드는데 유용할 뿐만아니라, VB .Net 언어를 습득하기 위한 빠른 방법이기도 합니다. 윈도우 폼 응용이나 웹 응용과 달리 디자인 과정이 필요없고 코드만 작성하면 됩니다. 입출력은 오로지 문자(텍스트) 기반으로만 합니다. 시작 페이지>새 프로젝트 또는 파일> 새 프로젝트로 프로젝트 템플릿 창을 열고 콘솔 응용 프로그램을 선택한 다음 프로젝트 이름을 적절하게 입력합니다. 디자인이 필요없으므로 다음의 그림과 같이 코드 창이 나오는데 이상태에서 코드를..
워드에서도 웹 브라우저에서도 "찾기"하면 떠오르는 핫키는 Ctrl+F입니다. MS사 계열 프로그램들은 Ctrl+H 핫키는 바꾸기(치환)으로 많이 사용하는 편이죠. 그런데, 이클립스에서는 약간의 차이가 있습니다. 파일 내에서 찾기/바꾸기(Ctrl+F)지금 편집하고 있는 파일에서 검색하는 기능입니다. Shift키로 선택한 범위에서만 검색하고 싶을 때는 Scope를 "Selected lines"로 선택하면 됩니다. 단어를 찾아 바꾸기 할때는 "Replace with"에 값을 넣고 [Replace]로 찾기/바꾸기를 하나씩 해도 되고, [Replace All]로 한번에 일괄로 바꿀 수도 있습니다.검색 창을 닫은 다음에 다른 항목을 찾고 싶을 때는 Ctrl+K, 거꾸로 위로 찾아 갈때는 Ctrl+Shift+K를 누..
자바 개발 환경으로 대표적인 이클립스를 언급한다면 그 다음으로 언급되는 것이 Ant와 Maven일 것입니다. 프로젝트 관리 도구로 프로젝트 빌드라는 핵심적인 기능에서 Ant와 Maven이 유사하지만 큰 차이점이라면 Ant는 제약이 적어 개발자가 나름대로 자유롭게 설정할 수 있다는 특성이 있지만(XML 형태로 빌드 과정 기술, 예 build.xml) Maven은 지정된 규칙이 있어 규칙에 맞도록 코드를 작성해야 하지만 규칙대로 작성해 놓으면 Maven이 이후 모든 과정을 자동적으로 진행하여 빌드 과정 기술을 최소화 할 수 있는 특성이 있습니다. Maven은 pom.xml에 빌드 과정을 기술하기 때문에 폴더에 pom.xml이 있다면 이 프로젝트는 Maven을 사용했구나 라고 생각하고 pom.xml의 내용을 ..
BPMS(Business Process Management System)이 등장한 지 꽤 오랜 시간이 흘렀지만 기존 프레임워크에 의존적인 개발자와 사용자의 인식 때문인지, 아니면 새로운 패러다임에 대한 인식 부족인지 BPM 도구의 활성화는 아직인듯 합니다. 한국의 경우에도 오래전에 이미 uEngine이란 회사가 오픈소스로 내놓았지만 파급력에 대해서는 의문입니다. 최근에 이클립스를 새롭게 설치하다가 우연히 Bonita BPM을 만나게 되었습니다.포털 및 모바일 능력과 확장성, 다양한 데이터베이스 지원 등 주목할 점이 많았지만 아직 한글은 지원하지 않더군요.이번 포스팅은 그런 가능성을 염두에 두고 설치 과정과 간단한 맛보기를 다룰까 합니다. 사전 준비는 Java VM만 있으면 됩니다.(JRE도 무난 합니다)..
예전 같으면 DIVX 플레이어나 DVD 플레이어에서 돌려보았던 동영상을 최근에는 스마트폰, 태블릿, 포터블 프로젝터 등 그 한계를 정의할 수 없을 정도로 넓어지고 다양해 지고 있습니다. 그런데, 일부 기기의 경우에는 지원하는 코덱의(Codec)의 한계 때문에 영상은 나오는데 음성이 들리지 않거나, 음성은 나오는데 영상은 먹통인 경우를 종종 만나기도 합니다. 어렵게 구한 동영상인데 ...... PC에서는 볼수 있지만 모바일 기기나 프로젝터에서는 볼수 없는 안타까운 상황이죠. 이런 경우 VLC 미디어 플레이어의 파일 변환 기능을 사용하면 매우 편리하게 파일을 조정할 수 있습니다. 두가지 형태로 사용할 수 있습니다.(https://wiki.videolan.org/How_to_Batch_Encode/ 참조) 탐..
"웹 응용 프로그램을 만든다"라고 생각하면 ASP, PHP, JSP와 같은 서버 측 스크립트와 HTML, 자바스크립트와 같은 클라이언트 스크립트를 동원하고 아파치나 IIS와 같은 웹서버를 통해서 복잡하게 개발해야 한다고 생각했었는데, 이런 복잡한 과정을 비주얼스튜디오에서 윈도우 폼 응용을 개발하는 것 처럼 손쉽게 만들 수 있도록 한 것이 "WPF 브라우저 응용"입니다. 첫 WPF 브라우저 응용 만들기WPF(Windows Presentation Foundation)는 닷넷 프레임워크 3.0부터 채용된 시스템으로 XML기반의 언어인 XAML(Extensible Application Markup Language)를 이용해서 표현하는 다양한 수준의 사용자 인터페이스 표현을 담당하는 그래픽 기반 시스템입니다. W..
동영상 플레이어 또는 미디어 플레이어 하면 떠오르는 이름들이 있습니다. 예전에 MP3 플레이어로 사용하던 Winamp부터 곰 플레이어, 여러 포털에서 제공하는 플레이어, 윈도우의 미디어 플레이어까지 종류도 다양할 뿐만아니라 코덱(Codec) 유무에 따라 어떤 것은 플레이가 되고 어떤것은 열수 없어 코덱을 찾아 설치해야 하는 등 사람마다 참 사연을 많이도 만들어 주었던 도구가 아닐까 싶습니다. 이런 혼란이 생긴 근본적인 원인을 따라가 보면 음성 또는 영상 미디어 파일의 압축 기술과 깊은 연관이 있습니다. 일반적인 파일 압축의(*.zip 등) 경우에는 원본을 100% 복원하는 무손실 압축 기법을 사용하지만 음성이나 영상의 경우에는 원본에 얼마나 가까운 품질을 유지하는 가에 따라 파일을 크기와 실행 속도에 영..
깊은 새벽 조용히 내린 눈이 세상을 뒤덮은 겨울 아침의 들판은 황량해 보일 수도 있지만 가슴을 넓게 열어 힘차게 새로운 도전을 하는 여행자의 걸음 처럼 하루의 시작을 위해 마음을 추스르게 합니다. 도시에서는 눈 길이 지저분하고 출근길 짜증의 원천 이었는데, 하얀 들판과 함께 출근하는 농촌의 아침은 눈길 마저 아이처럼 설레게 합니다. 붉은 물감을 들판에 뿌리는 태양은 차마 이 찬란한 광경을 그대로 카메라에 담지 못하는 이의 심정을 보듬기라도 하듯 제 갈길을 갑니다.
"압축 프로그램"은 말 그대로 큰 크기의 파일을 작은 크기로 줄여주거나, 여러개의 파일이나 폴더를 하나의 파일로 압축과 동시에 하나의 파일로 묶어 주는 역할을 하는 프로그램입니다. 요즘 세대에서 컴퓨터를 접하는 사람들은 구경도 못한 플로피 디스크 또는 디스켓을 사용 시기에는 디스켓 한장에 들어갈 수 있는 데이터 용량이 5.25인치 디스크는 1.2MB, 3.5인치 디스크는 1.44MB 이었으니 왠만한 게임이나 프로그램을 설치하고 싶다면 용량을 줄여주는 압축 프로그램은 거의 필수였다고 할 수 있습니다. CD와 DVD, USB가 널리 쓰이기 전까지는(1980년대 중반부터 1990년대 까지) 플로피 디스크와 압축 프로그램은 컴퓨터 사용자에게는 필수 아이템이었습니다. 5.25인치 디스켓3.5인치 디스켓 5.25인..
VB.Net 응용 프로그램을 만들기에 앞서 어떤 형태의 프로그램을 만들것인지를 결정해야 합니다. 결혼식을 진행하는 스태프를 보더라도 사람들 앞에서 사회를 보는 사람도 있지만 사람들에게 노출되지 않으면서 방송실에서 각종 장비를 다루며 원활한 예식 진행을 돕는 사람도 있고 오로지 반주만 한다던가 신부 드레스만 잡아 주는 역할만 수행하는 사람도 있는 것처럼 프로그램도 일반적인 프로그램 처럼 사용자에게 윈도우 형태로 보이는 윈도우 폼 응용(Windows Forms), 예전의 도스(DOS) 프로그램 처럼 커맨드 라인 입출력 형태로 동작하는 콘솔 응용(Console)과 함께 여러 프로그램의 부품처럼 활용할 수 있는 *.DLL을 생성하는 클래스 라이브러리 형태로 만들어 질 수 있습니다. WPF(Windows Pres..
압축 프로그램은 컴퓨터에 익숙치 않은 사용자도 컴퓨터를 만지고 얼마되지 않아 다루게 되는, 많은 사람이 애용하는 프로그램입니다. 그런데, 알집을 비롯한 우리에게 익숙한 여러 프로그램들이 개인적인 용도로는 문제가 없지만 기업이나 기타 기관에서 사용하기 위해서는 비용을 지불해야 한다는 것에는 익숙치 않습니다. 또한, Windows7 등의 탐색기에는 기본적으로 압축 기능을 제공하고 있다는 점도 지나치고 있는 것이 현실입니다. 개인적으로 익숙한 것을 회사에서도 쓰고 싶고..... 친구들에게도 알리고 싶고.... 좋은 마케팅 소재이기는 한데 무료로 사용할 수 있는 좋은 도구가 있으니 소개할까 합니다. 무료에다가 프로그램의 소스까지 공개하고 있으니 프로그래밍에 관심이 있고 해당 프로그램이 사용하는 기술을 나도 사용..
Visual Basic과 Visual Basic.Net은 다른 것일까? 결론부터 말하면 다른 언어라고 할 수 있습니다. 비주얼베이직이 1991년 VB 1.0으로 발표되던 시점으로 돌아가 보면 한창 인기 운영체제로 사용하던 MS-DOS 체계에서 1990년 Windows 3.0과 후속으로 Windows 3.1이 발표 되고 인기를 얻으면서 GUI 기반의 응용 프로그램을 복잡하고 힘들게 만들었다면 VB 1.0은 프로그래머에게 윈도우 프로그램을 쉽게 제작할 수 있는 기회를 제공하였습니다. 이후에 VBX(Visual Basic eXtension)를 통해서 VB에 다양성과 확장성을 부여하게 되었고 VB 3.0에서는 DAO(Data Access Objects)를 통해 데이터베이스에 접근할 수 있도록 하면서 단순하고 소..