어제(10/25일) 케이블을 신청하여 오늘(10/26일) 밤늦게 도착하신 케이블 TV 기사님. 수고 많으셨습니다. VDSL을 그만사용하게된 계기는 1. VDSL 요금 > 케이블TV+인터넷 요금 2. 파일다운로드 같은 행위가 많지 않음 3. 공유기 사용을 합법화하고 두 대부터 5000원을 추가로 받으려는 한통의 약관 변경 요러한 배경하에 바꾸게되었다. 최고 속도 25Mbps까지 나온다는 것(VDSL)을 고작 3Mbps(케이블 인터넷)로 바꾸었으나, 나같은 텔넷, SSH 쟁이한테는 그닥 느리다는 충격이 아직은 없다. (있을리가 있나 2시간도 안되었는데..) 아파트인데도 대공사를 하고 지나갔다. 벽면에 있는 동축선은 그냥 아파트 옥상에 있는 안테나하고만 연결돼있나 보더라. 케이블TV용 동축선이 따로 벽을타고 ..
테스트를 위한다면, 정말 피해야 할 것이 테스트들 간의 의존성이다. 테스트들 간의 간섭이 최소화 되려면, 테스트할 대상들의 구분이 명확해야한다. 그럴려면, 함수 안에 여러기능들이 모여 있어서는 아니 될 일이다. 내가 말하고자하는 것은 두 개 이상의 함수에서 몇 줄 동일한 루틴이 발견된다고 해서 무조건 빼어 하나의 함수를 만들라는 것이 아니다. 물론 그렇게 하는 것은 중요한 습관 중의 하나이다. 습관적으로 길어지는 함수는 분명 처음부터 그렇게 만들고 싶어서 그런 것이 아니다. 생각이 있었다면 미리 함수들을 쪼개었을 것이 분명하다. 문제는 간단한 기능을 만들고 간단한 테스트를 한 다음 그 다음 코드를 그 함수에 덧붙여서 만들게 되는 습관때문이다. 왜냐하면, 하나의 함수안에서 기능을 추가해야할 때, 다른 함수..
2005년 가을의 뻔한 최호진 공략법. 들켜버린 그 7단계! 1 단계: 한 2 주일 정도, 아침 저녁으로 일단 싸늘한 기운을 뿜어준다. 2 단계: 그 동안 대략 눈에 보이는 반 정도의 사람들에게 긴팔을 입힌다. 3 단계: 5일정도 정신없이 치고받고 살게 만든다. 4 단계: 주말에 늦게 일어나게 만든다. 5 단계: 오후를 적당히 즐기게 만들 정도의 취미 생활을 준다. 6 단계: 장모님한테 저녁식사를 얻어 먹을 정도 게으르게 만든다. 7 단계: 밥먹고, 저녁창으로 찬바람을 한 번 쐬어준다. 이쯤되면 죽을걸?
어제 저녁의 일이다. 지민: "아빠, 아빠 방은 어디야?" 평소에 컴퓨터있는 서재를 아빠방이라고 실수(?)하면서 말하길래, 아빠: "컴퓨터있는 방이지" 라고 했다. 그랬더니, 지민: "아빠, 왜 아빠는 아빠방에서 혼자 안 자?" 이건 또 무슨 소리인가? 우리 세 식구는 모두 침대방에서 자기 때문에 멀뚱하고 얘가 뭐라나 하고 들어 봤더니. 지민: "나, 이제 내 방에서 혼자 잘래" 아빠: ".?@#$%^! 왜? 어쩌다가 그런생각을 했어?" 지민: "어, 나 어린이집에 있을 때 생각을 했어." 아빠: "뭐? 선생님께서 혼자 자라고 하셔?" 지민: "아니, 나 혼자 한 번 생각을 해 봤어." 아빠: "그래...?!?" -- 이게 무슨 말도 안되는 시츄에이션이냐, 원래 침대 사주면 자기 방에서 혼자 잔다고 약속..
더운 여름날에 바람도 없고 에어컨도 없으면 땀이 흐른다. 공기 청정기는 먼지를 인식하고 작동하다가 언젠가는 멈춘다. 체한 듯하면 배를 비우고 간단한 약을 사다 먹으면 낫는다. 그리고, 식물들을 키우면 공기도 정화를 시킨다며, 수많은 실험 자료들은 아세톤 알데히드를 없앴다느니 암모니아를 제거한다느니 구구절절하다. 배가 아프면 아버지는 수지침을 놓으신다. 장모님과 어머님은 이것저것 먹을 것을 주시면서 몸에 어떻게 좋다느니 말씀을 하신다. 난 가끔 위 두 사실을 비교할 때, 어떤 다른 영역이 있음을 인식한다. 특히 요즘 같이 내가 식물에 관심이 많을 때, 관련 서적들을 보면 생활에 도움을 준다는 "약한 설득"이 곳곳에 널려있음을 본다. 내가 지금까지 살면서 키우는 식물의 이로움을 몰랐으랴? 그런데, 요 몇달전..
연재하는 이 글들은 테스터를 위한 글이 아니라 개발자를 위한 것이며, 개발자가 어떻게 하면 테스트하면서 개발할 수 있을지에 대한 제안이다. 복사해서 쓰는 습관은 아주 초보적인 습관이지만, 가장 충동적인 습관이기도하다. 인류가 태어난 이후로 모방이라는 훌륭한 학습도구는 생활 전체에 아주 깊숙이 스며있는 것이기 때문에, 우리는 너무나 자연스럽게 가져다 쓰는 것에 익숙하다. 복사는 다른 사람 코드를 복사하는 것에서부터, 자신이 과거에 작성한 코드 그대로 복사에서 뿐아니라, 변수명이나 함수명을 바꿔서 복사 또는 기능을 추가하는 복사등, 그 변종도 아주 많다. 이 습관을 버리라고하는 이유의 핵심에는 "관리"에 있다. 혼자 연습하면서는 다른 사람의 것을 복사하는 것부터 시작하게된다. 그렇게 해야만 늘게되는 것은 자..
3일이라는 짧은 시간에 대해서, 막힐 것이라 예상하고 일찍 나섰건만 평소 3시간 걸리는 것이 6시간정도만 걸렸다. 예상은 10시간 이상있지만, 교통 사정이 참 좋아진것 같다. 6시간은 일반적으로 막히는 주말이 4시간 ~ 5시간이므로 그다지 막혔다라고 볼 수는 없는 것이지. 올라 오는 주일 오후에도 6시간 50분! 봐줄만한 시간이었다. 토요일, 오전에 아버지와 탁구, 오후에 둘째 작은 아버지 껴서 셋이서 탁구. 어제 월요일 처가집 식구들과 탁구. 3족중 2족과 탁구를 치게 되었다. 어제 잘 생각해보건데, 그 바람의 중심에 있는 것이 최호진이 아닌가 싶다. 물론 본인들은 다들 평소에 탁구에 관심들이 있으므로 아니라고 하겠지만.. 흐흐... 토요일 저녁에는 거의 모든 가족이 영화를 보러 갔는데, 이 또한 우리..
모듈화에 대한 개념은 초창기 분할 컴파일에서부터 시작하여, 동적 라이브러리, 나아가 플러그인, 자동화 객체와 같은 고급기능까지 비슷한 개념에서 출발하여 찬란한 꽃을 피운(?) 분야이다. 어떻게 모듈에 들어가는 함수들을 선택해야할까, 즉 어떤 함수들을 외부에서 사용하게 만들까. 그것에 대한 기준을 테스트 관점에서 바라보면 다음과 같다. 1. 외부로 노출된 함수들은 모두 테스트한다. 2. 모듈은 관련있는 기능(함수)들만을 모아 놓아야 한다. 테스트하지 않을 함수들은 모두 file scope을 가지게한다. 즉 C 언어로 말하면, static 한정자를 붙여서 외부에서 참조가능하지 않게한다. 왜 이것이 중요하냐면, 외부에서 전혀 사용하지 않는 것들이 외부로 노출될 경우 함수이름 공간에 불필요한 것이 들어가게 되고..
경험을 위주로 작성하는 것이므로 많이 보는 텍스트에서 강조하는 것을 간과할 수도있고, 없는 것도 있을 수 있는 글이 될 것 같다. 테스트 주도형 개발의 가장 기본적인 개념은 테스트 코드를 먼저 작성하고 그 코드가 돌아 갈 수 있는 함수를 만든다는 것이다. 이것만으로도 기존의 습관을 버릴 수 있는 생각의 사유가 되나 전통적인 방식(설계->구현->테스트)의 개발에 익숙한 사람이 쉽사리 옮겨가지 못하는 것은 시간에 대한 두려움이 있기 때문이다. 누구나 다 아는 사실은 테스트 코드를 먼저 작성하여 버그를 줄이는 것이 오히려 전체 시간을 줄일 수 있다는 것인데 그것은 습관적으로 진행되는 것에 의한 관성이 너무도 크기 때문에 쉽게 체득되지 않는 다. 완벽히 XP 방식의 테스트 주도형 개발을 진행하는 것이 어렵다면 ..
Test driven development 또는 Test driven programming 에 대한 내 의견은 다음과 같다. 테스트가 개발을 주도하기 위해서는 습관을 고쳐야한다. 적어도 테스트 주도형 개발의 참뜻을 알기 위해서는 개발후 모듈테스트 통합테스트, 인수테스트에 대한 과정을 수도없이 퇴짜 맞아봐야 알게 된다. 결코 테스트의 중요성은 종이위의 활자로서 얻어질 수 있는 지식이 아닌것 같다. 만일 이 글을 읽는 사람중에 그런 경험이 없다면 중요성에 대한 이해도가 덜하리라 생각된다. 모듈테스트와 통합테스트가 설계/구현다음에 일어나는 일이라 생각되기 때문에 우리는 테스트할 시간 없이 완성했다고 생각한다. 또한 혼자 개발하는 시절에는 테스트보다는 설계 구현이 더 중요시되고 그러한 사람들이 한 팀을 이루어 ..
- Total
- Today
- Yesterday
- url
- MySQL
- 오픈소스
- writely
- ssh
- nodejs
- 킹벤자민
- 클레로덴드럼
- 식물
- Linux
- 구근
- 덴드롱
- tattertools
- 퀴즈
- VIM
- TCP/IP
- 커피
- 벤자민
- 디버깅
- OpenID
- Tattertools plugin
- perl
- JavaScript
- 수선화
- macosx
- Subversion
- 대화
- SVN
- BlogAPI
- SSO
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |