역시 러시아 소설은 이름 때문에 참 헷갈린다라는 것을 다시 한번 느겼다.
책읽기-안나카레니나
소프트웨어 버그 잡기 교훈.
1. 조금 더 찬찬히 바라보자.
문제추적을 하다가 원인을 발견하고 이것만 고치면 되겠다 생각했는데...
어 뭔가 조금 이상하네.. A케이스이 경우에는 딱 들어맞는데 B케이스는 왜 일어났지?
B케이스는 조금 이해가 안되네.
이럴 경우, 보통 바쁜 일정에 쫓기다 보면 A케이스만 대책을 세워서 해결했다고 문제를 클로즈시켜 버린다.
시간이 지나면 이 문제의 경우에는 제대로 대책이 되지 않았든지 아니면 또 다른 파생버그를 일으킬 가능성이 아주 높다. 경험상으로 거의 반드시 나중에 나를 괴롭힌다.
그래서 얻은 교훈은 조금 더 여유롭게 가는 것이 전체 프로젝트를 단축시킨다.
B케이스가 발견되면 당연히 검토를 해야 하고 그리고 조금 더 한발짝 물러나서 다른 파생버그는 없을지, 전체적으로 한번 더 바라본 후에 클로즈 시키는 것이 좋다.
한번씩 설계는 결백증환자가 맡는 것이 좋지 않을까라는 생각이 든다.
뭔가 여지를 남겨두면 그것들이 점점 쌓여서 복잡해 지고, 시간이 지날수록 실타래가 복잡하게 꼬이듯이 문제 해결을 할 수가 없다. 그래서 거대한 성을 쌓듯이 단계단계, 반듯하게 쌓아가야 한다. 그런 면에서 결백증이 필요할 것 같다. 프로그램을 작성하는 것이 중요한 것이 아니라 어떻게 검증할 것인지에 초점을 맞추어 벽돌을 쌓아가야 할 것이다.
테슬라3 - 테슬라의 자율주행 향방
그럼 테슬라는 자율주행의 선두주자가 될 수 있을까?
아직까지는 여러 전문가들이 지적하듯이 테슬라의 오토파일럿은 주행보조장치에 불과하다.
하지만, 현재까지는 주행보조장치로써의 주행능력은 타회사와 비교하여 탁월하다.
테슬라의 오토파일럿에 맡겨두고 졸음운전하는 대단히 용감(?)한 운전자들까지 많이 있으니.
테슬라의 주행데이터 하루치는 지금까지 구글의 웨이모가 테스트 주행데이터와 맞먹는다고 한다.
자율주행도 어차피 기계학습이다. 기계학습에 있어서는 학습데이터의 양과 질이 승패에 결정적인 영향을 미친다.
여기서도 일론머스크의 사업수단(혹은 사기)이 발휘되었다. 아직 자율주행도 아니면서 여러 마루타들을 태우고 다니면서(그것도 돈을 주면서 마루타를 자처한다) 주행 데이터를 수집하고 있다.
실험실 환경이 아니라 수많은 나라에서 아주 생생한 필드데이터를 수집하고 있다. 정말 대단하다.
다른 자동차회사는 목숨을 담보로 이런 만행(?)을 저지르는 것은 윤리 문제라고 생각할 것이다.
하지만 일론머스크는 교묘하게 자율주행같은 보조장치로 둔감하여 마루타 놀이를 하고 있다.
위험천만한 행위이지만 사업에 있어서는 절대적으로 유리한 위치를 차지해 버렸다.
구글 웨이모는 5단계를 목표로 움직이면서 끊임없이 오류를 보완하면서 완벽을 기하는 반면에 테슬라는 이윤을 취득하면서 자율주행 2단계부터 바로 시장에 진입하였다.
다른 자동차 회사는 걸음마 수준의 주행보조장치를 활용한 반면에 테슬라는 과감하게 자율주행이라는 이름으로 포장하여 데이터수집이라는 빅 픽쳐를 그리면서 자율주행시장에 들어갔다.
모든 전문가들은 테슬라의 자율주행 수준은 형편없는 수준으로 취급한다. 실제로 시내운전에서 테슬라의 자율주행은 공개된 적이 없다. 고속도로 운전도 한번씩 오류가 발생하는 것이 테슬라의 현실이다.
그러면 앞으로는 어떻게 전개될까?
테슬라가 과연 이 시장에서 선두로 나갈 수 있을까? 아니면 사기캐릭으로 어느 시점에서 급격하게 회사는 곤두박질 칠까?
테슬라의 자율주행은 카메라 + RADAR(전파로 사물인식)방식이고 웨이모는 RIDAR(빛으로 사물인식-섬세하게 인식)방식이다.
2개의 방식은 장단점이 존재한다. 전문가들은 대부분 RIDAR방식이 여러모로 우수하지만 가격때문에 상용화에 걸림돌이 되지만 양산체제로 들어가면 현실적인 가격으로 내려올 것으로 예상한다.
어떤 사람은 RADAR방식은 절대로 자율주행을 완성할 수 없다라고 단언까지 하면서 RIDAR을 이용한 구글이나 포드등이 최종승자라고 호언장담을 한다.
기술력도 구글이 5단계에 근접했지만 테슬라는 겨우 걸음마 수준이라고 말한다.
물론 지금까지의 기술력은 전문가들이 말하는 것에 동의한다. 하지만 앞으로 그럴 것이라는 것에는 동의하기 어렵다.
RIDAR가 뛰어난 것은 지금까지의 성능이다. 하지만,이론적으로는 RADAR(카메라 + 전파 조합)도 얼마든지 자율주행이 가능하리라고 나는 생각한다.
설령, RADAR방식으로 센싱이 불가능한 부분이 있더래도 다른 장치의 추가(소리, 초음파, 사물간통신등)로 얼마든지 극복가능하리라 생각한다.
오히려 빛을 이용한 RIDAR는 안개나 기타 악천후에서 불리할 수도 있으므로 두고 볼 일이다.
내가 테슬라의 자율주행 기술을 주목해서 보는 것은 압도적인 데이터 양이라는 것이다.
여기에 가중치를 높게 두어서 평가를 했다. AI시대에서 기술이라는 것은, 기계학습을 시킬 수 있는 데이터양과 질의 문제라고 생각한다.하루만에 구글의 전체 데이터를 수집하는 양과 실제 필드에서 벌어지고 있는 데이터를 수집하고 있는 질!
이 승부는 5년 정도가 지나면 대략 윤곽이 드러나리라 생각한다.
자율주행의 헤게모니를 잡지 못한 테슬라는 한편의 사기극으로 끝날 것이지만 이 모든 것을 또 극복한다면 최종승자로 남아 있을 것이다.
물론 사업성과 사기성의 경계를 모호하게 줄타기하는 머스크라면 빅데이터를 타업체에 제시하면서 협업으로 극복할 수도 있겠지만...
야튼.. 기대된다. 앞으로의 향방이. ^^
테슬라2 - 테슬라는 어느 기술에 투자하고 있는가?
테슬라는 계속 승승장구할까?
참고로, 나는 테슬라를 좋아하지만 테슬라 주식은 없다.
주식이랑 회사의 성장과는 별개라고 생각하기 때문이다. 주식이라는 것은 현시점에서 이미 미래가치를 반영하고 있으므로.
책을 읽으면서 느낀점은 테슬라는 하드웨어에는 관심이 없다라는 것을 느꼈다.
단적인 예로 하드웨어 관한 특허는 시장에 무료로 공개했다. 다임러든 도요타든 누구든지 로열티 프리로 사용하도록 특허를 개방했다.
의도는 지구환경를 위해서 신재생 에너지 시장의 파이를 키우겠다라고 하는데... 자선 사업가도 아니고 과연 그럴까? 책을 읽어보고 시장을 읽어보니 아닌 것 같다. 이미 소프트웨어로 핵심가치로 전환한 것 같다.
FSD의 가격도 점점 올려 받기 시작하고 자동차를 구독 시장으로 전환까지 생각하고 있다라는 기사를 심심찮게 본다.
OTA(소프트웨어 자동업그레이드 기능)까지 탑재하여 여느 하드웨어 업체와의 차별성을 선언함으로써 마치 스마트폰처럼 자동차의 기능을 소프트웨어에 의해서 업그레이드 시켜나간다.
너희들은 껍데기에 투자해라. 우리는 스포츠카와 같은 디자인과 성능으로 열광시킨후에 소프트웨어 집중하겠다란 메세지로 들린다.
기기와 사람간의 인터페이스도 모든 버튼들을 과감하게 없애버리고 태블릿 하나만 중앙에 떡하니 자리잡고 있다.
모든 자동차 회사들이 차의 가치를 높이기 위해서 실내인테리어에 돈과 에너지를 쏟아 부을 시간에 테슬라의 방향은 달랐다.
시장을 선도하기 위해서 프레임 체인지를 선언했다.
이것도 하고 저것도 하고 모든 면에서 뛰어나는 것이 아니라 포기할 것은 포기하면서 주요 핵심가치에 투자하면서 소비자의 선택을 기다렸다.
하드웨어가 아니라 미래는 소프트웨어적인 가치에 배팅을 한 것이다.
그렇다고 이 글을 읽고 오해하지는 마시라. 충돌안전성 및 기타 여러가지 하드웨어 분야에서도 주요 부분은 선두급이다.
다만 도장불량이나 단차등 주로 인간이 하는 조립에 관해서는 어쩔 수 없는 문제점으로 인식하고 그다지 신경을 써지 않는 분위기다.
다른 차량업체라면 이런 불량이나 디자인수준이라면 부끄러워서 차량 출고를 하지 않았을 것이다.
그럼 테슬라가 말하는 소프트웨어중의 최고 소프트웨어는 뭘까?
당연히 자율주행일 것이며, 다음편에서는 이 자율주행의 헤게모니를 테슬라가 잡을 수 있을지 없을지에 대해서 생각을 조금 더 정리해 봐야겠다.
테슬라1 - 테슬라는 어떻게 자동차 시장진입에 성공했을까?
어느날 갑자기 테슬라의 성공신화가 궁금해졌다.
일론 머스크는 어떤 또라이기에 자동차 시장에서 진입해서 성공할 수 있었지?
10년전 휴대폰 시장도 엄청나게 치열한 전쟁터였다. 아무나 뛰어들 수 있는 시장이 아니었다.
웬만한 자본과 기획력을 가지고 이 시장에 진입하면 백전백패인 것은 불을 보듯 뻔한 시장이었다.
하지만, 잡스는 보기좋게 성공했다. 심플한 디자인과 전세계 수십만의 개발자에게 앱개발에 대한 개발이익을 돌려주면서 시장진입에 성공했다.
탁월한 비지니스맨이다. 그래... 어쩌면 휴대폰은 새로운 개념과 발상의 전환으로 가능한 시장이었는지 모르겠다.
하지만, 자동차는?? 진입장벽이 너무 높다. 새로운 개념과 발상이 있어도 중견기업이 진입할 시장이 아니었고 대기업이라도 함부로 들어갈 시장이 아니다.
삼성만 보더래도 그렇게 야심차게 준비했지만 이유야 어쨌든 손털고 나왔다. 안전에 관한 높은 기준과 자동차 부품업체와의 생태계, 그리고 판매망등 넘어야 할 산이 휴대폰과는 다르다.
느낌상으로는 휴대폰이 시장 진입에 성공할 확률이 1%라면 자동차는 0.0001%정도라도 될까?
도대체가 어떤 전략을 세웠기에 이 치열하고 말도 안되는 신화를 만들어 낸 것인지 궁금해서 견딜 수가 없었다.
당장, 도서관을 검색해서 을유문화사의 "테슬라 모터스"와 김영사의 "일론머스크,미래의 설계자" 책을 빌려서 읽기 시작했다.
약간 또라이 기질이 있기는 했지만 대단하다란는 찬사가 저절로 터져나왔다.
특히, 귀감이 되고 존경이 되는 부분은 핵심가치에 대해서는 양보하지 않았고 밀어 붙인 그의 뚝심이었다.
물론 그러다가 잘못 판단하여 사라져간 수많은 기업들도 많다. 특히 독재 CEO가 나이가 들수록 과거의 통찰력만 믿고 밀어붙이다가 흔히 망하는 시나리오..
일론머스크도 차량 프레임을 설계하면서 배터리는 자동차 밑바닥에 깔려야만 무게중심등 모든 문제가 풀린다는 것을 믿고 프레임 개발에 나섰다.
배터리를 바닥에 위치하도록 설계함으로써 트렁크에 대한 공간확보 및 자동차의 무게중심 확보, 그리고 실내 공간확보까지 가능함으로 진정한 전기차가 되기 위해서는 프레임 개발에 나서야 한다는 입장이었다.
하지만, 처음에 그가 전기차 시장에 뛰어들면서 조사한 바로는 자동차 메이커도 자신들의 부품을 만드는 것이 아니라 부품업체로터 공급받아서 조립만 하는 구조였다.
심지어 다임러같은 경우에는 조립마저 외부에 위탁하여 벤츠 로고만 자신들이 붙여서 판매하는 구조였다. 해 볼만 했다.
그렇게 많은 돈을 들이지 않고서도 자신들도 해 볼만한 시장이었다.
그런데 개발하면서 방향성이 바뀌었다. 처음에 100억만 들어가면 되는 돈이었는데 기존 프레임을 바꾸면 기존 자동차 부품도 사용할 수가 없다.
부품까지 개발해야 하고 모든 자동차 TEST와 배터리가 바닥에 위치함으로써 바닥면과 충돌에 의한 안전문제등 한두가지 문제가 아니다.
100억이 아니라 1000억이 들어갈지 1조가 들어갈지 장담할 수 없었다. 처음의 사업계획과 비교하여 자금조달의 문제도 생겼다.
여기서 감정이입을 해 보았다. 내가 저 입장이라면..
나라면 현재의 방향성에 대해서 확고한 신념이 있어도 사양을 수정할 것 같다.
내가 가진 자원의 한계내에서 새롭게 수정해 나갈 것 같다.
이 물건을 만들기 위해서는 이 기능만은 꼭 들어가야 하는 핵심가치이지만 내 한계을 설정하고 수정에 들어갈 것 같다.
3억의 사업계획을 했는데 30억이 들어간다면 최선은 아니라도 차선을, 차선이 아니라도 차차선을 선택하여 3억이내에 맞추어 기획할 것 같다.
사람이라면 자신의 가용자원안에서 생각하기 마련이다. 하지만 그는 이 말도 안되는 사업에 도전했다.
핵심가치라고 생각되는 문제에 대해서는 한치의 양보없이 밀어 붙였다. 물론 머스크의 사기성도 한 몫 했다. 벤처캐피탈의 시리즈 C까지 성공시키고 다임러의 연합, 부시대통령의 친환경 에너지 자금까지 타 먹으면서 어쨌든 자금의 위기까지 극복하면서 시장진입에 성공했다.
책을 읽으면서 그를 높게 보고 위대하게 보는 것이 다른 여러 요소들도 있지만 나에게 다가온 것은 핵심가치에 대한 안목과 통찰력과 그리고 그를 실현시키는 능력이었다.
논리적으로 보면 그의 행동이 맞지만 사람인지라 쉽지가 않다.
나는 본질찾기 놀이를 좋아한다.
사물을 보고 통찰하는데 도움이 된다. 성경을 해석함에 있어서도 철학적인 사고에도 그리고 프로그래밍의 벌레잡기 놀이에도 도움이 된다.
사업을 기획하는데 있어서 특히 새겨 들을만 하다.
이 제품의 핵심기능이 무엇인지?
특히 나같은 소기업이 신제품을 출시하기 위해서는 내 제품의 핵심기능은 무엇인지 수백번을 물어보면서 답해야 할 것이다.
다음번에 테슬라의 성공신화가 계속 지속될 수 있을련지 생각을 정리해 봐야겠다.
무엇을 위해 기도할 것인가?
기독교인들은 기도의 중요성에 대해서 귀가 따갑도록 들어왔다.
나 역시도 수없이 많은 기도의 설교와 책(몇 권 안되지만.ㅎㅎ)을 읽었다.
간증도 많이 들었다.기도의 필요성을 수없이 많이 강조하면서...
나도 여러 사람들과 기도의 제목을 나누면서 한가지 의문이 생긴다.
기도를 한다는 것은 뭘까?
무엇인가를 구한다라는 행위인데 뭘 구하는 것일까?
그렇게 고민을 할까봐 예수님은 친히 이렇게 기도하라면서 주기도문을 가르쳐 주셨다.
무슨 기도를 할 것인지는 주기도문속에 답이 있다라고 생각한다.
기도의 50%는 하나님의 이름을 높이고 그 뜻이 이루어지기를 구한면서.
나머지 50%는 우리의 생활속에는 일용한 양식, 그리고 유혹에 빠지지 않기를 기도한다.
한가지 예를 들어보자.
우리가 대학을 가야 된다면 어떤 대학을 가야될지 기도한다.
그럼 이 기도는 주기도문의 어디에 해당할까?
대학 가는 것이 일용한 양식과 죄의 유혹에 해당되는 기도인가?
아니면 하나님의 이름을 높이 올리고자 하는 기도인가?
그 속에 나의 욕망은 없는가? 내가 잘되기 위한 당위성으로서 하나님의 이름을 높이 올리 것에 연결하지는 않았는지
왜 어느 대학에 가야될지가 기도의 제목이 되어야 하는가?
한번 심각하게 논의해 볼 필요가 있다. 그동안 너무 당연시 되어 왔던 기도들.
결혼의 문제, 직장 선택의 문제등 중요한 선택을 하는 시점에서의 기도들.
하나님은 어떻게 보실까라는 관점에서 한번 생각해 보면, 내가 어느 대학에 가는지가 그 분의 입장에서 중요할까?
내가 서울대학을 가든 부산대학을 가든... 그게 그 분의 관심사 일까?
그 분의 입장에서는 그 대학에 가서 어떤 삶을 사는가가 중요한 초점이 아닐까?
정작 중요한 것은 대학 선택이 아니라 그 속에서의 과정이다.
대학 과정에서의 하나님과 동행이다.
나와 함께한다면 어느 대학가도 괜찮아라고 우리에게 말씀하실 것이다.
모든 결정가운데 선한 길로 인도해 주시고 어디를 가든지 함께해 달라고 기도해야 할 것이다.
관점이 달라져야 한다.
이제까지는 결과를 생각하면서 선택의 문제에 집중했다면 이제는 과정을 생각하면서 삶의 문제로 옮겨야 한다.
물론 아무렇게나 막 선택해라는 의미는 결코 아니다. 오해는 하지 마시라.
무엇인가를 결정할때 주의 깊게 성경을 다시 보면서 지혜를 구해야 한다.
실제로 선택에 따라 이후에 많은 것들이 달라지므로 그래서 인간들이 그렇게 고민하는 것이다.
하지만 그 결정은 내가 하는 것이고 내가 책임을 져야 한다.
그게 자유의지이다.
너무 하나님을 책임전가의 목적으로 사용하지 말라는 것이다.
어떤 선교단체가 짜장면을 먹을지 짬뽕을 먹을지를 두고 기도했다는 웃지 못할 에피소드가 있다.
세세한 하나하나까지 그분께 맡기고 나아간다라는 의미이지만 글쎄... 공감할 수 있을까? 어쩌면 주관적 영적경험에 치우친 지금의 기독교의 모습이 아닐까 생각한다.
자유의지의 실종.
아니, 어쩌면 자기 맘대로는 살지만 책임은 하나님이 져라는 책임전가의 삶에 더 가까울지도 모르겠다.
결론적으로 무엇을 기도해야 할까라고 질문을 던지면,
하나님의 선한 뜻이 이 땅에 이루어지기를 기도하고
그 뜻을 이루기 위해서 내가 도구가 되어서 잘 실현될 수 있도록 기도해야 할 것이다.
우리의 의지(유혹)의 문제에 대해서 기도하고 우리의 삶의 자세를 되돌아 보고
힘들때 함께 해 주심으로 이겨나갈 수 있게 기도해야 하지 않을까?
개발자언어(주석달기 위한 영어)
따라서, 구구절절 달지는 못해도 주로 간단하게 사용할만한 표현만 정리해 보았다.
주로 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.
왜 낮은 음을 화음으로 연주하면 불편하게 들릴까?
C코드의 경우에는 도,미,솔이라는 3가지 음으로 구성된다. 피아노나 기타로 연주하면 전혀 불편함 없이 아름답게 들린다. 그런데 더블베이스(베이스기타)로 도,미,솔을 누르고 연주하면 뭔가 불협화음처럼 들린다. (피아노에서도 낮은 옥타브에서 C코드를 치면...
-
우연히 뉴스를 보다가 재밌는 사진을 발견했다. 왕립학회에서 과학에 관한 사진을 게시하였는데 표면장력에 관한 사진이 올라와 있다. 마치 아인슈타인이 제시했던 공간의 휘어짐을 그대로 잘 표현한 것 같다. 그냥 격자무늬가 일반적인 공...
-
주변에 누군가 로또 1등이 당첨되었다고 얘기를 듣게 되면.. 아마 깜짝 놀랄 것이다. 물론 현실적으로 쉬쉬해서 모르겠지만 여하튼 내 주변의 누군가가 로또1등에 당첨되었다라는 소식을 들으면 깜짝 놀랄 것이다. 야.. 그 친구가 로또 1등 당첨되었...
-
자본주의 사회에서는 누가 부를 얻게 될까? 당연히 금융에 대해서 허수놀음을 하는 자가 부를 가지게 될 확률이 높다. 두번째는 누구일까? 생산수단을 가지는 자가 부를 얻게 된다. 초기 자본주의 생산수단은 생산설비를 말할 것이다. 생산설비를 가지...