ZeroAOS 전략개발을 위한 환경설정 1

1.
Linux는 단점이라고 생각한 부분이 장점으로 바뀌면서 성장에 성장을 하는 OS입니다. X.86계열의 CPU와 궁합을 맞추면서 영향력을 확대하고 있습니다. 그런데 이 Linux가 ZeroAOS에게는 약점입니다. 현재 ZeroAOS는 Linux만 지원하기 때문에 윈도우에 익숙한 트레이더들이 불편할 수 있습니다. 전략을 개발할 때도 익수한 VB, C# 가 아니라 C를 사용하여야 합니다.? 왕도가 없습니다. 익숙해지고 친하도록 노력하는 것외에 방법이 없습니다. 그래서 윈도우 환경에서 리눅스를 가지고 놀 수 있는 방법을 소개하고자 합니다. 약간 IT에 관심을 가진 분이라면 다 아는 이야기입니다.

가상화라는 말이 있습니다. 하드웨어나 네트워크 등을 나누어 사용하도록 해주는 기능을 말합니다. 예를 들어 Windows 7이 설치되어 있는 데스크탑이 있다고 가정하죠. 그동안 한 대의 데스크탑에서 리눅스를 쓰려면 방법이 몇 없었습니다. 데스크탑을 한대 더 마련하든가 사용중인 데스크탑을 듀얼부팅이 가능하도록 바꾸어야 했습니다. 돈이 들고 불편하였습니다. 이를 간단히 해결하는 방법이 가상화입니다.

가상화를 하려면 현재 사용중인 데스크탑의 CPU나 메모리가 넉넉하여야 합니다. 물론 리눅스를 개발용으로 사용하기 때문에 많은 자원이 필요하지 않습니다. 최근에 나온 듀얼코어 이상이고 메모리가 1기가만 넘으면 가능합니다

이제 가상화를 위한 첫단계를 시작하죠. 준비물은 가상화를 도와주는 프로그램을 설치하는 일입니다. 여러가지 프로그램이 있습니다. 그 중에서 상용소프트웨어 말고 오픈소스를 이용합니다. 기술 지원이 없어 불편하지만 노력하면 이 또한 다 해결할 수 있는 일입니다. 가장 많이 사용하는 제품은 VirtualBox입니다.

Virtual Box 다운로드

보통 데스크탑의 OS가 윈도우이므로 VirtualBox for Windows hosts를 선택합니다. 이제 exe파일을 실행합니다.

VirtualBox 사용 방법 #1 : 프로그램 설치와 기본 설정 방법
VirtualBox 사용 방법 #2 : Windows 운영체제 설치 방법
VirtualBox 사용 방법 #3 : 가상 머신 설정과 폴더 공유 방법
VirtualBox 사용 방법 #4 : 이동식 미디어 장치 연결 및 확장팩 설치 방법
VirtualBox 사용 방법 #5 : 가상 하드 디스크 추가 방법

설치가 끝났으면 이제 리눅스를 설치할 차례입니다. 위의 URL을 윈도우 설치방법을 소개하여 리눅스설치를 따로 소개합니다. 설치를 제외한 나머지 VritualBox사용법은 같습니다.

2.
리눅스는 처음 리누스 토발즈가 시작하였습니다. 이후 진화에 진화를 거듭하였습니다. 오픈소스이기때문에 세계 각국의 프로그래머들이 참여하여 협력 개발을 하고 있습니다. 리눅스라고 하더라도 다양한 배포판이 존재합니다.? Ubuntu, Redhat, SUSE등은 회사가 배포하는 리눅스입니다. 반면 Fedora, Centos등은 커뮤너티에서 배포하는 리눅스입니다. 보통 기업은 회사가 배포하는 리눅스를 사용합니다. 기술지원을 하기 때문입니다. 국내는 RedHat을 많이 사용합니다. CentOS는 RHEL(RedHat Enterprise Linux)의 복제품입니다. 모든 기능이나 패키지는 똑같지만 이름만 틀립니다. Fedora는 레드햇이 RHEL을 유료화하면서? 만든 무료 배포판입니다.

ZeroAOS는 CentOS 최신판 64bit를 권장합니다. CentOS를 받을 수 있는 곳은 많지만 국내 배포처중 하나인 다음에서 받으면 좋습니다. 아래는 ISO이미지로 받아서 DVD를 구울 수 있는 파일입니다.

CentOS 6.2 64bit 내려받기

이제 CentOS를 설치할 차례입니다. 앞서 소개한 자료중 윈도우설치와 동일합니다. 다만 리눅스를 설치해본 경험이 없는 분들을 위하여 간단히 소개합니다.


처음 가상머신을 설정하는 화면입니다. 이후 기본설정을 마치면 가상머신이 생깁니다. 여기서 설정을 선태하고 IDE 컨트롤러중 +표시가 된 CD/DVD 추가를 선택합니다. 앞서 받았던 ISO파일을 등록하여 가상드라이브를 만들기 위합니다. 앞서 ISO파일로 만들어진 가상드라이브로 부팅을 하고? OS를 설치합니다.


부팅을 하면 아래의 화면이 나옵니다. 처음 설치하시니까 맨 위의 메뉴를 선택합니다. 이후 GUI화면이 나오고 화면에 나오는 대로 원하는 것을 선택합니다.

최총적으로 어떤 환경으로 패키지를 설치할 것인지를 선택하는 화면입니다. GUI를 사용하시는 편이 좋기 때문에 Desktop을 선택하시면 큰 무리가 없습니다. 혹 원하는 패키지를 선택하시려면 맨 아래 ‘Customize now’를 선택하면 바로 패키지선택을 할 수 있습니다.

이상의 과정을 마치면 가상머신에 게스트OS 설치가 끝납니다. 설치중 지정한 ID와 패스워드를 이용하여 로그인을 하면 윈도우와는 좀 다른 Gnome으로 구성한 화면을 만날 수 있습니다.

좀 생소하다고 생각할지 모르지만 찬찬히 하나씩 살펴보면 윈도우와 큰 차이가 없습니다. 다만 GUI를 만드는 철학이 다르기 때문에 다른 모양으로 사용자와 만날 뿐입니다. Mac OS와 윈도우가 다른 것과 비슷합니다.

VirtualBox를 이용할 때 가장 많이 헷갈리는 것은 마우스입니다. 예전에는 Virtualbox에서 마우스를 사용하면 다시 HOST로 돌아올 때 복잡한 짓을 해야 했지만 지금은 Guest와 Host구별없이 마우스를 사용할 수 있습니다. 혹 문제가 있다만 ALT키를 누르시면 됩니다.

3.
이제 OS설치까지 마쳤습니다. 다음은 개발환경을 구성하는 일입니다. 개발을 위한 기본적인 도구는 앞서 CentOS를 설치할 때 자동으로 깔렸습니다. 가장 많이 사용하는 GNU Complier를 비롯한 많은 도구들을 무료로 만날 수 있습니다.? 만약 개발을 위한 입력도구로 vi와 같은 Text Editor를 사용한다면 더이상 할 일이 없습니다. 그렇지만 Visual Studio와 같은 IDE에 익숙한 분들이면 어떻게 시작해야 할지 무척이나 당황스러울 겁니다. CentOS와 같은 리눅스에서 사용할 수 있는 IDE는 여러가지 있지만 그중 Eclipse를 가장 많이 사용합니다. vi 대신 Eclipse로 개발환경을 구축하고자 하는 분을 위하여 Eclipse를 설치하는 방법을 소개합니다.

가장 손쉬운 방법은 앞서 Customize now에서 Eclipse라는 대분류메뉴를 선택하고 관련된 패키지를 선택합니 다. 저는 CDT, Mylan등을 선택하였습니다. 그런데 설치를 해놓고 보니 Helios입니다. 2010년에 릴리즈한 버전입니다. 덧붙여 CDT플러그인이 동작을 하지 않더군요. 그래서 과감히 삭제하고 수작업으로 설치하였습니다.
우선 Eclipse Download에서 가장 최근 릴리즈된 파일을 받습니다. 최근은 Indigo입니다. 선택은 여러가지입니다만 C/C++로만 사용할 경우에는 Eclipse IDE for C/C++ Developers (includes Incubating components) 64bit를 다운로드합니다.

윈도우7이후 프로그램을 설치할 때 관리자권한을 요청받은 경험이 있습니다. 리눅스도 비슷합니다. 프로그램을 설치하고자 할 경우 대부분 root권한이 필요로 합니다. 이럴 때 사용하는 명령어가 su 혹은 sudo입니다.

라고 하면 이후 어떤 작업을 하더라도 root권한으로 합니다.이제 앞서 다운받은 파일을 원하는 디렉토리에 풀고 어떤 디렉토리에서도 실행할 수 있도록 환경을 만듭니다.

그리고 아래의 내용을 입력하고 저장을 합니다.

이상까지 하면 아래와 같이 명령어를 입력하면 Eclipse를 실행할 수 있습니다.

