UI와 기능이 붙어 있다는 것은 당연한 것 아닌가라고 생각할 수 있다. 이것은 UI를 프로그래밍을 시작할 때, 보이는 것에 너무 집착한 나머지 잘못 들인 습관 때문인데, 전통적으로 보이는 것과 데이터는 분리되는 것이라 가르쳐 왔지만, 보이는 것에 대한 것에도 두 계층을 두는 것에는 신경을 못쓰기 마련이다. MFC를 생각해보라 당신은 MFC의 수많은 윈도우 개체에 대한 클래스를 보고 "많다.."라고 생각했을 수 있다. 그리고, 능숙하게 혹은 샘플을 봐가면서 정도로 그것들을 사용해 보았을 터이다. 그렇게 해서 나온 최종 산출물은 MFC 자체와 당신이 직접 만든 코드가 분리되어 화면 그리기를 완성한다. MFC 소스가 있긴하지만 그것을 수정하지는 않지않나? 웹프로그래밍에 가면 사뭇달라진다. ASP나 PHP등은 ..
이젠, 내 가을은 초등학생때 느끼던 색감과 시간이 흘렀음에 대한 느낌이며, 20대의 마냥 시리던 가을은 입가의 미소로만 남아버렸고, 늦은밤까지 버틸 수 있던 체력도 이젠 원망의 쳐진 눈길로 날 바라보는 듯하다. 지민이도 일어나기 싫어하던 아침은 아빠도 아무 잔소리하지 않았고, 묵묵히 도시락을 준비하고 물묻힌 수건으로 고양이 세수시켜 자는 애 옷입히는 능숙한 솜씨로 들쳐 안고 선생님께 보내었다. 졸다가 뛰어내린 따뜻한 가을 전철을 뒤로 하고, 따스한 커피 한잔에 하루를 아빠처럼 시작한다. 아직은 젊은 아빠처럼... 그렇게... 언제나 젊을 아빠처럼... 이렇게... --
외부로 노출되는 것과 그렇지 않은 것이 무엇인가? 답은 간단하다. C/C++에서는 static이 붙지 않은 모든 변수와 함수는 외부로 노출된다. 이 말은 늘 이름공간(Name space)을 더럽힌다라는 말과 같이 나오게되는데, 이 개념은 만병의 근원처럼 초보 프로그래머들에게는 쉽게 드러나지 않는 개념으로 생각된다. 그닥 중요하지 않게 취급될 수도 있고, 다른 말로도 설명이 되기 때문이다. 이름공간이라는 것이 무엇인가? 무엇에 대한 이름공간인가? 말 그대로 생각해보면, 이름이 놓여지는 공간을 말하고, 이름이란 서로 다른 두 개를 구별하기 위해 사용되는 일종의 약속이다. 모듈화 프로그램이라는 것은 하나의 프로그램을 수행하기 위해 여러 단위로 나누어 각각을 부분 컴파일한 뒤 링크할 때, 필요로 하는 모듈과 제..
어제(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족과 탁구를 치게 되었다. 어제 잘 생각해보건데, 그 바람의 중심에 있는 것이 최호진이 아닌가 싶다. 물론 본인들은 다들 평소에 탁구에 관심들이 있으므로 아니라고 하겠지만.. 흐흐... 토요일 저녁에는 거의 모든 가족이 영화를 보러 갔는데, 이 또한 우리..
- Total
- Today
- Yesterday
- SSO
- ssh
- Tattertools plugin
- 오픈소스
- SVN
- JavaScript
- writely
- 디버깅
- 덴드롱
- 수선화
- 킹벤자민
- BlogAPI
- 식물
- perl
- 클레로덴드럼
- 벤자민
- OpenID
- 대화
- 구근
- tattertools
- MySQL
- Subversion
- 커피
- 퀴즈
- Linux
- nodejs
- macosx
- TCP/IP
- url
- VIM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |