개발자언어(주석달기 위한 영어)

주석은 주로 한글로 달지만(한글로 달아도 나중에는 뭔 소리인지 모를때가 있기 때문에) 외국쪽에 소스를 오픈해야 할때에는 영어 주석이 필수이다.
따라서, 구구절절 달지는 못해도 주로 간단하게 사용할만한 표현만 정리해 보았다.
주로 st 마이크로프로세서에서 제공하는 소스주석을 보고 공부하였다.

▷ 입력버퍼에 관한 pBuffer포인터 : pBuffer pointer to the input data buffer
▷ char타입을 가진 입력버퍼 포인터 : input buffer pointer with char type.
▷ 실제 타이머는 인트럽트 루틴에서 구현된다 :
  → actual timer is implemented in the interrupt routine.
이전 타이머 : the previous timer value.
▷ 이전 타이머 값과 새로 들어온 타이머값을 조합하여 ㅇㅇㅇ
  → ㅇㅇㅇ using combination of the previous timer value and the new one
▷ 전송할 바이트 수 가져오기(전송을 위해서 구성된 바이트 수)
  → Get the number of bytes configured for transfer
▷ 변수를 설명할 때 자주 사용하는 표현
  function(char aaa)
  aaa : this parameter
▷ START비트가 1일때, 이 비트들을 변경하면 안된다.(변경하는 것이 허락되지 않음)
  → Changing these bits when START bit is set is not allowed
▷ data length와 data size : 주로 2개를 혼용해서 사용하는 것 같다.
  원문주석 코드를 보면
  → length : 주로 16비트 데이터 길이와 같이 비트가 들어갈때 자주 사용.
     물론 데이터 길이에서도 length도 사용하였기에 조금 더 볼 필요가 있다.
  → size : 우리가 말하는 전체 데이터 사이즈를 말할때.
   예) SPI data size, DMA Memory data size,
▷ 전체 버퍼 길이 : Total Buffer Length 또는 the total length of the buffer
▷ 전체 버퍼을 읽어라 : Read the whole buffer.
▷ 남아 있는 바이트 수(어떤 연산이나 조작을 하고 남아 있는 바이트) :
  → the number of remaining bytes.
▷ 출력버퍼에 맞는(맞춘) 최대 메세지 크기 :
  → the maximum message size that fits in the output buffer.
▷ flag에 1로 셋팅 : set flag to 1.
▷ A에서 출력 버퍼로 복사 : copy A into the output buffer.
▷ 수신 데이터 : the received data.
▷ 장치로 부터 데이터를 읽는 방법은 : The way data is read out of the device is ~~
▷ 읽을 레지스터를 지정하는 것 : specifying which register is to be read
▷ 의 63%를 달성하는데 걸리는 시간 : Time for achieving 63% of ~
▷ 데이터 배열 data_pau8에 복사할 바이트수 : Number of bytes which are copied to data array data_pau8.



소요리문답 사람의 제일되는 목적에 대한 생각

학생때 공부한 교리중에 소요리 문답의 첫장에 사람의 제일되는 목적이 나온다.
사람의 제일되는 목적은 하나님을 영화롭게 하는 것과 영원토록 그를 즐거워 하는 것이다.
영화롭게 하는 것, 즐거워 하는 것...
모두 하나님을 찬양하고 예배로 귀결되는 것으로 배웠다.
물론 예배의 정의에 따라 논란의 거리가 되겠지만 좁은 의미로 우리가 아는 바로 그 예배로 정의하자.
주일낮시간에 드리는 그 예배. 찬양과 기도와 말씀속에서 하나님을 찬양하고 높이는 행위.
그렇게 예배에 대해서 좁게 해석하고 들어가 보자.
물론, 예배를 넓게 해석하고 [그를 즐거워 하는 것]의 의미를 넓히면 다양한 해석이 존재할 수 있다.
하지만, 그렇게 시작되면 한없이 확장되고 궤변으로까지 이어질 수 있으므로 일단 좁은 의미로 접근해 볼려고 한다.

하나님이 우리를 지으신 목적이 그를 찬양하고 예배하기 위해서...
지금 생각해 보니 참 동의 하기 어렵다.
부모의 마음으로 자식을 바라볼때, 자식의 제일되는 목적이 부모를 공경하기 위해서 태어난 것일까?
창조주가 자유의지를 주셨고 자유의지의 최종목적지가 나를 찬양하기 위해서???
뭐가 이상한 논리다.
웨스트민스트 소요리 문답이라는 것이 하루아침에 만들어 진 것이 아니고, 중세 종교개혁을 거치면서 여러 신학자들이 고민하고 고민하여서 만든 결과일텐데...
참으로 이해하기 어렵다.

내가 보는 관점은 이렇다.
청지기적인 관점으로 본다. 창조주가 인간을 만들고 자유의지를 주고 이 창조세계를 가꾸라고 맡긴 것이다.
창세기에도 그런 말씀이 나온다.
창조의 목적이라고 한 것 자체가 어쩌면 너무 나간 것이 아닐까 하는 생각도 든다.
창세기에도 인간을 창조하고 보시기 심히 좋았더라고 나오지 목적에 대해서 언급하지 않는다.
그냥 좋은 것이다. 그리고 이 우주의 작품에 대해서 만족해 하시면 흐뭇해 하는 것이다.
부모 자식의 관점으로 다시 돌아와도 부모는 왜 자식을 낳았나?
목적을 가지고 낳는 것일까? 아니다.
그냥 보기에 흐뭇하고 좋은 것이다.
그 뒤에는 그 자식이 성장해 가면서 잘되기를 바라고 그의 행복을 바란다.
부모존재에 대해서 부정하는 행위는 괘씸할 수 있으나 부모라면 자식 행복이 우선 아닐까? 동일하게 창조물과 피조물에 적용시켜도 마찬가지 아닐까?
차라리, 인간의 창조 목적이라기 보다는 창조 의미로 바라봐야 하지 않을까?
창세기에 언급된 것과 같이, 사람에게 모든 생물을 다스리라는 위임권을 준다.
잘 살아보라고, 목적이 아니라 권리를 준 것이다.
마치 부모가 자식을 키우면서 뒷바라지 하고 자식으로써 권리를 가지는 것처럼...
부모가 자식을 성장시켜 세상에 보내는 것처럼, 창조주도 인간에게 창조세계를 잘 가꾸면서 알콩달콩 잘 살아 보라고 말씀하신 것이 아닐까?
이미 나의 형상대로 지으신 이상, 어쩔 수 없이 너희의 자유의지에 맡길 수 밖에 없고 잘못되더래도 그 뒷처리 또한 창조주가 책임지는 것으로 귀결한 것이 아닐까?
그 책임지는 행위가 바로 독생자를 보내셔서 창조세계의 회복으로 이해해야 하지 않을까?

소프트웨어 교육의 필요성1(벌레잡기)


소프트웨어을 이용한 벌레(버그)잡기.
내가 말하는 소프트웨어는 간단한 소프트웨어를 의미하지 않는다.
코드라인이 적어도 5만라인 이상을 의미한다.
그만큼 복잡도가 있는 소프트웨어라는 전제하에 얘기한다.
그런 프로그램을 작성하기 위해서는 당연히 기초 프로그램을 익혀야 한다.
코딩을 하면 머리가 좋아지니 어쩌니 하는데 반만 동의한다.
기초를 익히는 것만으로 머리가 좋아진다는 것은 구라다.
if문 for문 또는 어셈블리와 변수등을 기본 재료를 배운다고 머리가 좋아져??
아니다. 단언컨대 아니다.
경험상으로는 디버깅하면서 사고가 논리적으로 많이 변한다.
간단한 프로그램도 디버깅은 필요하다. 하지만 그렇게 논리적인 사고가 없어도 가능하다.
코드가 워낙 간단하므로.
물론 처음에는 이것조차도 어렵다. 점하나 잘못찍어서 에러가 발생하는데 도통 알 수가 없다.
툴을 다루는데 서툰 것이지 논리적인 사고와는 별로 관련이 없다.
하지만, 복잡한 프로그램에서 버그가 발생한 경우에는 무턱대고 이것저것 고쳐 보아라.
벌레 잡기가 만만치 않다.
나도 생각하기 싫어하고 논리적인 사람은 아니다.
그렇다고 바보도 아니다.
계속해서 삽질을 하다 보면 이게 아닌데... 라는 생각이 든다.
그렇게 삽질하면서 근육을 키우다 보면 벌레를 잡기 위한 시나리오를 작성한다.
내가 하는 벌레 잡기 놀이는 아래와 같은 과정을 거친다.
1) 문제점에 대한 현상을 기록한다.
  -> 수사관이 증거를 수집하듯 증거가 될만한 현상은 캡처를 하든지 기록한다.
2) 수집된 현상(증거)를 가지고 예상 문제점1을 적어 본다.
3) 사고실험을 하여 논리적으로 맞지 않으면 예상 문제점2로 넘어간다.
4) 예상문제점2을 가지고 문제를 추적해 간다.
5) 다시 수정하여 수정 예상문제점2을 적고 다시 상세 추적하여
6) 문제점에 대한 원인을 정리
7) 원인에 대한 대책방법 수립

이런 과정을 거치면서 재현이 잘 되지 않는 문제점에 대해서 추적해 나간다.
회사라면 어려운 문제에 봉착했을때에는 집단지성을 이용하면 꽤 도움이 된다.
회의를 수집하여 자신만의 시나리오을 가지고 발표하고 사고실험을 하면서
아가리 파이터를 하다보면 조금 더 문제의 핵심에 다가갈 것이다.

소프트웨어 교육은 바로 이런 점에서 필요하다.
다른 어떤 교육보다도 논리적인 사고를 요구하고 훈련시키기 때문이다.
수사관들만 사건을 추적하는 것이 아니다. 소프트웨어 엔지니어라면 수사관들과 동일하게 문제점을 발견하고 실험해보고 추적해 가는 과정을 거치면서 논리적인 사고를 할 수 밖에 없다.


작품의 본질은 작품 그 자체일까? 아니면 주변요소도 포함될까?

작품의 본질은 작품 그 자체일까? 아니면 주변요소(작가,시대상등)도 포함될까?

여기서 작품이라 함은 미술작품 음악작품 문학작품등을 의미한다.
요 며칠전에 인문계열 출신자와 얘기를 나누다 보니 하나의 작품에 대해서 논할때 작가를 떠나서는 논할 수 없다란 의견을 들었다. 누가 그 작품을 창작해 내었는지는 중요한 요소라고. 누가 창작했는지에 따라 작품 이외의 시대상이라든지 주변 요소를 감지할 수 있다고한다. 작품 해석을 위해서는 때로는 불가피하게 시대적 배경이나 작가의 발자취가 필요하지만
선뜻 동의하기는 어려웠다.
그렇게 되면 편견이라는 요소를 배제할 수 있을까?

철학적 고찰을 위해서 또 소설을 써 보자.
어떤 부자 부부가 있는데 한명은 심리학자이고 또 다른 한명은 고고학자이다.
노년을 위해서 교외의 오래된 성을 구입하여 내부를 리모델링 하였다.
리모델리 하는중에 어떤 고고문서를 발견하였는데 베토벤 피아노 협주곡 6번이었다.
고고학자는 엄청난 희열과 함께 당장 세상에 발표할려고 했지만
심리학자는 그 전부터 해 보고 싶은 TEST가 있었다.
예술작품의 가치에 대한 사람들의 심리TEST였다.
TEST는 이러했다.
베토벤의 새로운 작품인 피아노 협주곡 6번을 내어서 온라인에 업로드 시켰다고 하자.
베토벤이 직접 작곡하였기에 베토벤풍의 느낌은 물씬 풍긴다.