그렇지만 GUI에 익숙하면 귀찮습니다. 그래서 Gnome에 메뉴를 등록하여 아이콘을 클릭하면 실행할 수 있는 환경을 만들어 보도록 하죠. Gnome desktop launcher라고 합니다. 우선 아래의 파일을 만듭니다.

위의 파일을 vi로 열어서 아래 내용을 복사하여 입력한 후 저장을 합니다.

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse SDK 3.7.1
Exec=eclipse
Icon=/opt/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=GNOME;Application;Development;
StartupNotify=true

이제 Application>Development>Eclipse를 선택하여 Eclipse를 실행합니다. 실행한 후 우측 상단을 보면 C/C++ Perspective가 기본값입니다. 정상적으로 설치되었습니다.

이제 Windows>Preferences에서 자신이 맞도록 환경설정을 합니다. 아래는 Keys입력을 Visual Studio에 적합하도록 하는 설정입니다.

이제 개발의 맛만 볼까요? 어제 소개한 sockperf를 import하여 프로젝트를 생성해 보았습니다. File>Import를 이용하여 아래와 같이 설정하였습니다.


이제 Import한 소스를 컴파일해볼까요? Eclipse에서는 Build라고 합니다.Project>Build All 를 선택합니다.그런데 에러가 발생하였습니다.

Eclipse의 경우 에러를 console이라는 화면을 통하여 보여줍니다. 아래와 같습니다. 권한때문에 에러가 발생했습니다. 압축을 풀 때는 root로 했는데 eclipse는 제 개인계정으로 해서 권한 오류가 생겼네요.(^^)

대략 이해가 되었나요? Eclipse는 IBM이 개발한 제품이지만 오픈소스화하고 난 이후 Java를 시작으로 하여 HTML 및 Javascript 그리고 Fortlan, C/C++까지 영향력을 확대하고 있습니다. 처음에 어색하더라도 익혀두시면 유용하게 사용하실 수 있습니다. 특히 vi보다는 IDE를 원하신다면 좋은 대안이 아닐까 합니다.

Eclipse Platform에서의 C/C++ 개발
4.
이제 개발도구설정까지 마무리하였습니다. 이것으로 개발을 바로 시작하면 될까요? 물론 가능합니다. 다만 개발은 코딩만을 의미하는 것이 아님을 잊지 말았으면 합니다. 요구사항정의-설계-구현-시험 등이 반복해서 이루어집니다. 또한 개발자 혼자만 작업하는 경우는 거의 없습니다. 트레이더가 있고 개발자가 있고 어떤 경우 퀀트도 있을 수 있습니다. 아니면 부서 전체가 공동작업을 할 수 있습니다. 결국 개발은 프로세스이고 소통입니다.

굳이 이클리스를 선택한 이유는 이와 같은 프로세스와 소통을 지원하는 탁월한 기능을 제공하기때문입니다. 다음에 소개하도록 하겠습니다.

6 Comments

  1. m

    리눅스 초짜 입니다.

    virtual machine에 cent OS까지 설치했습니다.

    그런데 이클립스 다운 받아서 설치하는 이하 부분이 이해가 않됩니다.

    $su –
    $sudo -i
    를 어디에 입력해야 하나요?

    Reply
    1. smallake

      제가 새로 포스팅을 했습니다. (^^)

      도움이 되길 바랍니다. 건강하세요.

      Reply
  2. yosnoop

    저희 회사에서 유지하는 있는 정책을 하나 소개해드리자면 저희는 루트계정으로 변경하는 것을 기본적으로 금지하고 있습니다. 사용자들이 루트계정으로 작업을 하게되면 쉘의 히스토리외에는 로그가 남지 않으므로 무소불이의 작업자가 마땅한 기록도 없이 일을 진행하게 되어버립니다. 꼭 루트권한이 필요할시에는 sudo뒤에 명령어를 직접 입력하도록하여 secure로그를 남기도록하고 있습니다. 사실 적응이 되지않으면 일일이 sudo를 타이핑하는 것이 꽤 귀찮은 일이지만 꼭 필요한 정책이라고 생각합니다.

    Reply
    1. smallake

      사실 내부시스템은 sudo를 기본으로 하고 있습니다. su, sudo 모두 초보자가 알아야 할 명령어입니다만 보안을 생각하면 sudo를 권장하는 것이 맞죠.

      말씀하신 내용에 동의합니다

      Reply
  3. 현종석

    좋은 글 잘 읽었습니다.

    Reply
    1. smallake

      감사합니다…

      Reply

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.