요즘 들어서 너무 너무 반해버린 (실제로도 팬이다!!!!)

모든것이 마음에 드는!!! 그 분!!


마님되는법!! 그분의 블로그 이다

http://www.murimpia.com/tt/mars/


이분의 블로그를 보고 있자면, 정말 글을 잘 쓴다는건 하늘이 내린 재능이라는걸 실감할 수 있다.

글 잘 쓰는게 너무 부럽다.
그동안 와우를 했지만 글 쓸 시간이 없었습니다. (놀기 바빠서)


아이템이 중요한 온라인 게임 , 그중에서 전 해본게 와우 밖에 없어서 와우 기준으로만 생각합니다. 그중에 밀리 ( 전사, 도적 , 주술사, 성기사) 등은 붙어서 싸워야 하는 직업이다 보니, 아이템 특히 방어구의 비중이 높을 수밖에 없습니다.

게다가 제가 하는 캐릭터가 전사 이다 보니 , 방어구는 정말 중요하지요.
전사는 파티를 대신해서 '맞아주는' 캐릭터 이기 때문에, 특히 큰 공격대(40명 가까이 모이는 사람들) 의 메인탱커는 아주 '딴딴' 해야 합니다. 아주 쎈 보스 몬스터 (보통 몹 이라고 하죠)가 메인탱커만 죽어라고 때리기 때문에, 아주 아주 딴딴해야지만 그 엄청난 타격을 버틸 수 있습니다.
뿐만 아니라 , 전사는 타 클래스에 비해서 1:1 로 싸우면 아주 허약한 클래스 이기 때문에 (아이러니 하져? 보스몹을 맞아서 버텨야 하는데 허약하다니 , 하지만 실제로 그렇습니다. 강한거랑 버티는 거랑은 좀 다르기 때문이져 ) 방어구가 변변치 않으면 , 정말 '녹아'버립니다.

북미 포럼 조사에 따르면 필드에서 몬가 하고 있을때 누가 뒤에서 공격을 한다. 이때 뒤돌아보면서 클래스를 확인해 볼때 '피식 너냐!!!' 하고 코웃음 치는 클래스 1순위가 바로 전사라고 하는데, 방어구 조차 변변치 않으면 그 전사 어디다 쓰겠습니까. 그래서 전사들은 아이템에 거의 환장합니다. 그래서 돼지 라는 소리까지 들으면서도 환장을 합니다.

하지만 그 모든 방어구중에서 특히나 !!! 어깨!!! 두둥 . 속말로 '간지' 라고 하죠 . 이 어깨 방어구는 아주 중요해서 그 캐릭의 외모중에서 가장 두드러져 보이는 부분입니다.


사용자 삽입 이미지

투지 어깨라고 부릅니다.


위 사진에 나온 저 뾰족 뾰족한 어깨 방어구가 투지 방어구라고 부릅니다. 2년 전이라면 모든 전사들의 선망의 대상이였습니다. 보라색 아이템을 '에픽' 이라고 부르는데 , 일반 방어구는 보통 '파템' 이라고 부릅니다. 에픽으로 된 독특한 형태를 띄고 있는 투지 방어구.
정식명칭은 Tier 1 셋 전사 클래스 전용 방어구 '투지 셋' 입니다.

자 여기서 중요한점, Tier 1 셋 입니다. 그 말은 에픽중에서는 가장 하위의 셋 아이템 이란 이야기 입니다. 즉, 2년전에는 비록 선망의 대상일지라도. 지금은 아니란 거죠 ^^

Tier 1 셋은 가장 하위 난이도의 '화산 심장부' 에서 드랍되는 아이템입니다. Tier2 셋은 '격노 셋' 이라고 하고 '검은용 둥지' 에서 드랍됩니다.. Tier 2.5 셋은 '정복자 셋' 이라고 하고 '안퀴라즈 사원' 에서 드랍됩니다. Tier 3 셋은 '무쌍 셋' 이라고 부르고 가장 최정예 레이드 인던인 '낙스마라스' 에서 드랍됩니다.

낙스마라스는 정말 보통 일반 유저들은 가기 힘든 레이드 인던입니다. 속해있는 팀이 잘나가지 않으면 구경도 하기 힘든곳이기도 하고요. 전체적인 공대 수준이 어느정도 이상 되지 않아면 못가는 곳이, 안퀴라즈 사원과 그보다 더 어렵다는 낙스마라스 입니다.

Tier 2 셋이 일반화 되 가고 있는 추세니까 , 사실 Tier1 셋인 '투지 셋'으로는 좀 돌아다니면 그냥 저냥한 일반적인 전사라고 사람들이 생각합니다.

현실세계에서도 외모나 장신구 같은걸로 사람을 평가하는데, 게임에서조차 그런걸로 평가하다니 통탄할 따름이지만.. 저는 투지 전사입니다.. ㅜ.ㅜ

