달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

이 글은 하얀말님의 2009년 9월 21일의 미투데이 내용입니다.

:
Posted by 하얀 말

이 글은 하얀말님의 2009년 9월 19일의 미투데이 내용입니다.

:
Posted by 하얀 말

이 글은 하얀말님의 2009년 9월 16일의 미투데이 내용입니다.

:
Posted by 하얀 말

이 글은 하얀말님의 2009년 9월 15일의 미투데이 내용입니다.

:
Posted by 하얀 말
2009. 9. 11. 17:45

잘 나가는 제니맥스미디어(ZeniMax Media) PC 게임2009. 9. 11. 17:45

기업 인수/피인수 한 김에 하나 더. 요새 게임업체 중 제니맥스미디어(ZeniMax Media)라는 회사가 참으로 잘 나간다.

제니맥스미디어가 무슨 회사인지 모르실 분들이 많지 않을까 싶은데, 이 회사는 베데스다소프트웍스(Bethesda Softworks)의 모회사다. 베데스다 소프트웍스는 뭐하는 회사냐고? 바로 엘더스크롤스: 오블리비언(Elderscrolls: Oblivion), 폴아웃(Fallout) 3를 제작한 회사다. 게임 업체에서 다른 회사를 널름널름 잘 집어먹는 회사는 EA가 대표적이다. 최근 제니맥스미디어가 프레이(Prey) 판권을 인수했다는 뉴스를 보았는데, 제니맥스미디어는 EA만큼은 아니지만 꽤 다른 회사, 또는 다른 회사의 IP(지적 재산)을 널름널름 잘 집어삼킨 전력이 있으며 그 때마다 꽤 큰 반향이 있었다.



최초로 '어?' 했던 사건은 이 회사가 명작 RPG, 폴아웃(Fallout)에 대한 권리를 인터플레이로부터 사 들이고 폴아웃 3편을 만들겠다고 나섰다는 뉴스를 접했을 때이다. 원래 폴아웃은 인터플레이라는 게임 유통사 산하의 블랙아일스튜디오가 만든 프랜차이즈로(블랙아일스튜디오는 발더스게이트 시리즈 제작에도 참여했으며 발더스게이트 엔진을 이용, 아이스윈드데일. 플레인스케이프:토먼트를 만든 명문 RPG 제작사였다). 개발사인 블랙아일스튜디오도 망하고, 급기야 유통사이던 인터플레이도 상태가 안 좋아지면서 폴아웃은 2편을 끝으로 불귀의 객이 되는 듯 했었다. 그런 폴아웃을 배짱 좋게 부활시킨다 나선 것이다. 이런 명작 프렌차이즈 부활을 하겠다고 나서면 사람들은 기대 반, 우려 반인 것이 일반적인데, 당시 사람들이 우려보다 기대를 많이 했었던 것 같다. 베데스다는 오블리비언이란 거대한 RPG를 성공시키는 역량을 가진 회사라 베데스다가 만드는 폴아웃 3가 폴아웃 프렌차이즈에 누가 되지 않을 것이란 기대감이 있었다. 결과? 폴아웃 3가 나와도 한참 지난 지금 보듯, 폴아웃 3는 화려하게 부활하는데 성공했다. 비록 폴블리비온이란 비아냥도 듣긴 하지만(하지만 나 같아도 오블리비언 리소스를 최대한 활용해서 만들겠다! 요새 게임 제작비가 좀 비싸야 말이지).


그 다음 '어?' 했던 것은 올해 6월 말에 공표되었던, 제니맥스미디어가 FPS 쟝르의 창시자 격인 ID소프트웨어를 인수한 일이다. 이로써 제니맥스미디어는 순식간에 울펜슈타인, 둠, 퀘이크라는 걸출한 프렌차이즈, 존 카멕이라는 전설적인 개발자, 3D 그래픽 엔진인 id 테크(id Tech) 엔진까지 확보하였다(그동안 베데스다는 게임브리오를 써 왔는데 id 테크 엔진을 보유한 이 마당에 계속 게임브리오를 쓸 지 지켜보는 일도 흥미롭겠다). 울펜슈타인 3D(내 인생 최초로 집에서 해 본 비디오 게임), 둠 2(학교 실습실에서 4인 랜 플레이하느라 폐인되었었음)라는 추억 어린 게임의 제작사, id 소프트웨어도 결국 불경기에 피인수된 것이 좀 껄적지근하지만 인수자가 역량 만빵 제니맥스이고 앞으로도 존 카멕이 이끄는 집단이 계속 id 소프트웨어의 게임들을 만들어 갈 것으로 보여 썬이나 볼랜드 없어진 것만큼 기분이 요상하지는 않았다.


