나는 알고리즘을 거의 다 잊은 듯 합니다.
사실 지난주까진 내가 배운 대부분의 알고리즘을 머리속에 넣고 있다고 생각했었습니다.
생각만 했었지요.
학생 때, 그리고 새로운 몇몇 알고리즘 책이 나올때마다 사서 읽고 연습도 하고 했었지요.
자, 지난주에 경력직 면접을 보면서 저에게 '소수' 구하는 알고리즘을 물어봤습니다.
네, 뭐 그정도 쯤이야 하며 설명하던 찰나.. '소수'구하는 로직이 기억나지 않았습니다.
설마.. 소수 알고리즘을.. 하며.. 당황하던차에 소수의 정의도 정확하게 기억하지 못하는
스스로를 깨닳았습니다.
소수, 1과 자신으로 나누어지는 수를 제외한 더 이상 나누어 지지 않는 수.
네, 이게 소수죠. 더 이상 나누어지지 않는 수라는 건 기억해 냈지만, 거기에 1이 아닌것은
기억도 못했습니다.
소수 구하는 기본 공식은 아주 간단합니다.
예를 들어,
수 n 이 소수인지 구하기 위해서는, 2 부터 시작하여 n-1 까지의 수로 나누어 지는지
확인을 하여 나눈 수의 몫이 0일 경우 소수가 아닌 것이 됩니다.
int sosu( int n ) {
int i = 0;
for( i = 2; i < n ; i++ )
if( n % i == 0 ) return -1; // 소수가 아님.
return 0; // 소수라면 0 리턴.
}
이렇게 됩니다.
이 알고리즘의 경우 n=97 이라면 루프가 96번 돌겠죠. 2부터 97까지.
네. 97은 소수 입니다.
소수가 아닌 수들은 중간에 -1 return 을 받을 테고요.
이것 말고도 몇가지 더 소수 구하는 알고리즘들이 즐비합니다.
간단하죠?
자, 저는 이 알고리즘을 알아내기 위해 책을 좀 들쳐봤습니다.
바보같죠. 네 몇일간 전 바보같은 줄 알았습니다.
몇일전 7년차 고참에게 알고리즘 기억하세요? 라고 뭍기 전까지.
과장님이 말씀하시길, 신입개발자 뽑는 것도 아닌데 별걸 다 물어본다고 하시더군요.
물론 알고리즘등이 중요한 개발이슈를 가지는 회사들도 있습니다.
그런 회사에겐 필수겠죠. 제가 그런회사로 이직하려는 건지 모르겠어요.
만약 그런회사라면, 저는 다시 미친듯이 공부해야 합니다.
저는.. 아마도 대다수의 알고리즘을 다 잊은 듯 하거든요.
아.. 여전히 약간 암울하긴 합니다.
얼마나 어떻게 공부를 해야 살아남는 곳이 될지.. 여기는 IT 바닥이라지요.
머리 좋은 초짜 개발자들은 몰려오고요!
매년 새로운 플랫폼과 개발방법론, 새로운 아키텍쳐, 새로운 언어.. 새로운 .. 새로운...
일자리는 줄어들고요... 후훗.
그렇습니다.
하지만. 힘내요! 우리에겐 연륜이라는게 있잖아요.. 쿨럭..>.,<
이게..도움이 되는 말인지..
다만, 늘 공부는 해야겠지요.
나는 오늘 대단히 기분나쁜 일을 당했다.
이것은 지극히 프라이버시를 침해한 일이며,
회사가 저지른 부당한 일임에 틀림없다.
여러분의 회사는 그러지 아니한가 알아보기 바란다.
나는 현재 여의도의 모 금융권 대기업의 SI 프로젝트에 참여하고 있다.
개인적으로 이 여의도라는 동네의 회사들을 지극히 싫어한다.
대단히 고지식하며 따분하고 짜증나게 한다.
정장입기를 강요하며, 귀걸이를 착용하지 말라고 압박하며
긴팔 와이셔츠를 입으라고 협박하는 곳이다. 그것이 외주 업체의
개발자임에도 불구 하고 말이다.
(그러면서 에어컨은 정말 짜증날 정도로 시원하지 않다.)
매일 나는 아침마다 더워 죽겠는데 긴팔 와이셔츠에 상의를 걸치고
출근한다. 아주 돌아버릴 지경이다. 겨우 이곳 몇개월을 위해
비싸디 비싼 정장을 구입했으며, 한 여름에는 잘 나오지도 않는
긴팔 와이셔츠를 구입했으며, 여름용 긴팔 와이셔츠가 없어서
좀 부꺼운 긴팔 와이셔츠도 입는다. 젠장.
이는 대단히 불합리하며 비효율적인 작태라 아니할 수 없다.
이 한여름에 긴팔 와이셔츠는 도대체 왜 착용하라고 하는가!
어쟀든, 각설하고,
많은 회사들이 보안을 이유로 지극히 말도 안되는 일에 직원들과
업무 당사자들을 억압하며 휘두르고 있다.
보안, 이 것은 아주 중요한 요소 이다.
그 어떤 방법으로든 보안상의 이유를 든다면 이것은 합리화 된다.
다만, 이 보안상의 이유로 업무상 제한을 가한다면,
어떤 방식으로, 어떤 정보들을 감시하는지에 대한 명확히
제시하며 감시당하는 이들이 불이익을 당하지 않도록 해야한다.
이것은 지극히 당연하며 꼭 필요한 일이다.
회사는 나의 이메일을 감시할 수 있고, 내가 설치하는 프로그램들이
어떤것들인지 내가 적는 글들이 어떤식으로 감시 당하며 보관 되어지는를
명확히 알고 있어야 회사에서 원하는 엄한 정보나 혹의 내 지극히
개인적인 정보들이 노출되는 것을 방지하지 않겠는가!
생각해 보라, 내가 나의 개인 웹사이트에 내 ID와 그 비밀번호를
적어 놓는데, 이를 회사 프록시나 혹은 감시자가 캐치했다면,
이것은 역으로 나의 정보를 회사가 아무렇게나 취급할 수 있는 여지가
충분하지 않은가?
회사가 업무담당자들의 보안의식을 못믿어 감시하고 있다면,
반대로 내 정보를 감시하는 보안담당자들의 보안의식은 과연 믿을만 한가?
그것을 피 감시자인 업무담당자들에게 충분히 설명하고 있는가?
나는 오늘, 단지 메신저를 설치했다는 이유로 PM으로 부터 사실 확인서를
작성하라는 얘기를 들었다. 특정 방식으로 메신저를 사용한것도 아닌
설치를 이유로 경고와 동시에 '반성문'이라 일컫는 문서를 작성했다.
내 30점짜리 인성상 충분히 열받으라는 식으로 문서를 작성했으나
중간에 PM이 바꾸어 올렸버렸다. 이것도 사실 별로지만, 그래도
'을' 회사의 입장이 있으니.. 참 엿같긴 하다.
나는 SI가 처음도 아니니 어느정도 감시와 통제에 대해서는 이해하고 있다.
내가 지금껏 일해왔던 '갑'의 대규모 회사들은 다 이런젓을 하고 있다.
하지만, 메신저등의 특정 프로그램을 설치하는 것으론 별다른 제한을
가하지 않는다. 다만 설치 후 실행을 못하게 한다든지, 원천적으로
설치를 방지 한다든지 혹은 실행 후 패킷등의 검사로 이를 못하도록
제한하고 있다.
이것이 회사의 입장으로써 당연한 것이다.
문제는 여기서, 아에 사용자의 화면자체를 감시하는 것은 대단히
문제가 된다. VNC등의 서버를 사용자의 컴퓨터에 설치하고 이를
삭제못하게 하며 사용자도 모르게 VNC 클라이언트등으로 내 컴퓨터를
볼 수 있다.
또한 특정 프로그램으로 내가 어떤 프로그램을 설치했는가 자체를 알아
낸다는 것은 개인 프라이버시 침해가 되지 않는가!
이를 알수 있다는 것은 내 프로그램의 내 일이 충분히 노출될 수 있다는
것을 의미한다.
어디 내 개인정보나 전화번호, 계좌번호, 비밀번호등을 함부로 적을 수나
있겠는가. 이를 피 감시자인 나에게 알려주지 않았다.
이게 뭐하는 행태인가? 대단히 무식하고 어이없는 짓이다.
그들은 나에게 이러한 모든것을 알리지도 않은 체 나에게 '반성문'을
요구하였다.
자, 나는 대단히 기분 나쁘게 생각했으며, 이 보안이라는 것에 구멍을
내고 싶다는 생각을 했다.
아주 가볍게 정말 엿 먹이고 싶다는 생각을 소심하게 했으며,
지금 계획중이기도 하다. :-)
이것은 다르게 생각해 볼 일이다.
회사가 취급(?)하는 직원들에 대한 행동양식이다.
과연, 회사는 하드웨어적인 시스템적으로 완벽하게 업무취급자들의
시스템을 제한할 수 있는가? 당연히 불가능 하다.
어이 없게도 회사들은 USB 스틱, USB 하드디스크 등을 소켓에 꼽고 읽고
쓰는 것만으로도 알수 있다.
이를 쓰지 못하도록 하게는 하고 있지만 이는 방법이 없는 것도 아니다.
단적으로 리눅스 라이브CD로 부팅하여 USB를 꼽고 NTFS로 마운트하여
복사한다면 어떻게 알겠는가.
이들이 취하는 보안이란 것은 사실 우수운 것이다.
물론 이것은 최소한의 조치인 것을 왜 모르겠는가!
그렇다 최소한의 조치이다.
최대한의 조치는 바로 업무 담당자들의 보안의식을 높이는 것이다.
그러나 실제는...
그래, 그들은 보안의식을 높이기 보단, 억압하며 그들에게 불이익을
줌으로써 협박하는 것을 보통 택하고 있다.
그렇게 한번 호되게 당하고 나서, 아! 이러면 안되겠다. 조심해야지!
과연 이렇게 얼마나 생각하겠는가.
많은 사람들이 X같이 걸렸네, 짜증나.. 하면서 술 한잔 마시고
잊어버리면 끝이다.
하지만, 실수로 치부하며 담당자들에게 조심성을 일깨우고 교육을 함으로써
보안의식을 높이게 해준다면...?
그들이 과연 혹시라도 있을 한명의 나쁜 생각을 가진 자가 시스템적이든,
아니면 몰래 문서를 빼돌리든, 이런 일을 하는 자가 생겨난다면,
그 후야 어떻든 이는 궁극적으로 회사 또한 잘못을 포함하고 있다.
적당히 당근과 채찍이 필요한 것은 어느 곳에든 있다.
방법과 수준을 무시하고 억압하는 곳은 언젠가는 분명 그로인해 불이익을
얻게될 것이다.
그대들의 회사는 지금, 그대들의 PC를 통해 그대들을 어떻게 감시하고
있는가?
어떤 방식으로? 이메일? 메신저? 패킷? 아니면 화면을 통째로?
조심하라, 그대들이 무심코 적는 ID, 패스워드, 계좌번호, 주소,
전화번호등이 해커가 아닌 보안 담당자들에 의해 침탈당할 수 있다.
아는가? 모르는가?
걱정된다면, 최소한 아래와 같이 사용하라. https 를 지원하는 이메일을 사용하라.
한 예로, gmail 은 https 를 지원하고 있다. 이메일이 암호화되어 외부와 통신할 것이다.
가능한한 개인정보를 담고 있는 사이트를 접속해야 한다면, https를 지원하는 곳으로 선택하라.
telnet은 사내 혹은 내부적으로만 사용하라.
외부접속은 무조껀 ssh 를 사용하라. 내 계정이 모두 노출 되는 것을 방지하라. 더불어 ftp 또한 secure ftp를 이용하라.
혹시 메신저가 된다면, 요새는 대부분 대화의 암호화를 지원한다.
꼭 체크할것.
가볍고 적당히 사용할 ssh 서버를 알고 있는가? 브라우징을 할때, ssh 터널링을 사용하라. 혹, 부하가 걱정된다면
그때 그때만 사용하라. 완벽하게 22번 포트로 암호화 되어 나간다.
그러나 엿같지만, 당신의 화면을 보거나 캡쳐하고 있다면,
아무 소용없다.
아마도 들어가고 나가는 모든 패킷을 내가 통제하는 프로그램을 작성하거나
사용하게 된다면, 아마도 관리팀에서 전화가 오게 될것이다.
세상을 언제나 약자에게 불합리하며, 그렇지 않은 곳에 있다면,
당신은 행복한지 알아야 한다. :-(
ps, 보안담당자들의 의식을 욕보이는 것이 아니다.
다만, 이런 행태를 일삼는 특정 회사들의 보안을 미끼로한 개인의
프라이버시 침탈을 욕하는 것이다.
최근, 일적인 면에서, 개인적인 면에서 윈도우즈 사용이 잦아 들면서 리눅스 데스크탑 사용을 안 하는 편인데, 역시나 익숙함이란 무시못할 강력한 무기인것은 확실하다. 단, 나의 경우 데비안과 우분투는 익숙하다. 사실 뭘 쓰던 나에겐 그닥 문제가 되지 않는다. 다만, 요새 새로 구입한 옴니아 폰 때문에 윈도우를 좀 많이 사용할 뿐이다.
그 이유로써, 파워쉘, 윈도우즈진영의 오픈소스 소프트웨어, 그리고 비스타 보다 더 나아진 기능성..
나 또한, 윈도우즈7의 성공여부에 대하여 대단히 긍정적으로 생각하고 있는 편인데, 그 이유는 비스타 보다 비약적으로 가벼워졌으며, 리소스 고갈을 해결했다는 내용을 보았기 때문이다. 가벼워진 윈도우즈, 그리고 리소스를 고갈하지 않는 이유. 이 두가지 이유만으로도 기존 윈도우즈 보다 윈도우즈7을 기대하는 이유이기는 하다.
그 이외의 윈도우즈 UI나 비스타 모양새 뭐 이런것들은 그닥 기대하지 않는다. 사실, 미려해지긴 했으나, 여전히 모양새는 우분투를 선호한다.
그리고 글 중간에, "초기에 말했듯이 비용을 지불함으로써 기술지원을 받을 수 있고 선호하는OS의 종류를 선택해야만 하는 어려운 상황 역시 회피할 수 있다.리눅스 배포판에는 글자 그대로 수십 종의 배포물을 선택하도록 되어 있다(101가지의 서로 다른 취향은 차라리 배스킨라빈스에나 가서 선택하는 게 낫지 않겠는가?)."
이런 대목이 나온다. 비용지불에 의한 기술지원. 나의 경우 여지것 기술지원이라고 해놓고, 잘못되면 와서 포맷해주는 것 빼곤 받아본 적이 없다. 솔직히 이러한 기술지원은 브랜드 PC사나 일반 관련 A/S 업체에서 해주는 것이기 때문에 명확히 기술지원 이라고 하기는 좀 그렇기는 하다 :-)
저자는, 여러 배포판중에 어떤걸 선택하느냐의 문제에 대하여 걸고 넘어지긴 했는데, 베스킨 라빈스가서 선택하라니, 어이없게. 사람들이 베스킨라빈스에 가는 이유는 여러가지 맛있는 것들을 골라먹기 위해서인데, 리눅스를 쓰는 이유중의 하나도, 쓸만한 여러 배포판중 맛좋은(?) 것을 사용하기 위해서 라고 말하면, 어떨까나.
이렇게 말해본다. 윈도우즈는 선택의 여지가 없다. 내 취향대로 선택할 수 없다면, 독재국가에나 가서 사용하는 것이 낫지 않겠는가?! ( 갑자기 독재국가가 왜나오냐 묻지 말것. 베스킨라빈스가 나온게 더 황당함.)
어쨌든, 저 기사는 너무나 윈도우즈(?) 스런 글이다. 마지막에 아래 글귀가 눈에 확 뜨이면서 애플사용자들의 맘을 상하게 했을 것이다.
"다음 단계는 매킨토시를 원래의 자리로 되돌려 보낼 시간이다.바로,애플파이 속으로! "
마녀사냥하면서 악마는 지옥으로 돌아가라 하며 외치는 것과 다를바 없는 어이없는 글귀다 :-(
오오:-) 절 실망 시키지 않았어요. 요새 펄에 대한 기대와 함께, 펄 워크샵은 나에게 펄에 푹 빠지게 만든 아주 신나는 기회였답니다.
단, 정규발표밖에 듣지 못해 아주 아쉬웠어요. 개인적인 사정으로 lightenling talk 는 듣지 못했지요.
사실 라이트닝 톡에서 듣고 싶은게 있었거든요 :-0 자, 잠깐 짧은 후기를 적어 볼까요?
우선 저는, 펄 비기너이며, 실제 사용할려면 아직 많은 공부가 필요해요. 어쨌든, 펄은 많은 재미를 가진 언어임이 이번 워크샵을 통해 밝혀졌어요. ^^:)
일단, 워크샵은 13시부터 저녁 9시까지 하드코어일정을 무난히 그것도 다들 지루하지 않게 끝낸듯 합니다. 제가 8시까지 있었는데도 불구하고 거의 모든 자리가 차 있었던걸 감안하면 아마 끝까지 다들 남아 있으셨으리라 생각됩니다.
제 관심사에 대해 몇가지 정리해 보면, 강차훈님의 최신 스타일 펄로 개과천선하기를 듣는 동안, (물론 예전에도 스터디에서 강차훈님의 몇몇 가지 이야기를 듣긴했습니다만, 깔끔히 정리해 주셨지요.) 책에는 나오지 않은 펄에 대한 스타일들을 정리할 기회 였습니다.
김기석님의 Web2RSS에서는 몇가지 RSS를 구현할 수 있는 모듈들에 대한 이야기가 좋았구요,
전종필님의 basic skill up 에 대하여서는 저와 같은 펄 비기너들이 새겨들으면 좋은 내용들, regex, ref, pkg, CPAN 등등에 대하여 재미있게 이야기해 주셨어요.
김동민님의 센서네트웍에서의 펄의 사용은, 사실 전 좀 이론적인 그리고 전문적인 부분이어서 잘은 모르겠지만, 알로리즘 구현및 실험에서의 perl 의 파워를 보여주셨지요. 요새 유비쿼터스 센서 네트웍이 많이 회자되는데요, 펄의 그 편리함을 재미있게 설명해주셨어요.
일본에서 날아와 주신 펄 catalyst 에 대한 이야기를 해주신 한송희님의 발표는, 펄의 프레임웍에 대한 사용법과 내부동작도 잠시 소개해 주셨는데, 문제는 카탈리스트에 대한 이야기가 거의 우리나라에서는 전무하다시피한 상황에서 펄 워크샵을 통해 펄 관심의 증폭과 함께 가장 많이 회자될 이야기가 되지 않을까 하는 생각도 듭니다. 왜냐며한 요새 웹 트렌드중의 하나가 바로 웹 프레임웍이 아닌가 하거든요.
이번 워크샵의 리더이신 김도형님은 Gtk2-Perl 에 대한 이야기를 해주셨어요. 역시 실망시키지 않는 김도형님. 희원님의 말씀대로 perl-dna 를 가진 사람이 아닐까 하는 :) 일단, Gtk2-perl의 간단한 사용법과 재미있는 예제들. 아- 재미있었어요. 그리고 윈도우즈용 펄 + Gtk2 의 Camelbox 에 대한 이야기. 크로스 플랫폼의로써의 gtk에 대해 다시 생각하게 만든 발표 였어요.
그리고 아마도 가장 많은 박수와 재미를 받으신 분은 이분이 아닐까 생각됩니다. 바이오펄을 이야기해주신 박종화 박사님의 발표는 참 많은 것을 이야기 해주셨지요. 펄의 역사와 함께, 펄의 정신.. 그리고 바이오 펄의 정신, 재미난 비하인드 스토리등등 어쨌뜬, 웬지 그루의 느낌을 지울수 없는 분이셨어요.
배상우님과 권혁진님의 보안에서의 펄의 위치는, 적지 않은 파워를 가진 언어가 바로 펄이 아닌가 하는 것을 실감나게 시현까지 해주시며, (특히 권혁진님의 자신의 회사 홈페이지까지 해킹해주시며 보여주신 것이 압권 :) 좋은 이야기를 해주셨지요.
김준홍님의 언어학에서의 펄의 위치는, 사실 펄을 조금이라도 아시는 분이라면, 펄의 그 유연한 텍스트 처리에 대해 익히 들어오셨을텐데요, 실제 예시를 들어주시며 좋은 내용 발표해 주셨습니다.
김현승님의 영상 오브젝트 추출에서의 펄의 사용에 대하여 얘기해 주셨는데, 펄의 간편함, CPAN의 위대함, 영상분야까지? 라는 생각을 하게 만든 발표. 아, 좋았어요. 재미있었구요.
김희원님의 즐거운 펄 기억남기기. Parse::RecDescent 모듈을 설명하며, 그림그리기를 좋아하는 희원님의 자작 그림들과 재미있는 예제들. 그리고 현재 한국 펄의 분위기를 여과없이 실랄하게(?) 보여주었어요. 아- emacs 의 신기함도 보여준 좋은 발표였답니다.
여기까지가 regular talk 이었는데, 저는 여기까지만 들었고요. lightening talk 를 듣지 못해 정말 아쉬웠어요. 제일 듣고 싶었던 것중에 하나가 바로 도형님의 MiniCPAN에 대한 이야기였거든요. 나중에 따로 도움받을 기회가 생기길 기대하여.
저는 unix based c programming을 주로 하는 사람으로, 사실 어릴때는 최고는 역시 C 라는 생각을 가진 아주 닫힌 사람이었어요.
사람은 자기가 아는 만큼, 그만큼 밖엔 성장할 수 없다고들 하는데, perl를 사용하며, 닫힌 생각을 좀더 넓혀가고 있습니다. 펄이 뭐가 유연하냐고 물으신다면, 내각 생각하는 모든 것들을 perl로 구현할 수 있을것 같구요, 이미 만들어진 아주-아주 많은 모듈들을 여러분은 cpan 에서 뒤져볼수 있으며, console 이건 gui 든 무엇이든 가능하며, unix 든 윈도우즈든 다 가능하며, - 시도 쓸수 있어요. perl poet 이라고 하죠? ^^
실제 제가 펄을 공부하겠다고 마음 먹은 이유는, 아주 간단합니다. 배상우님께서도 발표중에 말씀해주셨는데, 어떤 플랫폼에서도 돌아가는 스트립트를 만들수 있는 것중에 perl 이 가장 유연하고 가장 편하다는 것이지요.
많은 사람들이 linux 를 사용하면서, gcc 가 깔린, 즉 컴파일러가 깔린 unix 를 상상 하곤 합니다만, 실제 대부분의 unix machine 들은 c 컴파일러를 제공하진 않습니다. 물론, perl은 거의 100% 지원한다고 봐야 하지요.
대부분의 OS에서 language dna 가 C 이기 때문에 c 컴파일러와 OS는 분리하여 생각하지 않습니다만, 또한 많은 부분 (특히 unix)에서 perl 이 기본적으로 깔리는 이유는, OS의 많은 부분 자동화를 perl 이 담당하고 있기도 하다는 제 소견입니다.
자, 요새같은 ruby, python 과 같은 쉽고 파워풀한 언어들이 등장하는 가운데 여러분은 perl 과 같은 오래된 노인네 같은 언어라고 생각할 지도 모르는 perl을 왜 선택하느냐고 생각할지도 모르겠습니다.
하지만, 제가 요 몇달간 경험한 펄은, 여전히 루비나 파이썬과 같은 (혹은 더더욱 더) 파워풀 하며, 여전히 발전하고 있으며, 그 어떤 상황에서도 빠르고 유연하게 대처할 능력을 가진 언어가 아닌가 하는 생각을 해봅니다.
제가 펄을 좋아하는 결정적이유는, 아무렇게나 프로그래밍 할수 있다는 거예요. (python을 좋아하지만 관심같지 않았던 이유는 tab 때문이었지요.) 형식과 틀에 관계없이, 그리고 절차적이든 OOP든 뭐든 말이죠.
perl을 찬양하고 있지만, 언어는 도구에 불과합니다. 하지만, 도구를 쓰는 것은 많은 생산성과 유연함을 동시에 가져다 줍니다. 어떤 도구를 쓰느냐는 자신의 선택에 달려 있지만, 그 어떤 도구를 선택중이시라면 (특히 unix 나 linux를 사용하고 싶다면) perl 을 선택한 것은 멋진 선택중 하나라는 생각을 여러분께 알려드리고 싶답니다 :-)
오늘 정확히는 어제지. 24시가 지났으니. fork 정확히 prefork 모델에서 multi-threads 모델로 설계가 바뀌었다. 바뀔수 있다. 많이들 그러니까. 하지만 설계일때나 그렇지. 대략, 개발 50% 정도 나간 상황에서 개발모델을 확 바꿔버리면... 개발자들은 어떻게 하라는 것인가.
"바꾸는 놈들도 우끼지만, 그렇다고 그걸 수용하고 만들겠다는 나도 미친놈'이 되어 버린.. 나는 :-) 훗.
대략 수긍하고 긍정적으로 받아들여야지 하고 맘 먹은 이유는... 이전 모델은 일단 prefork - system queue 에 연결해야 한다. 문제는 어쩔수 없이 db-pool 을 이용해야 하는 상황이 나타나서 시스템이 상당히 복잡해져서 하나의 전문에 queue 를 8번 읽고 써야 하는 형태로 변해버렸다. 저렇게 됐을경우 queue를 상당히 꼼꼼하게 관리해야 하며 분배서버가 없는 상황에서 queue 내부에서 msgtype 으로 프론트단의 서버에 분배도 해줘야 하는 극약 처방을 해야 했다. 물론 설계가 조금 불안정하긴 하지만 :-( 그렇다고 설계를 싹 다 바꿔야 할만큼 엉망이지는 않았다.
thread 모델로 바꾸는 조건은 queue를 없앤다. 그리고 프론트가 엔드단을 중간에 thread가 connectless 방식으로 맺고 끊으며 접근한다. 이렇게 햇을 경우 connection 을 유지 했을때 보다 connection 비용이 좀더 들기는 하지만 상대적인 비용이지 절대적으로 느리지 않다. (그 비용을 오늘 스트레스 테스트해본 결과 대략 10ms 정도 차이가 난다.)
웅. 그래. 커넥션유지하지 않는 조건엔 연결되어 있을 경우 통신회선 점검을 하지 않고, 그걸 리포트 하지 않는다는 조건과 오픈 일주일 연기를 걸었다.
자. 어쨌뜬.. 그래서 프론트와 엔트를 연결하는 중간 비즈니스 단은 포크 모델에서 멀티 쓰레드 모델로 변경되었고, 지난주 목요일 부터 오늘까지해서 좀더 안정적인 쓰레드 모델을 구성하면서 계속적인 스트레스 테스트를 하고 있다.
포크에 비해 쓰레드가 디버그 비용에서는, 개발자 입장에서는 좀더 많이 들지만, 프리-포크와 시스템 큐를 사용하는, 그것도 큐에 동시에 3개의 프로세스가 한 전문에 8번씩 읽고 써야 하는 골치아픈 상황을 해소시키긴 했다.
이래저래, 시킨대로 해야 나중에 뭐라하지 않는 IT 바닥의 고질적인 문제와 더불어 개발 50% 진행에서 레이아웃을 180도 뒤엎은 이런 상황에서 내가 할 수 있는 말은
"Hope is good thing!" 이다.
좌절 금지. 좋은 경험. 희망은 좋은 것... 그래도 괜찮아. 개발기간 일주일 늘려 줬잖아 :-( 비록 지난 시간의 3/1 이상은 버렸더라도.
어쨌든, 지난 몇일간 바뀐 레이아웃을 위해 미치도록 코딩하고 테스트 하고 고생은 많았다.
이게 unix 데몬이니 망정이지. 내일은 좀더 나아지겠지. (사실 오늘부터 통합테스트 였는데 역시 일주일 뒤로 밀렸다. 으하하하 :-(
06:30 기상 (사실은 더 일찍 일어나야 하지만....ㅜㅜ) 07:30 집 앞에서 버스 07:50 작전역 앞에서 9500번 광역버스 09:20 강남 우성아파트 혹은 뱅뱅사거리에서 하차 09:30 1005-2 번 시외버스 타고 분당 정자역으로 출발 09:50 정자역 한 정거장 전, 두산 위브 앞에서 하차 10:00 출근 완료 (사실은 9시 반까지 인데.. ㅜㅜ ) ....... 작업.. 작업... 12:00 점심 식사 (건물 3층 식당에서 3000원 짜리 백반. 곧..3500원으로 ㅜㅜ) 13:00 다시 작업 시작 ... ....... 계속 작업. 가끔 차도 마심. 18:00 저녁 먹으러 밖으로 나감.. ㅠㅠ (다들 퇴근 하는데 ㅜㅜ) 19:00 다시 작업 시작 ... ....... 계속 작업... 21:00 ~ 21:30 작업 종료... 21:40 정자역에서 다시 1005-2번 승차 22:10 양재역 또는 교육개발원 4거리 또는 뱅뱅 사거리에서 하차 22:20 9500번 광역버스 다시 승차 23:40 인천 작전역 하차 23:50 시내버스 승차 24:00 퇴근 완료 ....... 씻거나.. 약간 쉬거나.. 약간 티비 보거나.. 01:00 대략 취침...
요새 분당 정자쪽 프로젝트 때문에 이러고 살고 있다. 평일엔... 아무것도 못한다. 예전엔 그래도 집에서 두세시간이라도 쉬면서 책도 보고 티비도 보고 했는데.
이 프로젝트가 5월 9일에 종료 예정이니... 지금은... 코딩 시작한지 약 2주차.. 실제 코어 개발일정이 3월 중순. 4월은.. Rush Test 또는 Stress Test 와 함께 디버깅 그리고.. NMS 와 운영측 Client 개발 지원을 위한 작업도...
누가..... 소프트웨어의 심장을...만드는가... 심장... 심장 .. 아- 요새 재밌게 보던 '뉴하트'가 오늘 끝났다. 젝일 :-(
그래도 재밌는건, solaris 에서 gcc 로 이프로젝트의 core 쪽을 맡고 있다. 그래봤자.. 뭐 대단한건 아니지만:-) 그래서 재밌다.
내가 좋아하는 unix 와 c 로 만들거든. (나는 C++ 보다 C가 훨씬 재밌다고 생각한다.) 자.. 인제 자야지. 내일 있다가 또 일 나가야지. 그리고 나면 기다리는 주말!
요새 처럼 주말이 기다려 지긴 오랜만. 사실.. 이제 주말 기다리는 것도 오래지 않아.. 휴일 근무에 돌입 할지도 ㅜㅜ