즉 Tier1 급에 해당하는 '화산 심장부'급 전사입니다. 이런 제가 Tier 2 , Tier 2.5 를 건너 뛰고 바로 Tier 3 급에 해당하는 '낙스마라스'에 가게 됐습니다.
전 서버에서 유래 없는 경우라고 볼 수 있습니다. 보통 전사는 아이템이 안좋으면 상위 인던을 도전하는 공대에 뽑히는 경우가 없단 말이죠.

뭐 물론 투지 어깨를 차고 돌아다니기가 저도 살짝 부끄럽고 , 또 놀리는 사람들도 무지 많습니다.

뭐 그게 어쨌단 말입니까. 전 전 서버에서 한명밖에 없는 투지입고 있는 낙스급 전사입니다.

http://www.mamiyami.com/document/cpp_network_prog_volume2/0201795256_ch03lev1sec3.html



원글은 여기서 가져오고 있지만 실제로 저 글은 C++ 네트워크 프로그래밍 2권에 해당하는 내용일 뿐이다.

ACE 적인 설명이 들어있지만 정리하자면 (일반적인 이야기로 풀어서 표기하자면)

왠만한 클라이언트가 끊어지는 경우는 서버쪽에서 모두 알 수가 있다. 소켓 자체에 무언가 읽을 수 있다고 표기가 되기 때문이다. 이때 recv 함수들을 이용해서 그 내용을 받아오면 recv 함수가 0 아니면 -1 을 리턴한다. 이것때문에 소켓의 접속이 끊어졌다는걸 알 수가 있는데.

-  랜선이 갑자기 뽑힌 경우나 , 아니면 잠시 뽑혔다가 다시 꼽힌 경우

- 클라이언트 컴퓨터가 갑자기 이상이 생긴 경우 , 그래서 클라이언트의 접속이 이상해서 계속 이어지지 않는 경우


이런 경우는 소켓에 생긴 이벤트를 알 수가 없다.

이럴때를 위해서 다루는 방법 몇가지 방법이 있는데

- TCP 가 킵얼라이브 시스템을 이용해서 (자체적인) 아무 응답이 없을때 소켓을 트리거가 종료하는 시스템이 있다. 닫히는 순간을 이용해서 recv 함수가 반응하는것을 이용하는 방법이지만 아쉽게도 매우 오랜 시간이 걸린다.

- 어플리케이션 레벨 정책으로 구현도 가능하다. 흔히 말하는 '살아 있어?' 라고 확인하는 메시지 이다. '살아 있어' 메시지를 일정 기간마다 전송하는데 실패하거나 응답이 없으면 접속이 끊어진것으로 판단한다.

- ACE 에서 지원하는 일정 기간 동안 소켓 통신이 없으면 접속을 끊어버리는 기능이다.


실제로 코딩상에서 어떻게 구현하는지 그 예를 살펴 보겠다.

ACE_Time_Value tv(60 * 3);
int n = _client_peer.recv(buf, sizeof (DWORD), &tv) ;

이 코드를 보면 첫 줄은 시간을 설정하는것이다. 60*3 이니 180 초 즉 3분이다. 3분동안 클라이언트에서 무엇인가 값이 오기를 기다리고 있는것이다.

recv 함수는 에러시에는  -1 이나 0 을 리턴한다.

0인 경우는 소켓이 Full 이 되서 더이상 읽을 것이 없을 때로 알고 있다. (확실하지는 않다. )

-1 인 경우가 다채로운 에러가 났을 경우다. 대표적인 경우가 클라이언트가 갑자기 연결을 끊었을때나 클라이언트 프로그램이 에러가 났던가 하는 경우이다.

여기서는 시간을 설정했기 때문에 3분동안 클라이언트로 부터 값이 오지 않으면 -1 과 errno 값이 ETIMEOUT 값이 들어 있지만, 일정에 쫓겨 TIMEOUT 은 설정하지 않고 단순히

-1 이면 한 에러로 처리하는 루틴이 들어가 있다.


if ( n == -1  )
{
    // time out & socket error
    if (!SendKeepAlive())
       return -1;

    // proper action
    return 0;
}
else if ( n == 0)
{
     ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) socket closed \n"), -1);
}
else if ( n != sizeof (DWORD))
{
     ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) received wrong packet \n"), -1);
}

// keep alive reset
NotRequireKeepAlive() ;

n 은 위에서 recv 함수에서 리턴되는 값이다. -1 인 경우가 접속이 종료됐거나 TIMEOUT 인 경우라고 했었다. 그밖의 다른 경우는 에러처리를 해주고 맨 아랫줄의 NotRequireKeepAlive 함수는 정상적으로 클라이언트가 Packet 을 보내서 정상적으로 Packet 의 길이를 받았을때 Keep Alive 상태를 리셋 해주는 함수이다. (단순히 Bool 변수 세팅)

