블로그 이미지
kalstein

여러가지 프로그래밍 관련이나...신변잡기적인 글들을 남기는 블로그입니다. 지식은 나누는만큼 강력해집니다 ^^

Rss feed Tistory
잡동사니 2008. 8. 1. 13:59

책 읽기 시작...가능할까 -_-;;;

유명하고도 유명한...크누스 횽아의...

'The Art of Computer Programming'

을 읽기 시작했다. --;;; 이걸...읽기라고 해야될지 공부라고 해야될지?



앞에 조금 읽어봤는데...이거 뭐...-_-a;; 고딩때 한창 수학잘나갈때에도 잘 못하던 증명부터 시작이다 ^^;;;
에공에공...가뜩이나 우리나라에서 컴퓨터공학은 컴퓨터과학이 아니어서 수학을 위주로 하지는 않는다. 그게 지금 안습크리;;작열인셈.

예전 3학년때인가 4학년때...교수님께 여쭤본적이 있다.

'교수님, 저 책 좋아요?'
'음...좋기는한데...굳이 읽어볼 필요는 없을듯? 쉽게 추천하기는 힘들구나'

뭐 교수님 마음 잘 이해되고있다 -_-;;;;;
왠만큼 공부하는 책들은 사서보는편인데...다들 주로 산 후에 책장 진열용으로 사용된다기에, 사진않고 빌려서 보는중 ^^; 왠만큼 많이 봤다싶으면 구입해도 늦지않을꺼 같다.

과연 올해내에 다 볼수있을지? (물론 1권에 한해서 하는 얘기다. -_-;;;;)
,
Programming 2008. 7. 30. 10:54

Readers/Writer mutex 를 직접 구현한다면?

POSIX 스레드 동기화쪽에 보면...Readers/Writer mutex 객체가 따로 존재한다. 그런데...이게 자체 제공되지않는 시스템도 존재한단 말이지. (현재 몸담고있는...DSP쪽이라던가.)

그래서...혼자서 생각해봤는데, 와...이거 참 쉽지않다. writer끼리의 경쟁은 mutex로 정한다고 치더라도, readers와 writer의 경쟁은 어떻게 방지할 것인가?

그래서 결국은 구글신께 문의.

결과는 http://doc.trolltech.com/qq/qq11-mutex.html 여기.

아주 심플하다. ^^ semaphore랑 mutex 2가지만 시스템에서 제공하면 얼마든지 구현이 가능!!

,
잡동사니 2008. 7. 9. 10:11

너가 알고있는게 다가 아니다. 시야를 넓히자!

현재 회사에서...모 프로젝트를 진행중이라...뭔가 HW를 만들고 있는데, 우리가 만드려는것을 이미 전문업체에서 솔루션으로 제공할 수 있다고 하여 그 업체의 설명을 들어보게 되었다.

들어본 소감은...
'우왕ㅋ굳ㅋ'
.........

HW제작을 전문적으로 하는 사람들이 모인 회사라서 그런지 (총 인원 40명?정도의 외국 기업) 가능한 모든것을 HW회로로 매우 compact하게 제작되어있고, 그로 인한 SW부담이 현저히 저하. 그다지 좋지않은 CPU,DSP를 지니고도 부하량은 매우 널럴하게. 거참...

우리회사의 기존꺼는 어땠냐고? HW로 좀 구현하면 좋겠다...하면 이런저런 이유로 인하야 (다른 발상을 해야 되는데...그렇게 하질 못하니 기능하나 추가하려면 메모리레지스터 추가되어야지, 그외에 기타 등등 추가되어야되지, 그러면 열이 더 발생하고, 비싸지니 안된다...이런?) 죄다 안된다...그대로 가져가자... 최대한 덜 수정하고, 하지만 시장에서 요구되는 사항은 늘어나니 결국은 SW(CPU and DSP) 측에서 부담. 사실...HW보다 빠를수는 없으니...CPU,DSP 요구spec도 점점 높아지게 되고, 그러나 그만한 스펙을 가지는 녀석을 만들자면 비싸고. 진퇴양난이라고 해야되나? (물론...CPU,DSP쪽 인원들이 잘난것도 없다. -_-)

전부터 느껴왔던...'아 여기 정말 아마추어적인 사람들 많구나...'의 생각이 입증됨과 동시에, 나름 사람들이 컬쳐쇼크를 받은거 같아서 통쾌하기도 하고, 좀 씁쓸하기도 하고.




ps : http://kalstein.tistory.com/entry/대체무슨-생각일까 에서의 그'분'...과 함께 저 세미나후 식사를 하는데...왜 그동안 저 '님'께서...cache size가 크면 클수록 손해라고 주장하는지 알았다. cache miss가 나게되면 cache 전체를 refresh하는것으로 알고있던것. 그래서 친절히...'cache line 별로 관리되어지며, miss가 나도 line size(128 or 256바이트정도? 여튼 작은사이즈)만 DMA 전송으로 가져오기 때문에 큰 피해는 없다' 라고 말했지만...

'아니 그렇게하면 memory 주소 관리를 지가 무슨수로 해? 너가 잘못알고있는거야'

...이 아저씨야...그래서 MMU가 있는거고 그걸 더 좋게 하려고 TLB가 붙는거야...
신봉선의 유행어를 한마디 해주고 싶던데.  '뭐라 쳐 씨부리싼노' -.-
,
도서 2008. 7. 9. 09:51

초난감 기업의 조건

읽고난뒤...요약하자면...'삽질은 하지말것' 요정도? ^^;

MS가 이렇게 커진것은 정말 보기드문 운도 따라준거고...IBM의 몰락은 당연한거였고...
그 외에 한때 잘나가던 기업이 망한것들도...당연한거였고.

SW를 개발할때 절대로 라이벌 회사보다 Lightweight한 SW로 시장을 공략하지말것. 왜냐고?

SW는 구매시에 '기능'을 보고 사는것이지 가격,차지하는메모리,HDD용량을 보고 사는것이 아니니까.
물론 같은 기능을 가지고 있다면야 가격이 싸고, 메모리요구량이 적은것을 쓰겠지.
(요즘같이 메모리가 싼 시대에 1~20메가 메모리 더 쓴다고 뭐라고 하는 사람 있나? 잘 모르겠다.)
요구하는 '기능'이 구현되지않았다면 그 물건은 절대 팔리지않는다.

그리고 , 제품 포지셔닝을 확실히 할것. 일단 팀킬 제품은 만들지 말것. 대표적인 예로 word processor 시장을 들었는데...수많은 sw들이 생겼다 없어지고 결국 지금의 MS word만 남게된 상황을 잘 설명해주고 있었다.

아무래도...시장의 winner가 MS office가 상당히 부각되는 모습이었는데...(물론 점점 MS의 삽질이 늘어나는 얘기도 언급되어있다. 정품인증과 관련된 부분.) 더 좋고 powerpoint, excel, word간의 연동이 매우 잘되는 office를 내놓고, 라이벌업체들은 좀 허접한(?) 제품들을 영입해서 office군을 만들었지만 MS office만큼은 안되니 망해간다랄까.

책이 많이 두꺼운게 흠이라면 흠인데...나름 재밌게 읽어볼만한 책 ^^
,
도서 2008. 7. 4. 09:02

초난감 기업의 조건 - 읽기 시작하다.

뭐...잡담에 가까운 글이지만...그래도 책 관련 내용이니까 도서 카테고리로 낙인!

앞부분만 약간 읽기 시작했는데...오호 이거 왠지 재밌을것 같다. 뭐 IBM의 OS/2의 실패 이야기는...소싯적 아버지 회사가 IBM인지라...OS/2를 써보면서 '아...이거 WIN32만 지원하면 좋을텐데. 윈도보다 잘 죽지도 않고 좋은데' 란 생각을 했던 나에게 추억거리를 곰씹을 기회를 줄 것 같기도 하고...

솔직히 우리나라에서 프로젝트 실패 이야기는 잘 떠돌지않는다. 완전히 회사가 망하지않고서는. 하지만 '성공'한 프로젝트들 속에 많은 프로젝트가 실질적으로는 실패한 프로젝트다. 한 예로...내가 예전 산업체 다닐때 마지막으로 했던 H사의 프로젝트는...유지보수의 난해함으로 인한 실패한 프로젝트로 봐야한다. 그러나...외부적으로는 성공적인 프로젝트로 광고하겠지. ㅎㅎㅎ

그때 문제는...다중 DB를 사용하는것이었다. 그것도 속도를 위한 memory db를 사용한 수준이 아닌...10개였나? 뭐 그정도였고...DB들의 sync는 개발자가 직접-_-제작한 XML을 이용해서 제작되어졌었지. 왜냐고? 글쎄. 처음부터 아키텍쳐가 잘못 된것이고, 특히나 DB를 잘 만들어서 DB1개로 할 생각을 하지못했고 (역량이 딸려서.) 그리고 XML로 sync를 맞춘것은...TCP통신만 신뢰할줄 알았다고 해야되나. 여튼 그런식으로 하다보니...개발했던 인원이 어느정도 빠진 후에는 유지보수의 난해함으로 인해 계속 문제점은 발생하고...디버깅은 어렵고 ^^;;

나? 변명을  하자면...이미 아키텍쳐를 세운 다음에 투입되었고, 그것을 엎을만한 힘이 없었고...(계속 주장은 했었지만...) 뭐 여튼...그런 프로젝트를 했던 기억을 나게하는 책일듯 싶다. ㅎㅎㅎ

솔직히 현 회사에서도 기존에 소스를 만들었던 사람 한두사람이라도 없어지면 유지보수가 가능할지 의문인 부분이 많긴한데...하긴. 회사에 전적으로 묶인 사람들이 한둘이 아니니 괜찮으려나? (회사코앞의 집을 사고 - 집사는게 보통일이 아니니까. 돈이 넘치면 모를까 - 이만한 보수를 주는 회사가 국내엔 그렇게 많지않고. 플랫폼 잠금 이라던가 벤더 잠금..같은건 들어보긴했는데, 직장 잠금 이란말이 있나? 없으면 내가 쓰는게 최초가 될지도 하핫)

여튼 도서관에서 빌린 책이니...제시간내에 다 볼수있도록 열심히 읽어봐야겠다~

,
잡동사니 2008. 7. 1. 16:51

단순함의 미학.

이런 말이 있다.

Simple is beautiful.

충분히 동의하는바이다... 가만보면, 좀 더 생각하고 고려해서 한방향으로 쉽게 갈 수 있는길을... 대충 생각하고 이렇게저렇게 하다보니 '어? 안되네?' 하고 다시 옆길로 샛다가 다시 돌아오는..우회도로 코드를 작성한다. 결과는? 원래 생각한 대로의 방식이 아니므로 논리적이 구멍이 생기고 그로 인해 버그가 발생한다...

그래서 하나의 함수 및 클래스는 하나의 일만 담당하는것이 좋다.

그러나 만들다보면....특정 클래스(혹은 함수)에서 A, B 작업이 있는데 거의 대부분의 작업들이 A -> B 순서대로 진행되어진다. 그럴경우 많은 개발자들이 사용자 편의를 위한답시고 저 2가지의 함수를 아예 합쳐버리거나(...) 혹은 클래스 public 함수로 하나의 함수를 더 만든다. 그러지 말자는것.

차라리 따로 helper 함수를 하나 만드는것이 훨씬 좋다. 지금 A->B 상태라지만 나중에 C가 추가되어서 A->B->C가 될수도 있잖아? 어떻게 바뀔지는 아무도 모르는일. 그렇다면, 클래스 자체에서는 깔끔하게 하나의 작업만 하는 함수들을 남겨두고, 일괄처리같은거를 helper 함수로 해놓았으니 그것만 수정한다면, 기존 소스코드를 고치는 일도 적어지고, 보다 flexible 하게 대처할 수 있는것이지.

C로 생각한다면, struct A, B 가 있다고 치자. 근데 둘간에는 공통분모가 있다고 한다면 그것을 따로 빼서 A, B, C로 만들고, C를 처리하는 함수를 fooC()로 하고나면, fooA() 에서는 A에 해당되는부분 처리 후 fooC() 를 호출하고, fooB()에서는 B에 해당되는부분 처리 후 fooC()로 처리하는것.

구조체 개수가 2개에서 3개로 늘어났으니 더 관리가 힘들어졌다? 전혀 그렇지않다. 오히려 기존의 fooA,fooB 함수에서 처리하던 공통적인 부분을 fooC()로 분리해냈으니 코드 사이즈가 줄었고, 공통적인 부분인 C 부분에 대한 코드가 duplicate 되어있던것을 삭제했으니 오히려 개선효과가 있는것이다.

결론은? 기능추가 시에 급하다고 무턱대고 추가말고, 좀 더 생각해보면 간단한 방법은 존재하기 마련이라는것.




ps : 그러나...simple is best 는 아니다. 분명히 복잡하게 풀어야하는 것도 존재한다. 그러나, 그 복잡한 문제마저도 보다 간단하고 명료하게 문제를 풀 수 있는것이야 말로, 더 좋은 개발자가 되는 방향이 아닌가 싶다.
,
잡동사니 2008. 6. 4. 20:42

사용툴의 자유를 보장하라~ 보장하라~

이른바 까라면 까. 물론...나한테는 해당 안된다. 지금 시대가 어떤시댄데...
아. 2MB덕분에 80년대로 돌아갔으니...군대문화가 만연한것도 당연한가? -_-;;

뭐 여튼...회사에서 내 프로젝트는 현재 "Trac" 으로 운영되고 있다. Subversion(이하 SVN)을 이용해서
이리저리 프로젝트 관리가 되는 시스템. 그냥 내혼자서...없으면 무쟈게 불편할것임이 뻔하기에
도입해서 사용중인데...위에 부사장'님'께서 우리파트는 소스관리도 안하느냐 하고 한소리하자...
소파트장 수석'님'께서 땜빵으로 내가 사용하고있는걸 데모한것 같더라... 그래서 일단 결론은
2개월안에 프로젝트를 모두 올리라고 지시 및 필요한 상용툴이 있다면 지원요청해라.

뭐 여기까진 나름 굳. 매우 바람직한 모습 아닌가? 그러나....두둥.

오늘...SCM을 VisualSourceSafe(이하 VSS)로 구성하랜다. -_-;;; 이뭥뮈;;;;;;;;;;;;;;
VSS는 MS툴로써...MS 개발툴들과 매우 밀접하게 연동되는 시스템이다. 그러나..단점이 좀 있어서
MS툴을 쓰지않는 경우에라면 잘 쓰이지않는다. (MS툴을 쓰더라도 잘 안쓰는경우가 많다. 뭐...
단점이 약간있긴하지만 그것보다는 SVN이 더 좋은것)
그런데 그걸 쓰라고? 아니왜? ㅡ.ㅡ;;; MS에 커미션이라도??

이유는...부사장이 이끌었던 예전팀이 VSS를 썼기때문. 다시한번...이뭥뮈;;;
이건...내가 울트라에디트 쓰는데 상부에서 자기가 예전에 노트패드써보니까 좋더라~ 하면서 그거 쓰라는격이다.
거참, 사용툴의 자유도 보장못하나;;;;

내가 부사장'님'이랑 "싸우자!!" 할순 없으니...(뭐 못할건 없지만 -_-a;; 그래도 부사장이랑 싸운 최초의 사원이라는 타이틀은...그닥;;;) 참 답답하긴하다. 에혀...이 무식한 바닥을 떠야하려나?
1인 시위라도 할까? 타이틀은...

'사용툴의 자유를 보장하라~ 보장하라~~'
,
잡동사니 2008. 6. 3. 14:55

으흐~ 나도 이제 배후세력!?

모 클럽의...시위 서포트 및 광고 모금에 동참했다.

큰 돈은 아녔지만...뭐 30만원이 한달 생활비인 나로써는 나름 큰 금액을...ㅎㅎ 여튼 중요한건 진심 아닌가!! 두둥!

주말에 방구석에서 시위 동영상만 보느라 계속 미안한 맘이었는데...이제 조금은 누그러진 느낌 ^^;

,
도서 2008. 5. 27. 10:05

사랑하지 않으면 떠나라!

이책은...부제때문에 보게 되었다. - 개발자의 자기 게발과 경력 관리를 위한 52가지 실천 가이드 -

사실...제목은 영 안끌리지않나? ㅎㅎ 책표지도...뭔가 기존의 개발자를 위한 도서와는 영 딴판이라...처음에 도서관에 예약해놓고 받으러 갔을때 '어...이 책 맞아요?' '네 맞는데요.' 이런 상황이 -ㅁ-;;
그리고 사실...책 내용도, 부제에 가깝지, 실제 제목과는...좀 거리감이 있다.