자 이제 사람들의 반응은 어떨까?
과연 그 작품에 열광할까?
그 작품이 업로드 된 것도 모르니까 열광하지 않을 것이라고?
그럼 주요 매체에 광고비를 수십억원 들여서 복면가왕처럼
이 시대에 베토벤이 빙의했다면서 모든 사람에게 알렸다고 가정하자.
베토벤이 직접 작곡했지만 사람들은 아무도 그렇게 생각하지 않는다.
누군가 베일에 가려진 어떤 작곡가가 베토벤 흉내를 냈다고 생각할 것이다.
이제 스토리가 어떻게 전개될까?
광고비를 수십억씩 사용했으므로 관심있는 사람은 들어 볼 것이다.
그리고는 베토벤의 느낌이 나기는 나네... 딱 거기까지다.
열광하지는 않을 것이다.
왜냐면, 베토벤이 아니라고 생각하니까.
그리고 3개월뒤에 진짜 이 작품이 베토벤 피아노 협주곡 6번이라고 발표한다.
그때부터 수많은 검증작업을 거쳐서 진품인 것으로 밝혀진다면..
그때부터 대중들은 미친듯이 열광할 것이다.
무엇이 달라졌는가?
베토벤이 아니라고 했을때에는 열광하지 않다가 베토벤이라고 하니까 열광한다.
어떻게 해석할 수 있을까?
이 현상이 당연한가?
현상만을 놓고 보면 나 역시 인문학 출신자의 의견에 동의할 수 밖에 없다.
베토벤이라는 친필이 들어가니까 그 때부터 그 작품의 가치는 올라가니.
그런데 그 작품은 음표하나 바뀐 것이 없다.
그 전에도 후에도 그 작품은 동일한 것이다.

어떻게 결론내어야 할까?
작품에 가치를 부여한 인간들의 집단적인 행동양식?
아니면 해석의 차이.
작품은 전혀 변하지 않았는데 어떻게 해석하느냐에 따라서 바뀌어 버린 것이다.
본질적인 것이 비본질적인 다수의 생각에 따라서 변화한 것이다.
그냥 인간의 모순적인 행동양식을 정당화한 것이 아닐까?
자본주의 시장에서도 그 예는 쉽게 찾아 볼 수 있다.
어떤 제품이 있는데 그 제품은 변하지 않았는데 광고를 통해 어떤 해석을 하고 어떤 이미지를 심어주느냐에 따라서 그 가치는 얼마든지 변한다.
나에게는 적어도 이 작품의 문제도 그렇게 보인다.
작품 그 자체보다는 해석을 어떻게 하느냐에 따라 가치가 결정되고
그 해석은 끝내 다수의 대중들 또는 전문가에 의해서 평가하고
다수의 대중은 베토벤의 친필하나에 마음이 움직이므로 그 가치가 변하는 것이라고.

이런 문제도 그러할진대..
어쩌면 세상을 살아가면서 내 뜻과 관계없이 다수에 의해서 변질되는 것은
당연한 인간세계의 속성이 아닐까?

가상화폐에 대한 시각

요즈음 가상화폐 투자가 뜨겁다.
해서, 내 생각을 몇 자 적어볼까 한다.

시장경제는 실물경제와 금융경제 두가지로 구분한다.
두 가지 모두 서로 영향을 끼치면서 나아가게 되지만 내가 보는 관점은 악화가 양화를 구축하는 것 같다.
실수(real number)에 의해서 허수가 따라오는 것이 아니라 허수에 의해서 실수가 따라온다.
신용사회로 넘어오면서 모든 것이 허수로 변했다.
실질적인 것은 없다. 가상세계에서만 서로 왔다갔다할 뿐이다.
은행의 시초도 사기꾼에 의해서 출발하였지만 지금은 누구나가 다 인정하는 제도가
되었다. 그 당시에 누구에게나 이 은행얘기를 들려주면 사기꾼이라고 인정할 것이다.
하지만 오늘날에는 암묵적인 합의(아니면 합리적 합의)에 의해서 그냥 그렇게 사용하는 것이다.
뱅크런은 일어나지 않는다라는 전제조건하에 그렇게 돌아가는 것이다.
2차 세계대전이 끝나고 독일에서 미국에 맡겨둔 금을 다시 찾겠다고 하니 한바탕 난리를 친 것도 기억할 것이다.
내가 맡겨둔 것을 찾는다고 하니.. 없다..
내가 맡겨둔 금이 없다.
금도 은행과 마찬가지로 10을 전당포에 맡기면 시장에 유통되는 것은 100이다.
여기저기에 금보유 증서를 써 주어서 허수의 금이 90이 존재하는 것이다.
실물로써의 금은 7~8정도 유통되고 나머지는 모두 증서로써 유통될 뿐이다.
이 상황에서 독일이 내 금 10개를 달라고 하니.. 있을리가 없다.

이전에 유시민씨가 나와서 가상화폐에 대해서 설전을 벌이는 것을 보았다.
나로써는 조금 동의하기 어려웠다.
튤립을 예로 들면서 튤립이라는 실체가 있었지만 가상화폐는 실체가 없다는 것이다.
과연 그럴까?
지금의 자본 시장은 단지 트리거만 걸어주면 나머지는 실체와는 관계없다.
가상으로 돌아간다. 허수이다. 실물거래가 아닌 숫자만 왔다갔다할 뿐이다.
그런 관점에서 가상화폐를 바라 볼 필요가 있지 않을까 싶다.
최초의 트리거만 있으면 된다. 물레방아처럼 계속 끊임없이 외부에서 물이 공급되면서 돌아간다.
그런게 지금의 돈이 살아가는 세계이다.
가상화폐는 누군가에 의해서 트리거가 걸렸고 이미 지하세계의 검은돈으로 이미 많은 거래가 되고 있다.
이미 시장이 형성되었다라는 말이다.

그래서 가상화폐는 계속 유지될까?
그럴수도 있고 아닐수도 있다.
기술적인 관점에서는 비트코인은 배(실제지불금액)보다 배꼽(수수료)이 크다.
그래서 종국에는 비트코인은 폭락할까?
비트코인 자체만 보면 검증을 위한 채굴비용이 더 많이 들어감으로써 논리적으로 한계에 부딪혀서 신기루로 끝날 수도 있다.
그렇지만 이미 비트코인에 가치를 부여한 사람들 사이에서 시장이 형성되었기 때문에 다른 우회로를 만들어 가치를 계속 유지할 가능성이 더 높아 보인다.
또한 가상화폐 거래 사이트가 주식처럼 사고 팔게끔 함으로써 이미 기술적인 부분이 중요하지 않을 수도 있다.
그냥 수많은 인원이 참여한 하나의 시장이 되었고 그것이 실체가 있든 없든 이미 가치를 부여하였기에 가치가 있는 것이다.
정치적인 관점에서는 보면, 자본주의에서는 국가가 할 수 있는 최고의 힘은 통화량 조절이다.
자본주의 사회에서 국가가 이 권리를 포기한다면 주권을 포기하는 것과 같다.
따라서, 국가가 가상화폐를 발행할 수는 있지만 현재 통화되고 있는 가상화폐가 국가의 지위를 넘어서기는 어려울 것 같다.
물론, 이것도 단지 예상이다.
인간에게는 돌발행동이 있기 때문에 아무도 모른다이다.
아마도 현재의 가상화폐는 시장이 이미 형성되었기에 없어지기는 어려울 것으로 추측된다.
경쟁 관계에 있다가 점차 몇개의 굵직한 가상화폐만 남기고 통합될 것이다.
그리고 그후에는 다른 금,은,구리와 같은 원자재처럼 하나의 지위를 계속 유지할 것으로 예상된다.

18년 어느날.. 가상화폐를 한번 생각해 보다.

어차피 일어나는 일에 의미를 부여하는 사람들을 보며

주변에 누군가 로또 1등이 당첨되었다고 얘기를 듣게 되면..
아마 깜짝 놀랄 것이다.
물론 현실적으로 쉬쉬해서 모르겠지만 여하튼 내 주변의 누군가가 로또1등에 당첨되었다라는
소식을 들으면 깜짝 놀랄 것이다.
야.. 그 친구가 로또 1등 당첨되었다면서 소문은 순식간에 퍼져나갈 것이다.
신기하다. 내 주변에도 로또 1등 당첨되는 사람이 있다니..
그런데 조금 범위를 넓혀 보자.
전국으로 보면 로또 1등은 매주 1명도 아니고 여러명이 나온다.
5명이 나온다고 가정하고 이제 확률적으로 접근해 보자.
로또의 당첨 확률이 대략 1/8백만이고
내 지인이 로또를 사는 사람이 1000명이라고 가정하면,