BOOL Client_Handler::SendKeepAlive()
{
  // 현재 시간 얻어오기  
  ACE_Time_Value now = ACE_OS::gettimeofday ();

  // Keep Alive 메시지를 한번도 안 보냈다면
  // Keep Alive 메시지를 보내야 한다.
  if ( _bIsSendingKeepAlive == FALSE)
  {
     // sending Keep Alive
    _bIsSendingKeepAlive = TRUE ;
     // 현재 시간을 저장한다.
    _last_send_keepalive = now ;

     // Keep Alive Packet 을 클라이언트로 전송하는 부분이다.
     CmdKeepAlive packet ;
     MemArchive sendAR (MemArchive::encode);
     packet.Serialize(sendAR);

     // 상대편 Client 가 접속이 끊어져 있는 상태면
     // 전송이 실패할것이다.
     if (!_ptr_packetHandler->Write(_client_peer, sendAR))
      return FALSE ;

     // 단지 잠수(?) 하고 있을뿐이면 성공할것이다.
      return TRUE ;
}
else
{

     // 지금 시간과 마지막으로 Keep Alive 보낸 시간의 차이가
     // 지정해둔 Max 시간과 차이가 있다면
     // Client 는 비정상 접속 종료로 여겨도 무방하다.
     if ( now - _last_send_keepalive >= _max_client_timeout )
    {
       // keep alive failed

        return FALSE ;
    }
   }

  return TRUE;
}

위와 같은 형식으로 처리하는 루틴을 첨가하였다.

해결에 도움을 준 코에군에게 무한한 감사를 (코에군 갱장해!!)

written by 광이랑

사진 섹션이라고 만들어 놓구 사진 한장 안 올리는것은 올봄에 찍은 사진을 현상할려고 갔던 여의도 Skopi 가 사라졌기 때문이라고 무리하게 변명을 해보는 바이다. 그것도 아주 강력하게!!!

그래도 너무 없는것이 안타까워서 , 예전에 찍었던 사진들을 쭈욱 둘러보는 중에 괜찮은 사진들을 여기에 다시 올려볼까 한다.  싸이에서는 크기의 압박에 사진을 줄여서 올려야만 했던걸 여기는 전체 크기로 올릴 수가 있을꺼 같아서 그것은 마음에 드는바이나, 역시 사진을 맡겨야 하는 것을 귀찮아하는 게으름의 압박은 어찌할 도리가 없다.

사용자 삽입 이미지

평화로워 보이는 안면도의 석양이다. 이날 갔을때가 가장 석양이 좋았던거 같다. 하늘을 물들인 석양이 갯벌까지 물들이며 아름다운 풍경을 만들어 낸다.

역시 평화로워 보이는 풍경에는 안 들어갈 수가 없는 행복한 연인들의 모습이다.

그들은 행복을 가장하고 있을것이다.... 그들은 불륜일것이다..
아아 마음이 피폐해지고 있어요. ㅜ.ㅜ


써놓구 보니 불륜이면 어떤가 행복해 하고 있는데 . 부녀지간 이였을꺼야 하는게 더 위안이 되려나?  점점 미쳐가는구나 -ㅅ-

파일 날짜는 2003년 1월로 되어 있지만 실제로는 2002년 8~9월쯤일것이다.
점심은 호텔 뷔페로 때우고, 작은 호텔 뷔페였는데 참치 통채로 회를 떠서 줘서 , 즐겨 먹지는 않는 편이지만 쇽쇽 먹어주고, 별에 별 첨보는 요리들이 다 나와서 배는 부르지만 적지않게 손이 가게 해주는 식단이라고 볼 수있다.

점심을 먹구 나서 이태원과 남산을 드라이브 했는데 워 눈온 풍경이 이리 멋질줄이야 정말 멋진 풍경이라 사진기를 두고 온게 너무 후회되는 배경이였다.

차 주차하고 산책겸 해서 둘러보는 이대 앞길의 모습은 눈이 숑숑 나리는 풍경이라 정말 성탄절이 다가왔음을 느끼게 해준다.

오후의 홍차에 가서 퀄리티 시즌 얼그레이를 시켰다. 역시 향은 일품이나 , 이정도는 나도 끓일줄 안다고.. 마스터는 어디간겨!!!!


암튼 즐거운 한때를 보냈음.
사용자 삽입 이미지

그림은 눈오는 뉴욕의 거리


평점

뷔페 - 70점
눈온 거리 - 95점
이대 앞 거리 - 80점
오후의 홍차 's 퀄리티 시즌 얼그레이 - 60점

기쁜 하루라 볼 수 있는가?

10년전 지금 이맘때쯤에 저는 고민을 했었습니다. 어떤 프로그래머가 될것인가 하는 고민이였지요.이런 저런 고민 끝에 윈도 프로그래머로서 살아가기로 마음을 먹었습니다.

그렇게 마음을 먹구, 지금은 10년째 프로그래머로서 살아오고 있습니다. 10년동안 살아오면서 윈도우쪽만 프로그래밍을 했던건 아니니 그때 했던 고민 자체는 우스운 일이 되버렸습니다.
그동안 남과 비슷한 일을 해왔다는 생각이 별로 들지 않는걸 보면 , 독특한 일도 참 많이 해봤던것 같습니다. 그리고 나서 생각해보니 내가 무엇을 잘하는지 나 자신도 잘 알지 못합니다. 10년동안 살아온 방식을 후회하느냐? 절대 그렇지 않습니다. 전 기술자(Engineer)로 살아온걸 후회하지 않습니다. 다만 무엇을 하고 살아왔냐에 대해서 저는 정확히 말을 할 수가 없을 뿐입니다.

기존에는 '남에게 말할 필요가 무엇이 있는가 나만 잘하면 되지' 내가 잘하고 있다는걸 세상에 내가 열심히 하고 있다는 걸 적어도 '나'만은 알고 있지 않는가 라고 생각했었습니다. 그게 맞다고 생각했구요. 남들이 뭐라고 하건, 전 내길을 열심히 가고 있으면 된다고 생각했습니다.

하지만 최근에 친우와의 대화끝에 느껴진 바가 있어서 생각을 바꿨습니다.
역시 내가 하고 있는 분야에 대해서 다른 사람에게는 말할 필요가 느껴집니다. ( 최소한 그
다른 사람이 내 자신 일지라도 말이죠 )

엔지니어와 테크니컬 리더의 차이는 '흔적' 의 차이라고 생각합니다. 흔적이 존재 하느냐 하지 않느냐에 따라서 그 차이가 납니다.
그래서 다른 사람들이 흔적을 보면서 그사람이 하고 있는 일을 이해할때 , 또는 도움을 받을때 그때서야 그 차이가 확연히 두드러 집니다. 은거하고 있는 고수중에서 이런 분들이 있을 수는 있습니다. '워 실력도 안되는 놈들이 나댄다. 누가 그딴 책 몰라서 안쓰냐 , 귀찮아서 안쓸뿐이다. ' 그렇습니다. 그렇게 자기 위안들을 하고 있을 수도 있구, 또 실제로 그 분들이 실력이 흔적을 남기는 분들보다 더 고수 일 수도 있습니다. 하지만 주변의 평가는 그렇지 않습니다. '흔적'을 남기는 분이 테크니컬 리더로 더 인정을 받지요. 누구나 다 아는 사항이지만 실제로 하기가 힘든것이 그런 일입니다. 열심히 흔적을 남기는 사람만이 리더로서 살아갑니다.

예컨대 제 생각의 요약은 간단합니다. 흔적을 남길 필요성이 있다는 거지요 , 얼마전에 봤던 자료에 의하면 상위급 기술자들에 대한 척도가 제가 말하는 '흔적' 이라는겁니다. 개인 위키를 소유한 사람을 최상급 기술자로 치구요 (지식 + 사람에 대한 매니징 능력으로 본다고 합니다) , 책을 낸 사람을 역시 상급 기술자로 친다고 합니다. (지식을 소유하고 표현할 수 있는 척도로 보지요)

하다 못해 책이 아니라도 좋습니다. 다만 자기가 무엇을 했는지 내 자신의 박물관이라도 있으면 좋겠다는 생각이 듭니다. 그래서 얼마나 오래 걸릴지는 모르지만 최근에 한 일부터 정리를 시작할까 마음 먹었습니다.

글제목 그대로 더 높은곳으로 가기 위해서 입니다.

울어 줄 이도, 우러러 줄 이도 없이 끝없는 어둠에 묻혀 버린 영웅이 많다. 그건 그들을 기리는 시인이 없었기 때문이다 - 호라티우스

Written by Crazia



내년 5월 4일 전 세계 대 개봉 . 적으로 모래 모래 열매를 먹은 사람이 나오는군요 ㅋㅋ
새벽까지 일하다가 , 내가 하는 일에 대해서 생각하고 있습니다.

후. 쉽지 않구나 라고 그래서 스스로 용기를 심어줄까 생각합니다.


- 꿈을 품고 무언가 할 수 있다면 그것을 시작하라. 새로운 일을 시작하는 용기 속에 당신의 천재성과 능력과 기적이 모두 숨어 있다. (괴테)


힘내자 ^^

ㅋㅋ

+ Recent posts