2010년 3월 31일 수요일

미니 서평 #4

 

제목 : UML Distilled 3rd

저자 : Martin Fowler

출판 : Addison-Wesley

 

정말 훌륭하다. UML을 배우기 위해서 읽어왔던 그 모든 두껍고 무거운 책들을 버려라. 정말 얇고 가볍고 내용은 명확하다.

2010년 3월 30일 화요일

2010년 3월 29일 월요일

죽음에 대해서

부모님의 죽음은 자식들에게 많은 것을 남긴다. 보고싶어도 볼 수 없다는 것이 무엇인지 알게되고, 그리움이라는 것이 진짜로 무엇인지 알게된다. 진짜 후회라는 것이 무엇인지 알게되고, 자신이 부모님에게 얼마나 잘한 것이 없는지 알게된다. 하지만 이러한 감정이 지속적이지는 않다. 어느날 문뜩 다시금 이러한 감정이 일어나 힘들어지고 눈물이 나기도 하고 그리워지지만 말이다.

 

반대로 부모님들에게 자식은 죽음은 진짜 모든 것을 빼앗서 가는 것이다. 단 하나 남는 것은 하루하루가 모두 고통뿐이라는 것이다. 아마 생지옥이라는 말이 맞는 말일 것이다.

 

참 안타까운 일이지만 자식의 부모님을 향한 사랑보다 부모님의 자식에 대한 사랑이 얼마나 큰지를 알 수 있는 하나의 예이다.

 

2010년 3월 27일 토요일

페르미를 장착한 GTX480,470 드디어 나오다.

NVidia에서 DX11을 지원하는 그래픽카드를 우여곡절 끝에 출시하였다.

 

 

보드나라 GTX470/480 리뷰

http://www.bodnara.co.kr/bbs/article.html?imode=view&D=7&cate=3&d_category=2&num=75705

 

플웨이즈 GTX480 리뷰

http://www.playwares.com/xe/12397881#1 

 

개인적으로 요약을 해보자면 DX11에서 성능이 뛰어나다. 텍셀레이션 기능을 사용했을 때 확실한 성능적 향상을 보여준다. AA성능도 좋아졌다. 그러나 전력을 엄청많이 소비하고 뜨겁고 시끄럽다.

 

결국 문제는 출시가격인데 ATI보다 항상 높은 가격대를 형성했던 지금까지의 전례를 보건데 결국 시장에서 외면을 받지 않을까? 하고 조심스럽게 예상을 해본다.

 

2010년 3월 26일 금요일

2010년 3월 25일 목요일

놀랍고도 놀랍다.

일반적으로 프로 스포츠 선수들이 은퇴를 선언했다가 다시 복귀하는 경우가 있기는 있다. 하지만 철저한 시장 논리에 의해서 수요가 없다면 자신의 능력과 상관없이 복귀는 불가능하다.

 

하지만 이건희 삼성 전 회장의 그룹 복귀를 지켜보니, 어떻게 본인 스스로 삼성이 위기라고 단정하고 이렇게 쉽게 회사 경영에 다시금 참여를 할 수 있는지 좀 의아하다.

 

진짜 우리나라를 대표하는 세계적인 기업인 삼성이 지분 비율도 그다지 높지 않은 이건희 회장의 사유 기업이었던 것인가?

 

그렇지 않고서야 자기 맘대로 회장직으로 이토록 쉽게 복귀가 가능이나 한 것일까? 의문을 가지지 않을 수 없다.

2010년 3월 24일 수요일

Majin

 

시리즈가 아닌 게임 타이틀에서 동영상만으로 기대감을 갖게된 타이틀은 오랜만인 것 같다.

 

처음 동영상을 봤을 때 이코나 완다의 거상과 일맥상통하는 게임이라는 생각이 들었는데 제작사를 보니 반다이 남코였다.

 

 

도적과 마인의 콤비 플레이라.......

 

 

2010년 3월 23일 화요일

미니멀리즘 디자인의 극치 소니 브라비아 NX700

 

CES2010에서 소개되었던 소니 브라비아의 새로운 LCD TV다.

 

이번에 국내 출시를 한다.

 

BLU가 기존 RGB LED에서 삼성이 사용하는 Edge형 White LED를 사용한 형식으로 바뀌었다. 그래서 두께도 줄어들고 전력 소비도 줄어들고 무엇보다 가격이 착해졌다.

 

40인치형의 가격이 229만원이고 46인치형이 329만원이다.

 

 

별매로 판매하는 메탈릭베이스 스탠드도 간지가 작렬하신다. 가격은 40인치용이 24만8천원이고 46인치용이 28만8천원이다.

2010년 3월 21일 일요일

자연으로 돌아가고 싶다.

우연이라고 봐야하나~~~

텍스트큐브의 추천 관심블로그에

 

우리 회사의 막내 프로그래머의 블로그가 떠 있네요.

 

역시 같은 일을 해서 공유하는 태그가 많아서 그런가?

 

우연치고는 재미있군요.

2010년 3월 20일 토요일

스마트폰 + SKT가 알파라이징하면

바가지 정액제 데이터 요금제~~~

 

알파라이징같은 국적없는 단어나 만들어서 그럴듯한 광고나 하지말고 진짜 좋은 서비스와 현실적인 요금제나 실시해라.

뇌구조 테스트

뇌구조 테스트라는 것이 있어서 해봤다.

 

그냥 한글로 이름만 넣으면 되는 단순한 형태였는데,

 

솔직히 이름으로 무언가를 유추내는 것은 불가능하니 그냥 장난스러운 테스트인 것 같다.

 

 

나의 현재 주요 관심사는

 

,

 

성공,

 

욕정이다.

 

 

2010년 3월 19일 금요일

형님이 오시네요.

 

3월 31일 형님이 오십니다. 아마 올해 PS3 타이틀 중에 가장 대작이 아닐까 생각을 해봅니다.

 

이미 북미에서 발매가 되었고, 발매 직전 매거진들에서의 평점이 가히 최강이었죠.

 

역시나 발매전에 특별판과 GOW3 PS3를 판매하는군요. 역시 팔리는 상품은 이런 식의 판매전략이 기본인가 봅니다.

 

더욱 더 화려해지고 잔혹해진 액션을 조만간 한글 자막으로 만나볼 수 있겠네요. PS3 유저들은 총알을 충전해두셔야할 듯......

서울 거리서 껌 뱉으면 과태료 3만~5만원

G20(주요 20개국) 회의 등 주요 국제행사를 앞둔 서울시가 시민들의 껌 뱉기를 근절하고자 관련 법령을 개정해 과태료를 물리기로 하는 등 총력 단속 태세에 들어갔다.

연합뉴스에서 발췌한 기사이다.

 

본래 거리에 껌을 뱉는 것 자체는 정말 안좋은 행동이다. 미간상 좋지않은 것은 물론이요. 청소하기도 여간 쉽지 않기때문이다.

 

아름다운 거리를 만들기 위해서 껌 뱉는 것과 길거리에서 담배 꽁초를 버리는 행동에 대해서는 미리미리 근절시키기 위한 방법을 마련해야 했었던 것 아닐까?

 

꼭 무슨 일이 있을때 상대방에게 잘보이기 위해서 하는 행동은 너무나 가식적이다. 전시행정의 극치를 보여주는 것이 아닌가? 라는 생각을 안할 수가 없다.

2010년 3월 17일 수요일

Quternion Class 구현

mathematics for 3d game and computer graphics 책의 3장 연습문제 5번 답으로 작성한 quaternion class.

 

#ifndef __QUATERNION_H__
#define __QUATERNION_H__


namespace toki

{
 class cQuaternion
 {
 public:
  cQuaternion() {}
  ~cQuaternion() {}

  //
  cQuaternion(float aW, float aX, float aY, float aZ)
  {
      w_ = aW;
      x_ = aX;
      y_ = aY;
      z_ = aZ;
  }

  cQuaternion(const cQuaternion& aQuat)
  {
      *this = aQuat;
  }

  cQuaternion& operator = (const cQuaternion& aQuat)
  {
      if(this != &aQuat)
      {
          w_ = aQuat.w_;
          x_ = aQuat.x_;
          y_ = aQuat.y_;
          z_ = aQuat.z_;
      }
      return *this;
  }

  cQuaternion& operator += (float aW)
  {
       w_ += aW;
       return *this;
  }

  cQuaternion& operator -= (float aW)
  {
       w_ -= aW;
       return *this;
  }

  cQuaternion& operator *= (float aW)
  {
       w_ *= aW;
       x_ *= aW;
       y_ *= aW;
       z_ *= aW;
       return *this;
  }

  cQuaternion& operator /= (float aW)
  {
       w_ /= aW;
       x_ /= aW;
       y_ /= aW;
       z_ /= aW;
       return *this;
  }

  cQuaternion& operator *= (const cQuaternion& aQuat)
  {
      w_ = w_*aQuat.w_ - x_*aQuat.x_ - y_*aQuat.y_ - z_*aQuat.z_;
      x_ = w_*aQuat.x_ + x_*aQuat.w_ + y_*aQuat.z_ - z_*aQuat.y_;
      y_ = w_*aQuat.y_ - x_*aQuat.z_ + y_*aQuat.w_ + z_*aQuat.x_;
      z_ = w_*aQuat.z_ + x_*aQuat.y_ - z_*aQuat.x_ + z_*aQuat.w_;

      return *this;
  }

  // axis must pre-normalize.
  void setToFromAxisAngle(float aX, float aY, float aZ, float aAngle)
  {
       float s,c;
       s = sin(aAngle/2.0f);
       c = cos(aAngle/2.0f);

       w_ = c;
       x_ = aX * s;
       y_ = aY * s;
       z_ = aZ * s;
  }
 
  float magnitude(void)
  {
       return sqrt(square());
  }

  const cQuaternion copyInvertQuaternion(void) const
  {
       float s = square();
  
       return cQuaternion(w_ / s, x_ / -s, y_ / -s, z_ / -s);
  }

 private:
  float square(void) const
  {
       return w_*w_+x_*x_+y_*y_+z_*z_;
  }
  float w_,x_,y_,z_;

 };

 inline const cQuaternion operator * (const cQuaternion& aLhs, const cQuaternion& aRhs)
 {
     return(cQuaternion(aLhs) *= aRhs);
 }

 inline const cQuaternion operator + (const cQuaternion& aQuat, float aScalar)
 {
     return(cQuaternion(aQuat) += aScalar);
 }

 inline const cQuaternion operator + (float aScalar, const cQuaternion& aQuat)
 {
     return(cQuaternion(aQuat) += aScalar);
 }

 inline const cQuaternion operator - (const cQuaternion& aQuat, float aScalar)
 {
     return(cQuaternion(aQuat) -= aScalar);
 }

 inline const cQuaternion operator - (float aScalar, const cQuaternion& aQuat)
 {
     return(
cQuaternion(aQuat) -= aScalar);
 }

 inline const cQuaternion operator * (const cQuaternion& aQuat, float aScalar)
 {
     return(cQuaternion(aQuat) *= aScalar);
 }

 inline const cQuaternion operator * (float aScalar, const cQuaternion& aQuat)
 {
     return(cQuaternion(aQuat) *= aScalar);
 }

 inline const cQuaternion operator / (const cQuaternion& aQuat, float aScalar)
 {
     return(cQuaternion(aQuat) /= aScalar);
 }

 inline const cQuaternion makeQuaternionFromAxisAngle(float aX, float aY, float aZ, float aAngle)
 {
      cQuaternion ret;
      ret.setToFromAxisAngle(aX,aY,aZ,aAngle);
      return ret;
 }

 inline const cQuaternion invertQuaternion(const cQuaternion& aQuat)
 {
      return cQuaternion(aQuat.copyInvertQuaternion());
 }
}


#endif//__QUATERNION_H__

2010년 3월 16일 화요일

서평 #1

제목 : Exceptional C++

저자 : Herb Sutter

역자 : 김동현

출판 : 인포북

 

 어린 아이가 부모의 언어 활동을 흉내내서 언어를 익히게 되는 것을 보면 상당히 신기하다. 하지만, 사회적인 언어 활동을 하기 위해서는 반드시 말하는 것 말고도 정규적인 글 쓰기, 읽기, 문법 등을 배워야만 한다. 그리고 그런 언어 활동을 위한 기본적인 공부를 마치고 나서도 모두 좋고 바른 글을 쓸 수 있는 것은 아니다.

 마찬가지로 컴퓨터 언어를 배웠다고 해서 모두가 좋은 프로그램을 짤 수 있는 것은 아니다. 그렇다면 어떻게 하면 좋은 글, 좋은 프로그램을 작성할 수 있는가?

 언어 활동에서 문법이 중요한 이유는 정확하게 의미 전달을 하기 위해서이다. 문법이 없다면 표준화된 의미구조가 없어서 커뮤니케이션이라는 것 자체가 이루어지지 않을테니 말이다. 그런데 일반적으로 모국어의 경우는 거의 문법을 배우지 않고도 왕성한 언어활동을 할 수 있다고 반문할 수 있을 수 있지만, 역시 좋고 바른 글을 쓰려면 문법은 중요성은 말할 필요가 없을 것이다. 결국 의미 전달의 정확성이 좋은 글의 핵심이라고 할 수 있을 텐데, 그러한 면에서 컴퓨터 프로그램도 컴퓨터에게 정확한 의미를 전달할 수 있고 또 그 프로그램을 유지 보수할 사람에게도 정확한 의미를 전달할 수 있어야만 좋은 프로그램이라고 할 수 있을 것이다. 결국 프로그램 언어는 서로 다른 두 개체들에게 정확한 의미 전달을 할 수 있어야 하는 어려움이 따른다.

 컴퓨터에게 정확한 의미 구조를 전달하기 위해서 필수 요소는 사용하는 언어(여기서는 C++)의 작동 원리를 파악하는 것이다. 그 언어의 명세를 파악해야만 컴퓨터에게 내가 쓴 프로그램을 컴퓨터가 어떻게 이해하는 지를 알 수 있기 때문이다.

 지금까지 뜨금없는 이야기를 한 것은 XC++(이 책을 약어로 이렇게 부른다)이 내가 짠 프로그램을 컴퓨터가 어떻게 이해하는 지를 알려주는 책이기 때문이다. 일반적으로 C++ 표준 명세(spec) 문서는 정말 지루하기 그지 없다. 그리고 그 내용을 한 번 읽어서 다 이해하고 있기도 힘들고 실제 프로그램을 작성할 때 어떤 부분이 어떻게 영향을 미치는지를 파악하는 것도 그렇게 쉽지는 않다. 그렇지만 XC++, MXC++(이 책의 후속작), 그리고 다른 저자인 scott meyers의 EC, MEC 등의 책은 실제적으로 프로그램을 작성할 때 흔히 볼 수 있는 사례들을 들어서 "결국 컴퓨터가 이렇게 이해를 하게 되니 이렇게 작성하는 것이 좋은 프로그램이다." 라고 알려주는 좋은 책이라고 말을 할 수 있을 것이다.

 결국 좋은 글을 쓰기 위해서 다작도 중요하지만 다독도 중요하다. 마찬가지로 좋은 프로그램을 짜기 위해서 실제로 프로그램을 짜는 것도 중요하지만, XC++처럼 내가 짠 프로그램을 컴퓨터에서 어떻게 이해하는 지를 정확하게 이해할 수 있게 해주는 책들을 끓임없이 읽는 것도 프로그램을 많이 작성하는 것 만큼이나 중요하다고 할 수 있을 것이다.
 끝으로 부수적인 이야기로 한국어판에 대해서 말하자면, 책을 읽으면서 약간씩 이해하기 힘든 부분이 나오는 것이 사실이다. 나의 모국어 실력 부재가 문제일 수도 있겠지만, 만점을 줄 수 있을 정도의 번역은 아닌 것 같다.

2010년 3월 15일 월요일

미니 서평 #3

 

제목 : The Annotated C++ Reference Manual

저자 : Margaret A. Ellis, Bjarne Stroustrup

출판 : Addison-Wesley Professional

 