id 소프트웨어 인수한 지 얼마나 되었다고, 이번엔 프레이 판권. 2006년에 나온 게임으로 id 소프트웨어의 id 테크 4 엔진으로 만들어진 게임이다. 매우 독특하고 멋진 게임이고, 상업적으로도 어느 정도 성공한 게임이었는데, 2008년 2편 제작을 공표했었지만 지금도 2편은 나오지 않았다. 속편 출시가 함흥차사인 폴아웃 시리즈도 판권 사서 속편 만들어 재미 좀 보더니, 지명도는 좀 있는데 속편 출시는 함흥차사인 프랜차이즈 판권 확보해서 대신 개발해 파는 것에 맛을 들였나보다. 추측이긴 하지만 프레이 2를 만들면서 id 소프트웨어 인수하면서 확보한 id 테크 4 엔진을 기반으로 하는 게임 개발 역량 배양도 의도한 듯 하다.

세계적 불경기인데 이 회사는 어떻게 이렇게 잘 나갈까? 내 개인적인 의견이긴 하나 제니맥스 계열사들이 개발 역량이 좋다. 엘더스크롤 시리즈를 해 보시라. 이런 거대한 RPG를 만든 개발사가 괴물 같다고 여겨질 수 밖에 없다. 세계관의 탄탄함, 방대한 컨텐츠, 뛰어난 줄거리, 화끈한 모딩 지원 등등등... 개발력과 기획력이 정말 좋은 회사라 아니할 수 없다. 그리고 나름대로 3D 기술력도 있고. 베데스다가 블리자드 같은 수퍼스타는 아니지만 이런 이유로 이 회사 또한 나름대로의 마니아를 거느리고 있는 회사이고, 마니아를 거느린 회사는 망하지는 않는 법, 결국 후속작 안나와 명줄 끊기게 생긴 프렌차이즈 구원 등판 및 id소프트웨어라는 회사까지 인수하기에 이르렀다. 그리고 세계적 불경기는 제니맥스가 상대적으로 싼 값으로 이러한 인수 퍼레이드를 벌이는데 도움이 되었을 것이다.

제니맥스미디어 계열사들이 앞으로 내놓을 프레이 2, 엘더스크롤 5, 둠 4, 레이지를 기대해 봐야겠다(그런데 PC 패키지 게임 시장 다 아작난 우리나라에서는 나올라나 몰라).
:
Posted by 하얀 말

이 글은 하얀말님의 2009년 9월 10일의 미투데이 내용입니다.

:
Posted by 하얀 말
2009. 9. 9. 17:08

안녕, 볼랜드...! Computing에 관한 독백2009. 9. 9. 17:08

IT쪽 일을 하시거나 관심이 많으신 분들은, 90년대 말 ~ 21세기 초에 걸물 취급 받던 개발 도구인 델파이의 새 버전, 델파이 2010 출시 소식을 들으셨을 것이다. 윈도우 7 지원을 마이크로소프트의 비주얼스튜디오보다 더 잘 지원한다고 널리 홍보하고 있으며, 델파이라는 이름값이 꽤 크므로 많은 관심을 받고 있다 하겠다.

그런데 이 델파이 2010을 홍보하는 회사가 좀 이상하다. 볼랜드(Borland)도 아니고 코드기어(Code Gear)도 아니고 엠바카데로 테크놀로지스(Embarcadero Technologies)라는 약간 지명도가 떨어지는 회사이다. DBArtisan이라는 DB 관련 도구를 쓰고 있다면 모르겠지만.

볼랜드가 투게더소프트를 인수하여 투게더라는 UML 모델링 도구를 확보한 이후 캘리버RM(Caliber RM) 같은 요구 사항 관리 도구 등을 확충하며, 마치 IBM에 인수되기 전의 래셔널 소트트웨어와 비슷하게 애플리케이션 생명 주기(Application Life Cycle) 전반을 아우르는 제품 라인업을 가져가는 것을 추구하다, 한 때는 일세를 풍미했지만 이클립스, 넷빈즈, 비주얼스튜디오에 치여 돈이 안되는 델파이, 제이빌더 같은 개발 도구를 만드는 부문을 코드기어라는 별도 회사로 분사시키고 모델링/방법론 도구에 치중하기로 한 것은 알고 있었다. 그래서 '뭐, 코드 기어는 엠바카데로가 샀다고 치고, 그럼 요새 볼랜드는 뭐하나~'하고 http://www.borland.com 사이트를 간만에 들어보니 Micro Focus라는 처음 보는 회사의 웹 페이지가 나오는 것이 아닌가. 그리고 그 웹 페이지에는 다음과 같은 제목의 보도 자료 링크가 있었다.