각설하고, 경력 관리를 해야되는 개발자 뿐만 아니라, 취업을 준비하는 사람에게도 괜찮을것 같다. 자신의 스킬을 마케팅 하는 방법에 대해서 간략히 써놓고 있달까? 뭐 중요하게 느낀점 몇가지를 써보자면...

  1. 역시 글쓰기는 중요하다. 언제나 간략한 정리를 하자. 멋진 포맷? 필요없다. 텍스트라고 해도 간단히 정리하자. 위키 정도의 문법이면 충분히 좋은 내용의 문서는 만들 수 있다.
  2. 제자리에 서있지말자. 프로그래밍이던 영어던 그 외...뭐 자기 하고 싶은것이든. 필요하다고 생각되면 해보자. (블로깅이라도...^^) 노력하지않으면 당연히 퇴보된다.
  3. 보여주기도 중요하다. 그러나 알맹이 없이 겉만 번지르르 한것은 언젠가 뒤통수를 치게 되어있다.
  4. 자신을 마케팅하라. 이건 앞서말한것들이 합쳐져야 나타날 수 있다. 자신의 코드를 보여줘라. 공개하기 부끄럽다고? 부끄럽지 않도록 노력하면 되지~ 업무에 대해 다른 사람들과 부대껴라. 자신의 입지를 보여줄 수 있다면 그것만으로도 마케팅이 된다. 물론 쥐뿔도 없이 잘난척하면...뭐 마이너스.

대충 이정도?
글 중에 기억나는 부분은...'내 자리를 지키기 위해 난잡한 소스를 만들었다. 그러니까 내자리는 안전해. 짤릴 위험이 없지' 요런거? 농담반 진담 반이라지만...위험하다는거~~~ 얼핏 생각하면 맞는 말이니까 더욱 위험하다.

만약 관리자가 정말 난잡한 소스 유지보수 때문에 그 사람을 자르지않는다고 보자...솔직히...저런 사람들 치고 실력이 일취월장한 사람은 그다지 없다. (단지 유지보수때문에 안자른다면...) 그렇다면 관리자는 슬슬 저 사람을 대체할 만한 사람을 찾을 것이고, 찾는 순간 바로 잘린다. 잘리고 나면? 실력도 없는데 어쩌니? 낸들아나. 알아서 먹고 살아야지.

해결책은? 자신의 실력을 키우는것. 그리고 누구나 알기쉽도록 소스를 만드는것. 내자리를 지키는 주체가 자신의 실력이 되도록 하자는것이다. 그렇다면 회사에서 자르려고 하지도 않을것이고, 혹여 내가 회사가 맘에 안들어서 나가려고 할 때, 회사는 나를 붙잡을 껀덕지가 없다.

그 외에...저자는 글로벌 기업에 다니면서 인도에 파견되어서 일을 많이 한것 같은데...그런 경우에 현지인에 대한 마인드랄까 그런것에 대한 언급도 상당하다. 그래서인지...원제는 'My Jon went to India' 인데...왜 우리나라 제목은 저런거야? -.-;;; 뭐 여튼...그래도 읽어볼만한 책을 출판해준 Insight에게 감사 ^^

,
잡동사니 2008. 5. 22. 09:46

역시...제대로 된 정리는 글로 써보는게...^^;

최근 들어...사내 블로그에다가 task간의 동기화 문제에 대한 글을 쓰고있다. 강좌라는 이름 하에 ㅎㅎㅎ
뭐...지금까지 84명이 다녀갔는데...아무런 덧글이 없는것으로 보아....글이 잘된거 같...(응?;;)
은 농담이고. 뭐 아직 완료된 강좌도 아니니까 ㅎㅎㅎ

근데 뭐니뭐니해도...내 자신의 머릿속에서 착착 정리가 되고...누군가 질문을 하거나 했을때 보여주기도 쉽고 (따로 시간 잡아서 그 사람을 위한 일장연설을 하지않아도 좋으니까)... 이래저리 장점이 있는것 같다.

다만 아쉬운점 2가지라면...아무래도 회사에 묶여있다보니...자세한 내용을 인터넷에 쓰고싶은데...인트라넷에 구축된 블로그에 올려야하는점. 때문에 보다많은 지식공유가 불가능하다는 점과...아무런 덧글이 없으니 괜히 뒤숭숭하다는점? ㅎㅎㅎ 후자야 뭐...무소식이 희소식이라고 생각하는중이다 히힛.

나머지 강좌를 빠른시일내에 마무리 지어야겠당~
,
TOTAL TODAY