정말 ISO C++ 표준 문서를 읽기 싫다구, 그렇다면 이 책을 읽어봐라.
표준이 나오기 이전에 쓰여진 책이지만, 저자가 C++의 아버지인 만큼 건질내용은 많다.
많은 C++ 컴파일러들이 표준보다 이책을 보고 구현되었다는 이야기도 있으니......

2010년 3월 14일 일요일

about calling convention

overview

c/c++ compiler는 여러 가지 호출 규약이 존재하는데 이러한 서로 다른 호출 규약들을 이해하는 것이 디버깅이나 어셈블리 언어로 만들어진 루틴들을 링크하는데 도움을 줄 수 있다.

 

이 글에서는 간단한 예제를 각각의 규약들에 따라서 어떻게 달라지는지를 도식화하여 보여줄 것이다.

 
calling convention
  1. void (one of calling convention) MyFunc( char c, short s, int i, double f );
  2. .
  3. .
  4. .
  5. void MyFunc( char c, short s, int i, double f )
  6. {
  7. .
  8. .
  9. .
  10. }
  11. .
  12. .
  13. .
  14. MyFunc('x', 12, 8192, 2.7183);

 

__cdecl

 

  • 이 호출 방식을 사용했을 때 함수의 mangling된 이름은 _MyFunc이다.
  • 스택 지우기는 caller(호출자)가 수행한다.
  • 매개변수들은 오른쪽에서 왼쪽순으로 스택에 쌓인다.
 
__stdcall

 

  • 이 호출 방식을 사용했을 때 함수의 mangling된 이름은 _MyFunc@20이다(C언어일 경우에).
  • 스택 지우기는 callee(피호출자)가 수행한다.
  • 매개변수들은 오른쪽에서 왼쪽순으로 스택에 쌓인다.
 
__thiscall

 

  • 이 호출 방식을 사용했을 때 함수의 mangling된 이름은 임의적이다(함수의 다형성).
  • 스택 지우기는 callee(피호출자)가 수행한다.
  • 클래스 this 포인터가 ECX에 저장되고 매개변수들은 오른쪽에서 왼쪽순으로 스택에 쌓인다.
 
__fastcall

 

  • 이 호출 방식을 사용했을 때 함수의 mangling된 이름은 _MyFunc@20이다(C언어일 경우에).
  • __fastcall은 호출된 함수가 stack을 비우는 책임을 가진다.
  • 좀더 빠른 매개변수 전달을 위해서 두개의 레지스터(ECX,EDX)를 사용하고 나머지 매개변수들은 오른쪽에서 왼쪽순으로 스택에 쌓인다.
 
Caller or Callee Stack Cleanup

C/C++ 언어가 기본적인 규약으로 정한 __cdecl이 가변인자를 지원하기 때문에 stack을 지우는 책임이 caller냐 callee냐 이렇게 두가지 경우로 나뉘게 되었다.

 

__stdcall은 고정된 인자의 크기에서 사용되는데, 인자의 크기가 고정되어 사용되므로 함수 자신은 스택의 크기를 언제나 알 수 있으므로 스택 해제를 RET와 ADD의 두 과정을 거치는 것이 아니라 RET argsize 단 한번의 명령으로 처리가 가능하므로 속도면에서 이득이 있다.

 

가변인자의 경우는 callee가 스택의 크기를 알 수 없으므로 __stdcall로는 스택을 지울 수 없다.

 

caller가 함수 호출후에 스택을 지우는 역활을 대신하고 callee는 스택에 대해서 신경쓰지말라는 규약이 바로 __cdecl인 것이다.

 
C or C++ Naming Mangling

함수 이름은 실제적으로 Mangling 규칙에 따라서 심볼화되어 함수 테이블에 저장된다. C언어의 경우에 호출 규약에 따라서 단순한 Mangling 규칙을 가지지만 C++언어는 함수의 다형성을 제공하기 때문에 C언어처럼 단순한 Mangling 규칙을 따르진 않는다.

 

C++언어의 Mangling 규칙은 컴파일러 제작사들에 따라서 약간씩 다르다. C++에서 특정 함수를 어떤 방식으로 mangling 할지를 결정할 수 있는데 그러한 선언문이 바로 extern string-literal 이다.

 

여기서 string-literal에는 "C", "C++"가 존재한다(MSVC경우). 만약 C언어로 작성된 오브젝트 파일에 함수를 C++ 언어로 작성한 프로그램에서 사용할 때 그 함수의 헤더파일을 포함해서 컴파일한다면 둘의 mangling이 달라서 같은 함수 이름을 다른 심볼로 가지므로 인해서 link error가 발생할 것이다.

 

이럴 경우를 대비하기 위해서 위와 같은 선언문이 존재한다. 실제로 표준 C라이브러리 함수들의 헤더파일을 보면 다 extern "C" 선언문이 붙어있는 것을 볼 수 있다.

2010년 3월 13일 토요일

미니 서평 #2

 

제목 : 생각하는 프로그래밍

저자 : John Bentley

역자 : 윤성준, 조상민

출판 : 인사이트

 

Programming Pearl의 번역서, 많은 유명한 프로그래머들의 필독서로 유명한 책이다. 정말 두뇌를 자극하는 이야기들을 보면서 기술이 아무리 변해도 역시 중요한 것은 프로그램을 작성하는 사람의 창의력이라는 생각이 들도록 만들어 주는 책.

2010년 3월 12일 금요일

법정 스님을 그리며......

세상에 말잘하는 사람은 많고 멋진 글을 쓰는 사람도 많다.

 

세상에는 사람들을 감동시키는 많은 명언들이 있다.

 

하지만 자신의 한 말을 실천하는 사람들은 극히 드물다.

 

이상하게도 사람은 자기자신에게는 매우 관대하기 때문이다.

 

나는 무소유를 읽고 많은 감동을 받았다.

 

책을 읽는지도 몇년이 지나서 이제 책의 내용도 잘 기억이 나지 않지만,

 

확실히 기억하는 것은 나는 아무런 실천도 하지 않았고

 

지금도 욕심으로 인해서 많은 고통을 받는다는 것이다.

 

나의 존재를 스스로 찾지 못하고 결국 무언가를 사는 것으로 존재를 인지하고

 

무엇가로 인해 타인에게 좋은 얘기를 듣는 것으로만 나 자신이 존재한다고 느끼고 있다.

 

딱히 무소유를 하겠다는 것이 아니라

 

나도 법정 스님처럼 자신의 한 말을 실천하는 사람이 되고싶다.

미니 서평 #1

 

제목 : C++ 템플릿 가이드

저자 : 데이비드 반데보드, 니콜라이 M. 조슈티스

역자 : 한정애

출판 : 에이콘

 

C++ 프로그래밍 패러다임 중에 제너릭 프로그래밍에 관심이 있다면 이 책은 꼭 보라!!!

사회 생활은 힘들다.

근 15년 가까이 직장 생활을 해오고 있지만, 아직도 대인관계에서 원할하지 못한 것 같다. 요즘은 왠지 사람들한테 부담감을 주는지? 나를 멀리하는 것 같기도 하고.

 

생각해보니, 예나 지금이나 누가 내 자리로 찾아와서 말을 거는 사람이 없는 것 같다. 훔...... 쿨하게 왕따를 당하고 있던 것인가?

2010년 3월 11일 목요일

재미있는 책

 

개인적으로 지하철에서 책을 보다가 본의아니게 크게 웃음 소리를 낸 적은 아마 '세상에서 가장 완벽한 남편' 이 책이 유일할 듯 하다.


처음에 책을 보다보면 소개와는 다르게 왠지 밋밋하고 지루한 듯 해서 실망감이 크다가 어차피 산 책이니 끝까지 읽긴해야지 하면서 읽다보니 어느 순간 부터 빵빵터지기 시작하는데 정말이지 이렇게 유쾌할 수가 없다.


유머라는 것이 일반적으로 문화적인 차이가 있기 마련이고 그래서 슬랩스틱 코미디가 아니면 재미있기 힘들다고 생각하는데, 의외로 이 책은 상당히 재미가 있다.


진짜 실컷 웃고 싶다면 강추하는 바이다.

 

 

동차 표현 vs 동차 좌표계

4차원 벡터 (x,y,z,w)에서 w가 1이 아닌 값을 1이 되도록 나누어 주는 이런 표현이 모두 동차 좌표계라고 알고 있는 사람들이 많은데 그것은 잘못된 지식이다.

 

동차 표현에 대해서

펼쳐두기..


동차 좌표계에 대해서

펼쳐두기..

 


 

2010년 3월 10일 수요일

피규어를 사다.

한 7-8개월만에 피규어를 구입한 것 같다.

 

솔직히 수집에 대한 취미를 가져볼까 하고 작년에는 좀 자주 구입을 했었는데, 이 피규어 수집이라는 것이 진짜 딱 5분 만족이라는 결론이 나서 그냥 사지 말아야겠다라고 생각을 했는데......

 

2월에 13번째 월급인 소득공제가 상당한 액수로 환급되서 그냥 간만에 하나를 또 구입해봤다.

 

역시 5분 만족이겠지.

 

구입한 피규어는 메가하우스에서 만든 엑설런트 모델 시리즈 중에서 일본내수용으로 발매된 마크로스 F 셰릴 놈 A버전이다.

 

2010년 3월 7일 일요일

피규어 이야기

초창기에는 조형사들이 본인이 맘에 들어하는 캐릭터들을 직접 형틀을 만들어서 레진으로 조형을 뜨고 채색을 하였고, 판매도 완제품보다는 레진킷을 판매하였다.

 

물론 구매자들도 레진킷을 조립하고 채색을 하여야 했는데, 최근들어서는 PVC로 대량 생산이 가능해졌다. 물론 중국의 엄청나게 저렴한 인력이 동원되어서 가능한 것이기도 하지만 말이다.

 

그러다 보니 최근에는 예전보다 훨씬 저가로 피규어를 구입할 수 있게되었는데, 가끔 유명한 피규어 제조사들 매드하우스, 오키드시드, 고토부키야같은 업체들에서 한국 게임관련 피규어 상품이 나오는 것을 보면 우리 온라인 게임이 일본에서도 꽤 알려져 있다고 생각을 해본다.

 

개인적으로 마비노기의 나오 캐릭터를 가지고 있는데, 마비노기 게임을 하지는 않지만 일본에서 나오 캐릭터가 상당한 인기가 있는지 여러가지 버전과 넨도로이드로도 발매가 되었다. 아래가 소장하고 있는 오키드시드판 나오 피규어이다.

 

 

요즘 개인적으로 관심을 가지는 국내 게임 피규어는 리니지II 엘프다. 아직 발매전인데, 본래 피규어라는 것이 대량 생산이 되기 전에 이미 제작자가 레진킷을 제작해서 전시를 하기 때문에 제품을 미리 볼 수가 있다.

 

이번 3월에 오키드시드에서 발매가될 예정인 리니지II 엘프다. 조형이 상당히 예쁘게 잘 나온것 같다.

 

개인적으로 내가 만들고 있는 게임도 언젠가 일본에서 피블리싱도 하고 캐릭터들이 인기를 끌어서 이렇게 조형화되길 기대해본다.

 

뭔가 굉장한 미화~~~

2010년 3월 3일 수요일

더러운 타블로이드급 언론사 기자들......

 

메달리스트든 아니든 국가를 대표하는 국가대표이다. 성적이 어떻게 되었건 많은 노력을 했고 최선을 다했으면 되는 것이라고 떠벌리더니......

 

 

2010년 3월 2일 화요일

리니지 누적매출 1조

모든 제품들은 라이프타임을 가진다.

 

온라인 게임이라고 해서 예외는 아닌데,

 

리니지가 12년째 장수를 하고 있는 것은 정말 경이적인 일이라고 생각한다.

 

하지만 누적매출 1조는 정말 큰 액수이긴 하지만

 

와우가 매년 1조원이 넘는 매출을 올리고 있기 때문에,

 

그렇게 크게 와닿지가 않는다.

 

솔직히

 

MMORPG = WoW다. 전세계 점유율이 75%를 육박하기 때문이다.

 

우리나라가 온라인 게임 제작 강국이긴 하지만 아직 갈길이 멀다.

 

그렇지만 부정적인 면이 많다고 해도 12년간 유저의 사랑을 받고 있는

 

리니지에 대해서 인정을 하지않을 수는 없을 것 같다.