Micro Focus announces the acquisition of Borland Software(마이크로포커스는 볼랜드를 인수했음을 공표합니다).

개발 도구를 제외한 볼랜드마저도 사라진 것이다.

볼랜드라는 일세를 풍미한 회사가 피인수되어 사라지는 것을 보니, 학창 시절 볼랜드의 터보 파스칼, 터보 C 2.0, 볼랜드 C++로 숙제하던 나로써는, 회사 다니면서 줄곧 써 온 프로그래밍 언어, 자바의 창시자 썬마이크로시스템즈가 오라클에 넘어간 것에 이어 또다른 묘한 감정을 느끼게 되었다. 하긴 개발 도구를 코드 기어라는 회사로 떼어 낸 이후의 볼랜드를 내가 알던 예전의 볼랜드와 동격으로 놓기에는 좀 켕기긴 했지만 말이다.

올해는 사람도 많이 죽더니(노무현/김대중 전 대통령, 여운계, 조오련, 장진영, 마이클 잭슨), 일세를 풍미한 컴퓨팅 대기업도 참 많이 사라진다(썬, 볼랜드, SGI, Id 소트트웨어). 기분 묘하다.

:
Posted by 하얀 말
  • 아싸, USB 드라이브에 리눅스 설치해서 부팅 성공! 이제 USB 드라이브만 꽂으면 리눅스를 쓸 수 있다!!!(리눅스 USB드라이브)2009-09-03 10:26:50
  • 오늘 일과는 xmodmap으로 한/영키 키코드값 맞추다 다 갔구나…(xmodmap 한/영전환)2009-09-03 18:07:23

이 글은 하얀말님의 2009년 9월 3일의 미투데이 내용입니다.

:
Posted by 하얀 말

이 글은 하얀말님의 2009년 9월 2일의 미투데이 내용입니다.

:
Posted by 하얀 말
2009. 9. 1. 16:44

Jetty Computing에 관한 독백2009. 9. 1. 16:44

Apache Tomcat이 Servlet / JSP 참조 구현체이긴 하지만 요새 Jetty란 JSP/Servlet Engine이 Tomcat보다 더 작고 가벼워로 각광 받는 듯 하다. 특히 Google이 자사의 AppEngine을 Tomcat -> Jetty로 교체한 사실은 앞으로 Jetty에 많은 힘을 실어줄 듯 하다. 이 정도 되니 Jetty에 대한 궁금증이 생겨 Jetty를 알아보기로 했다.

 

Jetty 6? Jetty 7?

2009년 9월 1일 현재 Jetty의 안정 버전은 6.x이고 다. 상위 버전인 7.x가 출시 준비판(Release Candidate)으로 존재한다. 6.x는 codehaus가 관리하는데 7.x부터는 Eclipse 재단이 관리하는 것도 재미있는 점이다. 7.x 버전은 제품 자체 완성도는 좋을 지 모르나 문서화가 아직 진행 중이기 때문에 관련 정보 획득이 어렵다. 따라서 현재 안정 버전인 Jetty 6 획득을 권장한다.

 

Jetty 시작과 종료

간단한 Jetty 시작 / 종료

Jetty 기동은 다음과 같이 하면 된다.

$ java -jar start.jar

이후 웹 브라우저에서 http://localhost:8080 으로 접속해 보면 Jetty가 제대로 기동되었는지 여부를 알 수 있다.

 

종료는 Jetty를 기동하는 java process를 kill하면 된다.

 

Jetty 기동 Option

간단한 Jetty 시작에서는 아무 옵션도 주지 않고 기동했지만, Jetty 기동에는 여러 옵션을 줄 수 있다. Jetty 기동 command line은 아래와 같은 형태를 가진다.

 

java [<property_list>] -jar start [--help | --stop | --version] | [<jetty_config_file_urls>]

 

 

<property_list>에는 Jetty에 관련된 JVM property들이 나온다. 이들 property를 설정함으로써 Jetty 기동을 좀 더 세밀하게 제어할 수 있다. 다음은 Jetty 기동 시 부여할 수 있는 property 및 그 의미에 대한 목록이다.

 

  • jetty.home : Jetty Home Directory를 지정한다. OS의 JETTY_HOME 환경 변수를 지정하는 것으로 이 property 설정을 생략할 수 있다.
  • jetty.port : Jetty가 listening할 HTTP port를 지정한다. 이 port는 XML로 된 Jetty 설정 파일에서도 지정 가능하다.
  • jetty.host: Jetty가 기동하는 장비의 IP, 또는 hostname을 지정한다. 기본적으로 Jetty가 돌아가는 로컬 장비의 hostname으로 설정된다.
  • jetty.logs: Jetty가 남기는 log 디렉토리 지정. 기본은 ${jetty.home}/logs 디렉토리이다.
  • STOP.PORT : Jetty 정지 신호를 받아들이는 port. jetty.port로 설정하는 port와는 다른 port이다.
  • STOP.KEY : Jetty를 정지시킬 때 주어야 할 열쇠글(이 열쇠글을 제대로 주지 않으면 Jetty 정지가 안된다)

 

Jetty는 property 이외에도 --help, --stop, --version과 같은 option을 줄 수 있다.

 

  • --help : Jetty 기동 시 줄 수 있는 option을 표시한다(별로 자세하지는 않다)
  • --version : Jetty의 version을 표시한다.
  • --stop : Jetty를 중단시킨다.

 

--stop, STOP.PORT, STOP.KEY에 대해 좀 더 자세히 언급하기로 한다. 예를 들어 Jetty 기동을 다음과 같이 했다고 하자.

 

$ java -DSTOP.PORT=8037 -DSTOP.KEY=fuhaha -jar start.jar &

$

 

위에서 기동한 Jetty를 정지시키려면, 위 process를 kill하는 방법도 있겠으나 다음과 같은 명령을 내리면 안전하게 위에서 기동한 Jetty를 정지시킬 수 있다.

 

$ java -DSTOP.PORT=8037 -DSTOP.KEY=fuhaha -jar start.jar --stop

 

Jetty에 Java EE Web Application 배포

Jetty를 설치/설정하는 이유는 결국 Jetty에 Web Application을 올리기 위함이다. Jetty에 Web Application을 올리는 방법은 두 가지가 있는데 하나는 Web Application Deployer를 쓰는 방법이고, 다른 하나는 Context Deployer를 쓰는 방법이다.

 

Web Application Deployer

Web Application Deployer는 정적 배포기이다. 여기에서 정적 배포란 hot deploy가 아닌, 변경한 내용을 반영하기 위해서는 Jetty 재기동이 필요한 배포를 말하며, Jetty를 이루는 class 중 org.mortbay.jetty.deployer.WebAppDeployer라는 클래스가 담당한다. 방법이 매우 간단한데, Jetty 기본 설정 상태에서는 $JETTY_HOME/webapps 밑에 JavaEE Web Application을 놓고 재기동하면 바로 그 새로운 Web Application을 인식한다.

 

문제는 default 상태의 Jetty 6.1.20은 Tomcat과 달리 WAR 형태로 묶은 Web Application은 자동으로 인식하지는 않았다는 점이다. 따라서 WAR로 묶은 Java EE Web Application은 압축을 풀어 $JETTY_HOME/webapps 디렉토리에 놓아두고 재기동해야 Jetty가 인식하였다. 이 점은 좀 이상한 점으로 정말 이런 것인지는 좀 더 사용을 해 봐야할 것으로 보인다.

 

Context Deployer

Context Deployer는 hot deploy를 지원하며, Jetty 설정 파일(default는 $JETTY_HOME/etc/jetty.xml)을 보면 org.mortbay.jetty.deployer.ContextDeployer라는 클래스가 Context Deployer임을 알 수 있다. Jetty 기본 설정 상태에서 Hot Deploy는 $JETTY_HOME/contexts 라는 디렉토리에 각 Java EE Web Application에 대한 XML로 된 설정 파일을 가져다 놓아야 한다.

Jetty 설정 파일의 Context Deployer 설정 부분 예시는 다음과 같다.

<Call name="addLifeCycle">
     <!-- Context Deployer class 설정 -->
     <New class="org.mortbay.jetty.deployer.ContextDeployer">
        <Set name="contexts"><Ref id="Contexts"/></Set>
        <!-- Context XML 설정 파일 놓는 위치 지정. 여기서는 $JETTY_HOME/contexts 디렉토리로 설정 -->
        <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set>
        <Set name="scanInterval">1</Set>
    </New>
  </Arg>
</Call>

각 Java EE Web Application마다 만들어야 할, $JETTY_HOME/contexts에 가져다 놓는 XML 파일 예는 다음과 같다.

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
    "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
      <!-- Web Application에 부여할 context path. 여기서는 /test 로 설정 -->
      <Set name="contextPath">/test</Set>
      <!-- Web Application이 있는 directory. 여기서는 $JETTY_HOME/webapps/test 디렉토리로 설정 -->
      <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/test</Set>    
</Configure>

 

이 글은 스프링노트에서 작성되었습니다.

:
Posted by 하얀 말