한주에 5명이 나오니까
 5/8백만으로 숫자로 나오고 일년에 52주이므로
 5*52*1000/8백 = 30.769...

즉, 확률적으로 계산하면 30년이 지나면 내 주변에 반드시 로또 당첨자는 나오게 마련이다.
내가 로또에 당첨될 확률은 극히 미비하지만 내 주변에 로또 당첨자는 내가 오래살게 되면
언제나 한번쯤은 만나게 되어 있다.
단지 1등임을 밝히지 않아서 못 만날 뿐이지.

사람들은 높은 확률에 대해서 의미 부여하는 것을 좋아한다.
하지만 조금만 더 한걸음 물러서서 확률적인 관점에서 생각하면 전혀 새로울 것도 없는
너무나 당연하게 일어날 일이라는 것을 알 수 있다.

흔히들 교회내의 기독교 환자들을 보면 가끔씩 착각속에 살아가는 것 같다.
희박한 확률이 이루어지면 신의 뜻인냥...
신의 뜻은 성경에 기록되어 있다. 성경의 관점에서 맞으면 그게 신의 뜻이다.
사업에서 성공했다고...
그렇게 어려운 확률을 뚫었다면 뭔가 신의 계시가 있다고..
그 어려운 확률속에 당첨된 택한(?) 자들이 간증을 하면 묘한 설득력을 갖추게 된다.
로또의 관점으로 다시 돌아가면 그렇게 어려운 확률이지만
매주마다 몇 명의 당첨자는 거의 반드시 나오는 것이 지극히 당연한 일임을..
그래서 1등 당첨자의 말에 설득력을 부여하는 것이야말로 난센스가 아닌가?

당신은 생산자입니까 소비자입니까?

자본주의 사회에서는 누가 부를 얻게 될까?
당연히 금융에 대해서 허수놀음을 하는 자가 부를 가지게 될 확률이 높다.
두번째는 누구일까?
생산수단을 가지는 자가 부를 얻게 된다.
초기 자본주의 생산수단은 생산설비를 말할 것이다.
생산설비를 가지고 물건을 찍어내고 그 물건을 팔아서 돈을 버는 구조이다.
따라서, 이 시기에는 생산자와 소비자가 뚜렷이 구분되어 있다.
시대가 흘러 정보화 시대를 거치면서 생산수단은 바뀌게 된다.
정보, 즉 흔히 말하는 컨텐츠를 생산하는 자가 생산자이고 그것을 이용하는 자가 소비자가 되는 것이다. 동일하게 생산활동을 하는 자는 돈을 벌고 소비자는 돈을 지불하는 구조이다.
이 시대에는 많은 사람들이 소비자이면서 동시에 생산자이다.
산업화 시대에는 생산자가 될려면 생산설비의 초기 투자금이 많이 들어가므로 진압장벽이 꽤 높다. 하지만 지금은 아니다. 약간의 지식만 있으면 누구나 생산자가 된다. 물론 성공한 생산자이냐 아니냐는 별개의 문제지만..

나는 얼마나 많은 정보를 생산해 내고 있는지를 돌아보게 된다.
거의 전무하다.
산업화시대의 생산수단을 가질려고만 하고 정작 정보화시대에서는 소비만 한다.
시대가 변한 것을 느끼면서도 정작 시대에 맞지 않는 옷을 입은 내 자신.



왜 낮은 음을 화음으로 연주하면 불편하게 들릴까?

C코드의 경우에는 도,미,솔이라는 3가지 음으로 구성된다. 피아노나 기타로 연주하면 전혀 불편함 없이 아름답게 들린다. 그런데 더블베이스(베이스기타)로 도,미,솔을 누르고 연주하면 뭔가 불협화음처럼 들린다. (피아노에서도 낮은 옥타브에서 C코드를 치면...