모듈화에 대한 개념은 초창기 분할 컴파일에서부터 시작하여, 동적 라이브러리, 나아가 플러그인, 자동화 객체와 같은 고급기능까지 비슷한 개념에서 출발하여 찬란한 꽃을 피운(?) 분야이다. 어떻게 모듈에 들어가는 함수들을 선택해야할까, 즉 어떤 함수들을 외부에서 사용하게 만들까. 그것에 대한 기준을 테스트 관점에서 바라보면 다음과 같다. 1. 외부로 노출된 함수들은 모두 테스트한다. 2. 모듈은 관련있는 기능(함수)들만을 모아 놓아야 한다. 테스트하지 않을 함수들은 모두 file scope을 가지게한다. 즉 C 언어로 말하면, static 한정자를 붙여서 외부에서 참조가능하지 않게한다. 왜 이것이 중요하냐면, 외부에서 전혀 사용하지 않는 것들이 외부로 노출될 경우 함수이름 공간에 불필요한 것이 들어가게 되고..
경험을 위주로 작성하는 것이므로 많이 보는 텍스트에서 강조하는 것을 간과할 수도있고, 없는 것도 있을 수 있는 글이 될 것 같다. 테스트 주도형 개발의 가장 기본적인 개념은 테스트 코드를 먼저 작성하고 그 코드가 돌아 갈 수 있는 함수를 만든다는 것이다. 이것만으로도 기존의 습관을 버릴 수 있는 생각의 사유가 되나 전통적인 방식(설계->구현->테스트)의 개발에 익숙한 사람이 쉽사리 옮겨가지 못하는 것은 시간에 대한 두려움이 있기 때문이다. 누구나 다 아는 사실은 테스트 코드를 먼저 작성하여 버그를 줄이는 것이 오히려 전체 시간을 줄일 수 있다는 것인데 그것은 습관적으로 진행되는 것에 의한 관성이 너무도 크기 때문에 쉽게 체득되지 않는 다. 완벽히 XP 방식의 테스트 주도형 개발을 진행하는 것이 어렵다면 ..
Test driven development 또는 Test driven programming 에 대한 내 의견은 다음과 같다. 테스트가 개발을 주도하기 위해서는 습관을 고쳐야한다. 적어도 테스트 주도형 개발의 참뜻을 알기 위해서는 개발후 모듈테스트 통합테스트, 인수테스트에 대한 과정을 수도없이 퇴짜 맞아봐야 알게 된다. 결코 테스트의 중요성은 종이위의 활자로서 얻어질 수 있는 지식이 아닌것 같다. 만일 이 글을 읽는 사람중에 그런 경험이 없다면 중요성에 대한 이해도가 덜하리라 생각된다. 모듈테스트와 통합테스트가 설계/구현다음에 일어나는 일이라 생각되기 때문에 우리는 테스트할 시간 없이 완성했다고 생각한다. 또한 혼자 개발하는 시절에는 테스트보다는 설계 구현이 더 중요시되고 그러한 사람들이 한 팀을 이루어 ..
눈이 어떤 사물을 밝게 볼 수 있는가하는 것은 사물과 눈 사이에 장애되는 요소가 없는 것과 시신경이 건강하여 홍체를 통과한 빛이 적절한 초점에 맺힌 상을 분석하기 쉬워야하는 것과 사물이 발광체가 아닌 이상 적절한 주변광이 있어야 한다. 3차원 그래픽 얘기를 하자는 것이 아니라, 여기에서 "보다"라는 용언(동사)은 그대로 두고, 목적어로 쓰인 체언을 살짝 추상명사로 바꾸어 생각하자면, 눈이 가까운 미래를 밝게 볼 수 있는가하는 것은 위에 언급한 눈과는 다른 눈을 말하는 것이며, 이는 "분석을 하기 위한 전단계로서의 자료 수집도구"라는 공통적인 특징만을 지니게 된다. 따라서 그 문장은 다음과 같은 분석을 수반하게되는데, 가까운 미래를 분석하기 좋은 정보를 수집할 수 있는가하는 것은 미래와 수집능력사이에 장애..
http://whitejames.com/index.php?pl=258 이상한 단어일세.. 찾아도 안나오고..
- Total
- Today
- Yesterday
- 킹벤자민
- ssh
- SSO
- 클레로덴드럼
- 디버깅
- Linux
- Tattertools plugin
- TCP/IP
- 구근
- writely
- Subversion
- BlogAPI
- macosx
- 벤자민
- MySQL
- url
- perl
- VIM
- JavaScript
- OpenID
- 수선화
- 덴드롱
- 퀴즈
- nodejs
- 커피
- 대화
- 식물
- tattertools
- SVN
- 오픈소스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |