2월 172010
 

NS2(네트워크 시뮬레이터)를 설치 할 때 에러가 발생하였다.
 
./install을 수행하고 느긋하게 기다리고 있는데 아래의 에러가 발생하였다.

 ld: libotcl.so: hidden symbol `__stack_chk_fail_local’ isn’t defined
ld: final link failed: Nonrepresentable section on output
make: *** [libotcl.so] Error 1
otcl-1.13 make failed! Exiting …

그래서 구글신에게 문의 결과 gcc의 버젼문제 때문이라고 한다.
 [참조: http://blog.ceglug.org/venkat/?p=26 ]

이 문제는 아래의 문장을 추가함으로서 해결된다.

 CC=gcc-4.3 ./install

gcc 버젼을 임의로 집어넣는 것이다. 성공하였다. ./validation 도 성공!!

2월 152010
 

ATmega128보드에 간단하게 외부 인터럽트가 발쌩할 때마다 현재 Count를 나타내는 2진수 값을 LED로 출력하는 코드를 연습삼아 만들어 보았다.

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
typedef unsigned char Byte;
volatile Byte count;

ISR(INT0_vect)
{
    count++;
}
void Interrupt_init(void)
{
    EICRA = 0x02; // 트리거 방식설정
    EIMSK = 0x01; // 인터럽트 Enable
    DDRD = 0x00;
    SREG |= 0x80;
}
int main(void)
{
    Interrupt_init();
    DDRB = 0xff;
    count = 0;
    while(1)
    {
        PORTB = ~count;
        if (count >= 0xff) count = 0;
    }

    return 0;
}

여기서 중요한 점은 전역변수로 선언되어 있는 ‘count’변수는 ‘volatile’이라는 키워드가 설정되어 있어야 한다는 것이다.

 

 

volatile 키워드는 레지스터 변수로 사용되지 않아야한다는 것을 알리는 키워드이다. 보통 하드웨어 주소 또는 다른프로그램과 공유되는 데이터에 지정한다고 한다.

 

Reference

[1]이응혁 외 2명, “AVR ATmega128 마이크로컨트롤러”, ITC, 2009

 

9월 012009
 

 안녕하세요.

 이번에는 해군 장교계급 번역의 오역에 대해서이야기 해 볼까 합니다. 유선방송에서 ‘맨 오브 오너’를 하는 것을 보면서 모군인 해군의 기억으로 불태우고 있던 도중이였습니다.’오옷!! 셈당이다.. 라든지 빵모네.. 라든지…’하면서 말이죠.(해군용어라 죄송합니다. 셈당은 셈브레이 당가리를 말하는걸로서 해상병전투복(하늘색와이셔츠에청바지)을 이야기 하는거고 빵모는 해군정모를 말합니다) 그리고 옛날에 하사, 중사도 셈당을입었다는 XX사 근무당시 원사님의 말을 기억하며 감상하고 있었습니다. 하사가 PO1 이고 병장이 PO2이죠.. (참조:해군계급장 http://navy.mil.kr/pds/hongbo/navypictorial_1_1.jsp ) 그런데 판사로 나오는장교가 있더군요..

 자기가 XX 대위라고 하더군요. 정복에 분명 대령 계급장을 달고  있었는데 말이죠.

 병이나 부사관이야 같지 않으니까 이해할 수 있지만 미해군과 한국해군의 장교 계급은 개수부터 레벨까지 같으니까요.

  위 사진은 미해군대령계급장입니다.

 저는 대령이 대위로 강등된 장면을 보았습니다. 이는 해군의 영문 계급의 명칭이 틀리기 때문입니다. 육군은 대위가 Captain인반면 해군은 Lieutenant입니다 해군의 Lieutenant는 육군의 소/중위와 명칭이 같죠. 이런 문제가 있다 보니상황이나 문맥, 화면으로 파악해야 하는데요. 위 경우는 해군영화인데도 그런 치명적인 우를 범하고 말았던 것이죠. 이는일본애니에서 중좌(중령에해당)를 중사로 만들어 버린 우와 같다고 생각합니다. 아마 발음이 중사랑 비슷했기 때문이라는 이야기를 하겠지만요. 전쟁영화를번역한다면 대충 기반지식은 어느정도 알고 번역하는 것도 중요하다고 생각됩니다.(감수라던지요) 그냥 문서 던져줬으니 번역해가 아닌좀 더 관심을 가지고 퀄리티 높은 번역을 해주었으면 좋겠습니다. 뭐.. 번역가는 군사전문가가 아니라는건 압니다만.. 뭐 제희망사항이랄까요..

아래는 계급별 영문 비교 표입니다.

  육 군
(ARMY)
해 군
(NAVY)
공 군
(AIR FORCE)
해 병 대
(MARINE CORPS)
대 장 GENERAL ADMIRAL GENERAL NONE
중 장 LIEUTENANT
GENERAL
VICE
ADMIRAL
LIEUTENANT
GENERAL
LIEUTENANT
GENERAL
소 장 MAJOR
GENERAL
REAR ADMIRAL
UPPER HALF
MAJOR
GENERAL
MAJOR
GENERAL
준 장 BRIGADIER
GENERAL
REAR ADMIRAL
LOWER HALF
BRIGADIER
GENERAL
BRIGADIER
GENERAL
대 령 COLONEL CAPTAIN COLONEL COLONEL
중 령
LIEUTENANT COLONEL COMMANDER LIEUTENANT
COLONEL
LIEUTENANT
COLONEL
소 령
MAJOR LIEUTENANT
COMMANDER
MAJOR MAJOR
대 위 CAPTAIN LIEUTENANT CAPTAIN CAPTAIN
중 위 FIRST
LIEUTENANT
LIEUTENANT
JUNIOR GRADE
FIRST
LIEUTENANT
FIRST
LIEUTENANT
소 위
SECOND
LIEUTENANT
ENSIGN SECOND
LIEUTENANT
SECOND
LIEUTENANT
준 위
WARRANT
OFFICER
WARRANT
OFFICER
WARRANT
OFFICER
WARRANT
OFFICER
원 사 COMMAND
SERGEANT MAJOR
MASTER CHIEF
PETTY OFFICER
CHIEF MASTER
SERGEANT
MASTER GUNNERY
SERGEANT
상 사
MASTER
SERGEANT
SENIOR CHIEF
PETTY OFFICER
SENIOR MASTER
SERGEANT
MASTER
SERGEANT
중 사
SERSEANT
FIRST CLASS
CHIEF PETTY
OFFICER
MASTER
SERGEANT
GUNNNERY
SERGEANT
하 사 STAFF
SERGEANT
PETTY OFFICER
FIRST CLASS
TECHNICAL
SERGEANT
STAFF
SERGEANT
병 장 SERGEANT PETTY OFFICER
SECOND CLASS
STAFF
SERGEANT
SERGEANT
상 병 CORPORAL PETTY OFFICER
THIRD CLASS
SENIOR
AIRMAN
CORPORAL
일 병
PRIVATE
FIRST CLASS
SEAMAN AIRMAN
FIRST CLASS
LANCE
CORPORAL
이 병
PRIVATE SEAMAN
APPRENTICE
AIRMAN PRIVATE
FIRST CLASS

출처 : [기타] 인터넷 : 영어 잘했으면 원이 없겠다. 정말 !! http://cafe.naver.com/englishenglish.cafe

P.S. 이 내용은 kuniz37.egloos.com에서 가져온 것입니다. 같은 사람이 운영하는 것이니 다시 본 것이라도 깜짝놀라지 말아주세요^^;

9월 012009
 

 제가 제일 약한 종목은 사람이름 외우기 입니다.

 저는 해군이였기 때문에 역시 기수같은것도 외워야
했었는데요 처음에 이병으로가서 모든것이 긴장된 순간 기수+계습+이름을 외우느라 엄청나게 힘들었던 기억이 나네요. 때마침 우리
생활반에는 이름 비슷한 사람이 약 2쌍정도 있었기 때문에(실명거론은 안되므로) 엄청 힘들었습니다ㅜㅡ;

 하지만
여러분은 간과하고 있겠지만 동기 같은 경우에는 군번순서까지 기억하고 있어야 한다는 사실입니다. 저같은 경우 518기로 들어가서
동기가 한명 있었는데 제가 군번이 빨랐었죠. 모든 우선순위는 (생활반장>병>문관)순이라고 보시면 됩니다. 이병이라는
소싯적 때는 그 사실을 모르고 있다가 맞선임과 으슥한 곳에서 일대일 면담을 하기도 했답니다. 이는 병장 때 누군가를 선임에게
일대일면담시키는 계기가 되기도 합니다.

(문관과 같은 익숙치 않은 용어는 http://blog.naver.com/kky9410/120064697667 이곳을 참조하세요)

  뭐 예외가 있다면 직책이 높으면 그쪽을 우선시 했었다는 점인데요. 동기가 두명이상인데 생활반장보다 군번 빨라도 생활반장을 더 높게 친다죠.

 
그럼 이제 본론으로 들어가서 부사관이나 장교같은 간부도 마찬가지로 어딘가에 List를 쓰면 기수 때로는 군번순 까지 들어가서
순서를 적어주어야 합니다. ( 장교>부사관>병>군무원 순으로 순서를 적게 되있지만 보통
장교>부사관>군무원>병 순으로 쓴다죠.) 예전에 후임인가 선임이 행사 참가 리스트를 작성해서 체크하고 있었는데
같은 7급인 군무원인데도 자기가 순서가 더 빠른데 아래에 적었냐고 태클을 걸기도 했었지요.

  자 이제 한단계 더 어렵게 가봅시다. 이제 순서를 알았으니 이와 관련된 중요한 체크포인트가 생기지요. 우리나라에는 존비법 [尊卑法](상대높임법)이 존재한다는 사실입니다.

 여기서 문제하나 내보죠. 예를 들어서 ‘김병장, 심상병, 정일병’이 있을 때 정일병은 김병장에게 심상병이 작업나갔다는 것을 이야기 하고 싶습니다. 어떻게 해야할까요?

 1) 정일병 : “김병장님, 지금 심상병님이 지금 작업나가서 안게십니다.”
 2) 정일병 : “김병장, 거 심상병 작업나갔다.”
 3) 정일병 : “김병장님, 지금 심상병 지금 작업나가서 없습니다.”
 4) 정일병 : “김병장님, 지금 심상병 지금 작업나가서 없으십니다.”
 5) 정일병 : “김병장님, 지금 심상병님 지금 작업나가서 없습니다.”
 힌트
 백병장 : “정소위님, 안상사 지금 잠시 화장실 갔습니다.”

답은 3번 입니다.(긁어보세요)

 물론 그 반대의 경우도 조심해야겠죠. 정일병이 심상병에게 김병장이 상륙(휴가)나갔다는 것을 말하려면 어떻게 해야하는가? 맞춰보세요.
 
 1) 정일병 : “심상병님, 김병장님 지금 휴가 중이십니다.”
 2) 정일병 : “심상병님, 김병장 지금 휴가 중이십니다.”
 3) 정일병 : “심상병님, 김병장님 지금 휴가갔습니다.”
 4) 정일병 : “심상병, 지금 김병장 휴가 갔다.
 5) 정일병 : “심상병, 지금 김병장님 휴가 갔다? ㅋ

답은 1번입니다. (긁어보세요)

 하
지만 이 상대높임법을 사용할 때 동기면 무조건 높임을 하지 않는 등의 또 복잡함이 존재합니다. 저같은 경우 해군이였기 때문에
병들끼리 대화시에는 계급을 부르지 않고 무조건 ‘수병’이라고 부르면 되기 때문에 그나마 다행이라고 생각되었지만 ‘기수 크리’로
인하여 그닥 다행이라는 생각은 안들었습니다.

 자 위에 방법이 무조건 좋을까요? 꼭 그렇지는 않습니다. 때로는
‘뒷담화’ 또는 ‘샤바’ 등을 위해서 가끔씩 파괴 시켜야 될 경우가 존재하긴 합니다. 만약 김상병과 임상병(여기서 김상병이
기수가 높음)이 있다고 해봅시다. 그럼 정일병이 임상병에게 김병장이 휴가나갔다는 것을 말한다면, 원래 정석대로라면 이렇게 말했을
것입니다.

 ” 임상병님, 지금 김상병님 휴가 나가셨습니다.” 라고 말이죠.

 하지만 임상병과
정일병이랑은 정일병의 샤바로 인해 절친하고 김상병은 사이드(해군용어사전참조)에 최강자라고 해봅시다. 정일병과 임상병은 친해서
뒷이야기를 하기도 합니다. 그럴 때 위의 대사를 외치면 아마 불퀘해 할지도 모릅니다. 글쎄요. 여기서 부터는 그냥 모두 상상에
맡겨봐요~(법이 무서워요) “임상병님, 지금 김상병 휴가나갔습니다.” 외쳐주면 좋아합니다. 글쎄요. 왜그런지는 상상해 맡겨
봅시다!

  군대는 순서를 매우 중요시 여기는 곳입니다. 사람이름을 순서대로 적을 때도 계급순, 기수순, 군번순을
지키는 곳입니다. 심지어 군무원 조차도요. 외워야 할 것은 많지만 그쪽에 동화되어 같이 살다보면 또 금방 외워지는 것이
순서입니다. 아주 몸에 배게되죠. 아마 사회도 마찬가지일거라고 생각되요.

  여러분도 순서와 관련된 애피소드 없었나요. 하핫. 더 적고 싶지만 나름 필터링 해서 줄였답니다.

 여기서 나온 인물,단체,지명,교유명사,사건은 현실과는 관계없습니다. 그렇게 느껴지는 것은 여러분의 느낌입니다.

P.S. 이글루스의 글을 옮긴것입니다. 같은 글이 보여도 kuniz37.egloos.com에서 본 거라면 같은 곳에서 본 것입니다.

1월 262008
 

 2년 동안 지금까지 Youtube에서 3640만번 조회된 Canon 동영상입니다.

  이는 캐논(요한 파렐헬)을 락으로 새로 어레인지한 JerryC라고 하는 기타리스트에 의해 처음 연주 되었습니다. 그 이후 FunTwo라고 하는 닉으로 한국인기타리스트 임정현씨가 연주를 하여 이라고 하는 음악 사이트에 업로드 하였습니다. 이를 guitar80이라고 하는 익명의 어떤 사람이 Youtube에 올리면서 알려지게 되었습니다.

한번 감상해 보시죠?

[1] 위키백과 contributors. 임정현 [Internet]. 위키백과, ; 2007 9 19, 16:19 UTC [cited 2008 1 26]. Available from: http://ko.wikipedia.org/w/index.php?title=%EC%9E%84%EC%A0%95%ED%98%84&oldid=1136001.
[2] Youtube 동영상, http://www.youtube.com/watch?v=QjA5faZF1A8&feature=related
[3] Web Guitar Wizard Revealed at Last. The New York Times. 2007 8 27. http://www.nytimes.com/2006/08/27/arts/television/27heff.html?ei=5088&en=5b993ce30a7b7039&ex=1314331200&partner=rssnyt&emc=rss&pagewanted=all

1월 242008
 

 

오늘은 윈도우에 있는(물론 여타 운영체제에도 있습니다.) HOSTS파일에 대해서 이야기 해볼까합니다.

우리는 인터넷을 좀 더 쉽게 사용하기 위해서, 도메인 이라고 하는 것을 사용하고 있습니다. 인터넷에 연결되어있는 컴퓨터는 모두 4바이트의 고유한 숫자(이 IP라고 함)를 이름처럼 부여받어서, 데이터를 전송하거나 받고 싶다면 그 숫자 주소로해서 데이터를 주고받게 되어 있습니다. 하지만 그런 (210.221.141.52와 같은) 4바이트 숫자는 기억하기 쉽지 않습니다. 그래서  na○er.com 이라거나 ○aum.net과 같은 기억하기 쉬운 문자를 사용하여 IP를 표현하는 방법을 생각하게 되었습니다. 그것이 도메인의 시작입니다.

도메인의 구조와 같은 것을 설명하면 복잡해지므로 네이버사전위키에 넘기고 HOSTS파일에 대해 이야기를 해보겠습니다.

HOSTS파일은 DNS서버에 질의(이 na○er.com의 아이피가 무엇이냐고 물어보는 것)를 시도하기 전에 윈도우에 있는 HOSTS파일을 먼저 검색하게 되어 있습니다. Administrator권한의 계정으로 로그인하여 ‘C:\WINDOWS\system32\drivers\etc’폴더에 있는 ‘HOSTS’파일을 열어보면 아래와 같은 내용이 있는 것을 볼 수 있습니다.

 

 

# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

 

127.0.0.1       localhost

 

위의 것을 간단히 보자면 #은 그 한 줄을 주석으로 처리한다는 뜻입니다. 그리고 제일 아래를 보면 ‘127.0.0.1    localhost’라고 써있는 것을 알 수 있습니다. 자.. 느낌이 오실 것 같습니다. 우리가 무심코 쓰고 있던 localhost라는 도메인은 위의 HOSTS 파일에 정의되어 있는 것을 사용한 것입니다. 만약 tistory.com을 임의의 216.52.14.25(아무 의미 없는 예제 IP에요.;)라는 아이피로 연결하고 싶다면 제일 아래줄에 엔터를 치고 아래와 같이 넣으면 됩니다.

 

 

127.0.0.1       localhost
216.52.14.25    tistory.com

 

이렇게 해 두면 인터넷익스플로러, FTP, Ping 등의 모든 TCP/IP를 사용하는 프로그램들이 tistory.com을 입력했을 때 216.52.14.25라는 아이피로 접속되게 됩니다.

물론 위의 방법을 악용해서 피싱(phishing)을 하기도 합니다. nav○r.com 이랑 완전 같은 가짜 홈페이지를 만들어 놓고 ‘게임방’과 같은 곳에 이런식으로 가짜 홈페이지를 HOSTS파일로 연결하게 되면 가짜홈페이지를 진짜 홈페이지로 착각하여 개인정보 유출을 당할 수도 있다는 것입니다. 피싱과 관련된 정보는 이 곳을 클릭해주세요.
물론 웹 게임을 열심히 하는 동생의 장래를 위해 아래와 같이 HOSTS파일에 추가하는 방법도 있습니다.

 

127.0.0.1  www.kart.nexon.com

 

위의 사용 법은 약간 극단적일 수도 있겠습니다? (웃음)

물론 와일드카드 *(All을 뜻함)와 같은 것은 불가능하니 하나하나 직접 입력해야 합니다.

지금까지 HOSTS파일을 이용하면 어떤일을 할 수 있는지 알아 보았습니다. 악용은 하지 마시고 이런 것도 있다는 것을 기억해서 당하는 일이 없도록 했으면 좋겠네요.

[1] naver 백과사전
[2] http://allifestyle.com/tt/eatgod/6871 – 블로그

1월 212008
 


  어제 휴가 나온김에 외식 한번 하자는 부모님의 제안에 갈매기 고기를 먹으러 가게 되었습니다.

  갈매기고기집에 도착해서 고기를 주문 했습니다.

  나 : “갈매기 3인분에 공기밥 2개요.”

  점원 : “예! 이모, 3에27번 2개요!”

  나 : ” 응? “

 뭐 평소였으면 그냥 듣고 넘어갈 일이였지만, 어떤 단어가 떠오르더군요.

 요즘 네트워크 책을 보고 있었던 것도 있는데,  “왠지 지금 점원의 말은 프로토콜이 아닐까?” 라고 생각한 것이였습니다.

 컴퓨터에서의 프로토콜에 대해서 네이버 백과사전을 찾아보면 “정보기기 사이 즉 컴퓨터끼리 또는 컴퓨터와 단말기 사이 등에서 정보교환이 필요한 경우, 이를 원활하게 하기 위하여 정한 여러 가지 통신규칙과 방법에 대한 약속 즉, 통신의 규약을 의미한다.”라고 써있습니다. 여기서 중요한 곳은 ‘규약’이라는 부분입니다. 제가 점원의 대사에서 ‘규약’을 보았습니다. 서빙하는 사람과 조리하는 사람 사이의 규약을 본 것입니다. 아마 위의 뜻은 갈매기 집이니까 3은 갈매기 고기 3인분을 의미하고 27은 테이블 번호 밥2개는 공기밥 2공기를 의미 했을 것입니다. 뭐 물론 이를 사용한 이유는 제가 말한 “갈매기 3인분에 공기밥2개 27번테이블”이란 내용을 바쁜데도 이야기 하고 있을 시간이 없었기 대문이겠죠. 그래서 자주사용되는 반복적인부분, 메뉴가 적다는것 등을 이용해서 암묵적으로 꼭필요한 내용을 첨가해서 어느센가 정해져 쓰고있는 것일 겁니다. 규약은 정해진 규칙을 뜻합니다. 만약 제가 이 가게의 신임 점원이라 잘 몰라서 주문을 조리사에게 전달할 때 내 마음대로 ‘2에 27 3이요’라고 말했다면 조리사는 규칙대로 ‘2에 27 3’을 해석(Parse)해서  손님은 아마 시키지도 안은 밥을 하나 더 받고 당황해 했을지도 모릅니다. 이와 동일하게 통신에서 사용되는 프로토콜도 비슷한형태로 되어 있습니다. 데이터 하나를 전송할 때도 마음대로 그냥 보내는게 아니고 ‘도착주소, 목적주소, 타입, 데이터’로 정해진 방법에 따라서 구조적으로 되어있다는 것이죠.

사용자 삽입 이미지

Ethernet Frame Structure

      표1.  이더넷 프레임 구조 (모든 이더넷 프레임은 위와 같이 구조적으로 정해진 방법대로 움직인다.
             이는 넓은 의미로 이더넷 통신을 위한 프로토콜이라고도 말 할 수 있다.

 자 그럼 프로토콜을 알아냄으로 할 수 있는 일을 상상해 볼까요? 만약 와우라는 게임이 서버와 어떻게 데이터를 주고 받는지 프로토콜을 알고 있다고 한다면, 와우 클라이언트가 아닌 직접 만든 임의의 프로그램을 이용해서 직접 서버로 프로토콜에 맞게 데이터를 만들어서 전송이 가능하므로 매우 힘들겠지만 콘솔로 작동하는 와우 게임이라거나 (와우를 클라이언트를 켜지 않아도 움직이는)봇도 만들 수 있고, 역으로 서버도 만들어 낼 수 있게 되는 겁니다. 왜냐하면 와우 클라이언트와 서버 사이의 프로토콜을 다 파악 했다는 것은 클라이언트에서 호출하는 반응을 우리가 임의로 만든 서버가 해줄 수있게 만들면 된다는 것이죠.

 우리가 쓰는 프로그램은 데이터를 주고 받기 위해 프로토콜이라는 것을 사용한다는 것을 아시면 되겟습니다. 간단한 채팅 프로그램을 만들 때도 서버와 클라이언트사이에 데이터를 정확하게 주고 받기 위해 ‘채팅 프로그램 프로토콜’을 만들어서 사용한다는 것이죠. 그리고 서버와 클라이언트 사이에 데이터가 어떤 방법으로 교환되는지 알 수 있기 때문에 서버와 클라이언트를 각자 다른사람이 개발 할 수 있게 되는거죠.

 이해 되셨나요?

  출처 : 1. 이더넷 4강 (그림)