더운 여름날에 바람도 없고 에어컨도 없으면 땀이 흐른다. 공기 청정기는 먼지를 인식하고 작동하다가 언젠가는 멈춘다. 체한 듯하면 배를 비우고 간단한 약을 사다 먹으면 낫는다. 그리고, 식물들을 키우면 공기도 정화를 시킨다며, 수많은 실험 자료들은 아세톤 알데히드를 없앴다느니 암모니아를 제거한다느니 구구절절하다. 배가 아프면 아버지는 수지침을 놓으신다. 장모님과 어머님은 이것저것 먹을 것을 주시면서 몸에 어떻게 좋다느니 말씀을 하신다. 난 가끔 위 두 사실을 비교할 때, 어떤 다른 영역이 있음을 인식한다. 특히 요즘 같이 내가 식물에 관심이 많을 때, 관련 서적들을 보면 생활에 도움을 준다는 "약한 설득"이 곳곳에 널려있음을 본다. 내가 지금까지 살면서 키우는 식물의 이로움을 몰랐으랴? 그런데, 요 몇달전..
연재하는 이 글들은 테스터를 위한 글이 아니라 개발자를 위한 것이며, 개발자가 어떻게 하면 테스트하면서 개발할 수 있을지에 대한 제안이다. 복사해서 쓰는 습관은 아주 초보적인 습관이지만, 가장 충동적인 습관이기도하다. 인류가 태어난 이후로 모방이라는 훌륭한 학습도구는 생활 전체에 아주 깊숙이 스며있는 것이기 때문에, 우리는 너무나 자연스럽게 가져다 쓰는 것에 익숙하다. 복사는 다른 사람 코드를 복사하는 것에서부터, 자신이 과거에 작성한 코드 그대로 복사에서 뿐아니라, 변수명이나 함수명을 바꿔서 복사 또는 기능을 추가하는 복사등, 그 변종도 아주 많다. 이 습관을 버리라고하는 이유의 핵심에는 "관리"에 있다. 혼자 연습하면서는 다른 사람의 것을 복사하는 것부터 시작하게된다. 그렇게 해야만 늘게되는 것은 자..
3일이라는 짧은 시간에 대해서, 막힐 것이라 예상하고 일찍 나섰건만 평소 3시간 걸리는 것이 6시간정도만 걸렸다. 예상은 10시간 이상있지만, 교통 사정이 참 좋아진것 같다. 6시간은 일반적으로 막히는 주말이 4시간 ~ 5시간이므로 그다지 막혔다라고 볼 수는 없는 것이지. 올라 오는 주일 오후에도 6시간 50분! 봐줄만한 시간이었다. 토요일, 오전에 아버지와 탁구, 오후에 둘째 작은 아버지 껴서 셋이서 탁구. 어제 월요일 처가집 식구들과 탁구. 3족중 2족과 탁구를 치게 되었다. 어제 잘 생각해보건데, 그 바람의 중심에 있는 것이 최호진이 아닌가 싶다. 물론 본인들은 다들 평소에 탁구에 관심들이 있으므로 아니라고 하겠지만.. 흐흐... 토요일 저녁에는 거의 모든 가족이 영화를 보러 갔는데, 이 또한 우리..
모듈화에 대한 개념은 초창기 분할 컴파일에서부터 시작하여, 동적 라이브러리, 나아가 플러그인, 자동화 객체와 같은 고급기능까지 비슷한 개념에서 출발하여 찬란한 꽃을 피운(?) 분야이다. 어떻게 모듈에 들어가는 함수들을 선택해야할까, 즉 어떤 함수들을 외부에서 사용하게 만들까. 그것에 대한 기준을 테스트 관점에서 바라보면 다음과 같다. 1. 외부로 노출된 함수들은 모두 테스트한다. 2. 모듈은 관련있는 기능(함수)들만을 모아 놓아야 한다. 테스트하지 않을 함수들은 모두 file scope을 가지게한다. 즉 C 언어로 말하면, static 한정자를 붙여서 외부에서 참조가능하지 않게한다. 왜 이것이 중요하냐면, 외부에서 전혀 사용하지 않는 것들이 외부로 노출될 경우 함수이름 공간에 불필요한 것이 들어가게 되고..
경험을 위주로 작성하는 것이므로 많이 보는 텍스트에서 강조하는 것을 간과할 수도있고, 없는 것도 있을 수 있는 글이 될 것 같다. 테스트 주도형 개발의 가장 기본적인 개념은 테스트 코드를 먼저 작성하고 그 코드가 돌아 갈 수 있는 함수를 만든다는 것이다. 이것만으로도 기존의 습관을 버릴 수 있는 생각의 사유가 되나 전통적인 방식(설계->구현->테스트)의 개발에 익숙한 사람이 쉽사리 옮겨가지 못하는 것은 시간에 대한 두려움이 있기 때문이다. 누구나 다 아는 사실은 테스트 코드를 먼저 작성하여 버그를 줄이는 것이 오히려 전체 시간을 줄일 수 있다는 것인데 그것은 습관적으로 진행되는 것에 의한 관성이 너무도 크기 때문에 쉽게 체득되지 않는 다. 완벽히 XP 방식의 테스트 주도형 개발을 진행하는 것이 어렵다면 ..
Test driven development 또는 Test driven programming 에 대한 내 의견은 다음과 같다. 테스트가 개발을 주도하기 위해서는 습관을 고쳐야한다. 적어도 테스트 주도형 개발의 참뜻을 알기 위해서는 개발후 모듈테스트 통합테스트, 인수테스트에 대한 과정을 수도없이 퇴짜 맞아봐야 알게 된다. 결코 테스트의 중요성은 종이위의 활자로서 얻어질 수 있는 지식이 아닌것 같다. 만일 이 글을 읽는 사람중에 그런 경험이 없다면 중요성에 대한 이해도가 덜하리라 생각된다. 모듈테스트와 통합테스트가 설계/구현다음에 일어나는 일이라 생각되기 때문에 우리는 테스트할 시간 없이 완성했다고 생각한다. 또한 혼자 개발하는 시절에는 테스트보다는 설계 구현이 더 중요시되고 그러한 사람들이 한 팀을 이루어 ..
국화를 샀다. 가을이지않은가! 국화를 산 이유는 동네 작은 꽃집에 다른 꽃피는 생명체가 그닥 많지 않아서이고, 그 흔하다는 국화가 우리집에 없어서였다. 5000원 들였지. 가장 전형적인 상태의 국화이다. 지름 25cm 정도 되는 플라스틱 화분에 꽃봉오리 몇 개 피기 전의 모습이다. 지난 주 산세베리아에 이어서 오늘도 하얀 화분에 분갈이 하는데, 이번엔 작업 중간 중간 사진을 찍어 뒀다. 오늘은 지민이가 분갈이를 안도와준댄다. 지난주에 좀 지겨웠나보다. 투게더 조금 떠서 그릇에 넣어 관심을 집중시킨 뒤에 작업 개시 화분이 좀 길다. 저 크기로 된 것은 우리집에 다섯개가 있는데, 비어있는 마지막 화분이다. 장식용 화분으로 남은 화분은 이제 작은 크기의 화분 두 개가 남 개 된다. 흐흐 앞으로 2 개를 더 사..
눈이 어떤 사물을 밝게 볼 수 있는가하는 것은 사물과 눈 사이에 장애되는 요소가 없는 것과 시신경이 건강하여 홍체를 통과한 빛이 적절한 초점에 맺힌 상을 분석하기 쉬워야하는 것과 사물이 발광체가 아닌 이상 적절한 주변광이 있어야 한다. 3차원 그래픽 얘기를 하자는 것이 아니라, 여기에서 "보다"라는 용언(동사)은 그대로 두고, 목적어로 쓰인 체언을 살짝 추상명사로 바꾸어 생각하자면, 눈이 가까운 미래를 밝게 볼 수 있는가하는 것은 위에 언급한 눈과는 다른 눈을 말하는 것이며, 이는 "분석을 하기 위한 전단계로서의 자료 수집도구"라는 공통적인 특징만을 지니게 된다. 따라서 그 문장은 다음과 같은 분석을 수반하게되는데, 가까운 미래를 분석하기 좋은 정보를 수집할 수 있는가하는 것은 미래와 수집능력사이에 장애..
- Total
- Today
- Yesterday
- 킹벤자민
- JavaScript
- TCP/IP
- macosx
- 퀴즈
- 덴드롱
- url
- MySQL
- 커피
- 클레로덴드럼
- Subversion
- OpenID
- writely
- 식물
- 디버깅
- VIM
- 벤자민
- tattertools
- BlogAPI
- Tattertools plugin
- 오픈소스
- SVN
- 수선화
- 구근
- perl
- ssh
- Linux
- 대화
- SSO
- nodejs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |