2006/10 21

시간의 한계

최근 여러 할아버지들이 하는 말중에 공통점이 있다면 유형의 자원들이야 언제나 대체물질을 찾아내고 지식의 경우엔 써도 사라지지 않지만 한가지 절대적인 자원이 있으니 그것은 시간이라고 합니다.여러 글들을 보고 생각을 하고 다시 정리해서 글을 쓰다 보면 하루하루가 정신없이 지나갑니다. 나름대로 "호모노마드"를 추구하는 지라 당장 스스로 가진 생가조차 파괴하고 다시 만들다 보면 밤이 깊어갑니다. 인터넷이 쓰레기의 바다였다고는 하지만 최근의 검색 기술이나 메타사이트 등의 정보 연결 기술들은 다시 정보의 홍수를 제공하고 있죠. 바다에서 진주알을 가끔 줍던 상황에서 이제는 바다 한가득 진주가 되어버린 상황으로 전환되고 있습니다. 지금의 새로운 상황은 시간당 주울 수 있는 진주의 양을 물론이고 자신이 가진 주머니의 한..

Event Driven과 Multi-Threading

Why Events Are A Bad Idea Prefer Multithreading to Event-driven in Highly-Concurrent Servers from http://lastmind.net/ 간만에 좀 어려운 글좀 읽었더니 살포시 머리에 쥐가 오네요. Event-Driven(ED)과 Multi-Thread(MT) 기법은 서로 연관이 많습니다. 이것을 OS나 어플리케이션 서버가 구동시켜 주기 위해서는 결국 세마포어(Semaphore)라던가 블라블라들의 기능들을 요구합니다. 이동네가 그렇듯 ED는 MT로 구현할 수도 있고 반대로도 가능합니다. 현재 개발해야 하는 환경이 일단은 한쪽을 더 잘 지원한다면 그쪽으로 손이 가게 마련입니다. 그리고 위의 두 글에서 보듯 처음에는 ED로 구현하는 ..

mysql_real_escape_string의 황당한 시츄에이션

mysql_real_escape_string(이하 MRES)는 서버와 클라이언트간의 케릭터 셋에 따라 인풋값을 적절히 이스케이핑 해주는 함수이다. mysql_escape_string(이하 MES)이 연결정보를 확인하지 않기에 PHP 4.3.0부터 추가된 함수이다. 그러나... DB도 UTF8이고 접속할 때 "SET CHARACTER SET 'utf8'"을 넣어주고 난리를 쳐도 환경에 따라서 저놈이 이상한 짓을 할때가 있다. "ㅋㅋㅋ"라는 한글을 입력하였을 때 "\ㅋ\ㅋ\ㅋ"라고 나타난다면 바로 이 상황인 것이다. 현재 추측하기로는 서버의 셋팅이 한번 euckr 등으로 고정되면 어떠한 짓으로도 이게 변환이 안되어 MRES가 utf8 문자들을 이스케이핑 해 주는 것으로 보인다. 만약 Table의 컬럼이 모두..

재개발

개발자가 흔히 하는 말중에.. 지금 구린 코드는 버리고 새로 짜야 한다라는 주장이 있다. 맨날 뭐 하나 고치려면 머리 두뭉큼은 빠지는거 같으니 날잡아서 새로 개비를 합시다라고.. Refactoring이라는 말이 등장했을때 많은 개발자들이 열광한 것이 이런 이유일 것이다. Refactoring은 기존의 코드를 버리고 새로 작성하는 것은 아니다. 정확한 번역은 "정리"가 아닐까 한다. 임시방편으로 연결된 바이패스(막힌 지점을 우회시키는 혈관)를 제거하고 원래의 길을 제대로 수행되도록 수정하는 작업일 것이다. 물론 앞으로 생겨날 혈관협착도 고려해서 말이다. 기존의 코드를 폐기하는 것은 상당한 낭비이다. Project Planning에서 기존의 코드는 훌륭한 Asset의 목록이 된다. Asset이란 개발 Cos..

기획자 vs. 개발자

늑대와 양만큼이나 서로 으르렁 거리는 관계가 있다면 바로 기획자와 개발자이다. 개발자 출신의 기획자나 기획자 출신의 개발자가 도움은 되지 못한다. 언제나 상황은 한쪽에 서게 만들기 때문이다. 요즘은 오픈소스조차 빌어먹을 상용 소프트웨어를 박살낼 획기적인 기능을 내포하길 원한다. 그리고 발표시기도 상당히 정치적이다. 자선단체도 이윤을 내야 영속할 수 있는 상황인 것이다. 경쟁중인 분야의 소프트웨어는 신기능이 빠른 시간 안에 나와야 하고 그것이 상대를 압도할 정도로 획기적이어야 한다. 개인적으로는 그냥 영리업체가 돈 펑펑 쓰면서 개발해 낸 기능을 낼름 카피하는게 더 효과적일 것이라고 생각하지만.... 아무튼 이런 상황에서 기획자가 쉽게 하는 실수는 너무나 강력하고 획기적인 기획을 내어 놓아 기존 버전의 프로..

Quality Assurance

개발자는 프로그램의 기능이 동작하게 하고 테스터는 프로그램의 기능이 오동작하거나 동작하지 않는 경우를 없앤다. - 겐도 - 테스팅에서 가장 먼저 수행하는 것은 Smoking Test일 것이다. 전기제품을 만들었을때 전류를 가해서 어디 타는 곳이 없나 확인하는 작업에서 유래된 이 말은 어플리케이션을 만들고 릴리징 준비 단계로 들어갈 때 실제로 설치하거나 배포(Deploy)를 수행한 후 가동을 시작해 보는 작업이다. 수없는 단위 테스트로 인해 이미 더러워질 데로 더러워진, 즉 시스템의 상당 부분이 해당 프로그램이 동작하도록 설정된 환경을 벗어나서 깨끗한 곳에서 동작성을 테스트 하는 이 과정조차 한번에 되기란 그리 쉬운 것은 아니다. DLL이 누락되었거나 버전이 안맞을 수도 있고 임시 파일이나 레지스트리등의 ..

Variation of "Viagra"

http://search.naver.com/search.naver?where=nexearch&query=viyagra&frm=t1&sm=top_hty 기계는 알 수 없는 Viyagra지만 사람은 알아서 오타 수정을 한다는 것이 문제. 바이러스 검사에 있어서 특정 시그너쳐(Signature)로 디텍팅하면 변종에 약하다라는 것은 이미 정설이고 스팸도 이제 마찬가지인 것 같다. Viagra 단어를 포함하고 있는 이 글을 트랙백으로 보냈을 때 필터에서 걸러내는 블로그가 얼마나 될까? 참고로 EAS는 한두번쯤은 눈감고 봐준다.

다시는 안그럴께요...

Mozilla rebuts Firefox 2 bug reports 아이들이 잘못을 저지르곤 부모에게 비오는날 먼지날리게 맞으면서 하는 말이 "다시는 안그럴께요"일 것이다. 물론 대부분의 경우 몇번 더 저지르고는 그것을 고치기 전에 어른이 되어버려 할 필요가 없어지는게 대부분이긴 하다. 어플리케이션의 메이저 버전업의 초기에 보는 현상이 이와 비슷하다. 직전 버전의 마이너 업데이트에서 실컷 고쳤던 버그가 다시 나타나곤 한다. 비단 FF뿐만이 아니라 MS의 윈도우에서도 무려 몇년의 간격을 두고 똑같은 버그가 발견되고 Critical Security Patch라는 이름의 프로그램이 전송된다. 최근의 해커들은 메이저 업때는 기존 버전의 모든 해킹 방법들을 다시 테스트 해 본다. QA 담당자들은 왜 안해보나 몰라 ..

신버전의 홍수

IE 7에 이은 FF 2.0 절 두번 죽이는 군요. 그와중에 Vista RTM이 곧 나온다는 소식입니다. Office 2007도 기다리고 있죠. Visual Studio의 다음 버전은 아직은 먼 이야기고... 한글 2007은 왜 나왔는지 모르겠지만 21세기가 되면서 지난 세기와는 비교할 수 없는 속도로 IT월드는 변하는게 아닌가 합니다. 펜티엄 3 듀얼 보드를 거금을 들여 산게 10년이 안된것 같은데 지금 듀얼코어의 노트북을 사용하고 있습니다. 이 시피유에는 10년전의 사람들이 메인 메모리로 쓰는 크기의 L2 Cache가 들어 있습니다. 그래픽 카드에 붙어 있는 128M의 메모리는 언젠가의 하드 사이즈였습니다. 앞으로 나올 새로운 어플리케이션은 또다는 IT 세상의 변화를 줄 것입니다. 그리고 아직은 얼리..

지금 이시간에 글을 쓰는 이유

TnC의 모든 사람들은 서비스에 이상 징후가 보이면 그 즉시 문자를 받도록 되어 있다. 그리고 FM에 따라 처리가 가능한 사람으로 연락을 하고 연락을 받은 처리 가능자가 작업을 하는 시스템이 구축되어 있다. 시스템이라기 보다는...일종의 땜빵이랄까... (뭐 이런 이유로 아직 티스토리도 제한적인 사용자만을 유지하고 있긴 하다. 컨트롤 가능한 상황으로 계속 유지하기 위해서다 아무튼..) 불과 몇시간 전, 메일이나 블로그도 확인하고 마비노기에 들어가서 가볍게 사냥도 돌고 사람들과 이야기도 나눈 후 휴대폰을 충전기에 꼽고 침대 옆자리에 던진후(참고-퀸사이즈 침대라 옆자리라 함은 침대옆이 아니라 말 그대로 옆자리. ) 잠을 청하기 시작했다. 몇가지 생각을 하다 잠이 깊어 지면서 우주괴물이 불을 뿜으려는데... ..